KR101976027B1 - 암호 화폐의 전자 지갑 생성 및 백업 방법 및 이를 이용한 단말 장치와 서버 - Google Patents

암호 화폐의 전자 지갑 생성 및 백업 방법 및 이를 이용한 단말 장치와 서버 Download PDF

Info

Publication number
KR101976027B1
KR101976027B1 KR1020170138690A KR20170138690A KR101976027B1 KR 101976027 B1 KR101976027 B1 KR 101976027B1 KR 1020170138690 A KR1020170138690 A KR 1020170138690A KR 20170138690 A KR20170138690 A KR 20170138690A KR 101976027 B1 KR101976027 B1 KR 101976027B1
Authority
KR
South Korea
Prior art keywords
key
electronic wallet
private key
user
identification value
Prior art date
Application number
KR1020170138690A
Other languages
English (en)
Other versions
KR20190045753A (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 KR1020170138690A priority Critical patent/KR101976027B1/ko
Publication of KR20190045753A publication Critical patent/KR20190045753A/ko
Application granted granted Critical
Publication of KR101976027B1 publication Critical patent/KR101976027B1/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/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/3678Payment 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 e-cash details, e.g. blinded, divisible or detecting double spending
    • 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/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
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management

Abstract

본 발명은 암호 화폐의 전자 지갑 생성 방법으로, (a) 사용자에 의한 암호 화폐에 대한 전자 지갑 생성 요청이 획득되면, 사용자 단말이, 전자 지갑 앱으로 하여금 전자 지갑을 생성하도록 하며, SE에 설치되어 전자 지갑에 연동되는 전자 지갑 애플릿으로 키 페어 생성을 요청하도록 하고, 전자 지갑 애플릿으로 하여금 키 페어를 생성하여 SE에 저장하도록 하며, 키 페어 중 퍼블릭 키를 전자 지갑 앱으로 전달하도록 하는 단계; 및 (b) 전자 지갑 앱으로 퍼블릭 키가 전달되면, 사용자 단말이, 퍼블릭 키를 저장하는 단계;를 포함하는 방법이 제공된다.

Description

암호 화폐의 전자 지갑 생성 및 백업 방법 및 이를 이용한 단말 장치와 서버{METHOD FOR GENERATING AND BACKING UP ELECTRIC WALLET AND USER TERMINAL AND SERVER USING THE SAME}
본 발명은 모바일 기기의 보안 매체를 활용한 블록 체인 기반 암호 화폐의 저장 및 백업 방법 및 이를 이용한 단말 장치 및 백업지원 서버에 관한 것으로, 보다 상세하게는 (a) 사용자에 의한 상기 암호 화폐에 대한 전자 지갑 생성 요청이 획득되면, 사용자 단말이, 전자 지갑 앱으로 하여금 전자 지갑을 생성하도록 하며, SE에 설치되어 상기 전자 지갑에 연동되는 전자 지갑 애플릿으로 키 페어 생성을 요청하도록 하고, 상기 전자 지갑 애플릿으로 하여금 상기 키 페어를 생성하여 상기 SE에 저장하도록 하며, 상기 키 페어 중 퍼블릭 키를 상기 전자 지갑 앱으로 전달하도록 하는 단계; 및 (b) 상기 전자 지갑 앱으로 상기 퍼블릭 키가 전달되면, 상기 사용자 단말이, 상기 퍼블릭 키를 저장하는 단계;를 포함하는 암호 화폐의 전자 지갑 생성 방법과 이를 이용하는 단말 장치에 관한 것이며, 더 나아가 이렇게 생성된 전자 지갑을 백업지원 서버에 백업하는 방법 및 이를 이용한 단말 장치와 백업지원 서버에 관한 것이다.
모든 국가나 인터넷에서 자유롭게 사용할 수 있는 가상 화폐 또는 암호 화폐를 이용한 화폐 시스템에서 가장 문제가 되는 것은 화폐 발행의 통제권이다. 암호 화폐는 정해진 규칙에 따라 공정하게 생성되어야 하며, 화폐의 소유권도 어느 한 국가나 기관에 의존하지 않고 투명하면서도 안전하게 관리되어야 할 것이다. 암호 화폐는 시스템을 통제하는 서버가 없이 P2P 방식으로 완전히 분산화된 형태로 작동할 수 있다.
이렇게 사용자를 관리하는 중앙의 서버가 없을 경우, 돈을 주고받을 계좌의 생성이나 계좌를 사용하는 주체가 본인이 맞는지 인증하기 위해서 퍼블릭 키 암호화 방식을 이용할 수 있다. 퍼블릭 키 암호화 방식을 사용하면 누구에게나 공개된 퍼블릭 키를 이용해서 프라이빗 키로 생성한 서명을 검증하고, 제3자는 퍼블릭 키를 이용해 그 서명이 해당 퍼블릭 키의 짝에 해당하는 프라이빗 키로 서명한 것인지 확인할 수 있다.
그러한 프라이빗 키는 안전하게 보관할 필요가 있는데, 현재는 일반적으로 암호 화폐 거래소에서 프라이빗 키 관리를 하고 있다. 이에 따라 암호 화폐의 프라이빗 키를 더욱 안전하게 보관하고 관리할 수 있는 방법이 요구되고 있다.
한편, 한국 특허공개공보 제10-2016-0024185호 "SE(Secure element)를 이용한 암호화폐 관리 시스템 및 그 방법"에는 암호화 화폐를 관리하는 시스템에 관한 것으로, 암호화폐를 이용한 결제에 필요한 데이터(소유자 암호화폐 주소, 개인키 및 공개키)를 SE에 저장하고, SE는 임베디드 SE, MicroSD SE, UICC(universal IC card)가 사용되는 내용을 개시하고 있다. 또한, 미국 공개특허 제2015-0324787호 "Policy-Based Control and Augmentation of Cryptocurrencies and Cryptocurrency Security"에는 cryptocurrencies에 대한 정책기반의 제어와 보안 강화에 관한 것으로, 개인키와 공개키를 SE에서 생성 및 저장하는 내용을 개시하고 있다.
그러나 이러한 종래 기술에는 전자 지갑 생성 시 생성된 키페어를 단말기 내부에만 저장하고 있어 안전한 보관 방법이라고 볼 수 없다.
본 발명은 암호 화폐의 전자 지갑 생성 시 생성된 키 페이를 안전한 장소에 보관할 수 있도록 하는 전자 지갑 생성 방법 및 단말 장치를 제공하는 것을 목적으로 한다.
또한 본 발명은 암호 화폐의 프라이빗 키를 제3 기관에 암호화하여 백업 보관할 수 있는 전자 지갑 백업 방법, 단말 장치 및 백업지원 서버를 제공하는 것을 다른 목적으로 한다.
또한 본 발명은 개인 단말 장치 내에서 프라이빗 키나 공개 키 분실 시 다른 기관에 보관된 키를 복구하여 복원할 수 있는 전자 지갑 복원 방법, 단말 장치 및 백업지원 서버를 제공하는 것을 또 다른 목적으로 한다.
상기 목적을 달성하기 위한 본 발명의 대표적인 구성은 다음과 같다.
본 발명의 일 실시예에 따르면, 암호 화폐의 전자 지갑 생성 방법은, (a) 사용자에 의한 상기 암호 화폐에 대한 전자 지갑 생성 요청이 획득되면, 사용자 단말이, 전자 지갑 앱으로 하여금 전자 지갑을 생성하도록 하며, SE에 설치되어 상기 전자 지갑에 연동되는 전자 지갑 애플릿으로 키 페어 생성을 요청하도록 하고, 상기 전자 지갑 애플릿으로 하여금 상기 키 페어를 생성하여 상기 SE에 저장하도록 하며, 상기 키 페어 중 퍼블릭 키를 상기 전자 지갑 앱으로 전달하도록 하는 단계; 및 (b) 상기 전자 지갑 앱으로 상기 퍼블릭 키가 전달되면, 상기 사용자 단말이, 상기 퍼블릭 키를 저장하는 단계;를 포함한다.
본 발명의 다른 실시예에 따르면, 암호 화폐의 전자 지갑 백업 방법은, (a) 사용자 단말에 퍼블릭 키가 저장되어 있으며, SE에 상기 퍼블릭 키와 프라이빗 키를 포함하는 키 페어가 저장된 상태에서, 사용자에 의한 상기 암호 화폐의 전자 지갑 백업 요청이 획득되면, 상기 사용자 단말이, 전자 지갑 앱으로 하여금 상기 퍼블릭 키를 포함하는 프라이빗 키 백업 요청을 백업지원 서버로 전송하도록 함으로써, 상기 백업지원 서버로 하여금 상기 사용자의 개인정보로 난수 및 상기 사용자에 대응하는 개인식별값을 암호화한 제1 세션 키를 생성하도록 하고 상기 퍼블릭 키로 상기 난수 및 상기 개인식별값을 암호화한 세션 데이터를 생성하도록 하며 상기 세션 데이터를 상기 사용자 단말의 상기 전자 지갑 앱에게 전송하도록 하는 단계; (b) 상기 사용자 단말이, 상기 전자 지갑 앱으로 하여금 상기 SE에 설치된 전자 지갑 애플릿으로 상기 세션 데이터를 전달하도록 하고, 상기 전자 지갑 애플릿으로 하여금 상기 SE에 저장된 상기 퍼블릭 키를 이용하여 상기 세션 데이터를 복호화하여 상기 난수 및 상기 개인식별값을 획득하도록 하며, 상기 전자 지갑 애플릿으로 하여금 상기 세션 데이터로부터 획득된 상기 난수 및 상기 개인식별값을 상기 사용자의 개인정보를 이용하여 암호화한 제2 세션 키를 생성하도록 하고 상기 제2 세션 키를 이용하여 상기 프라이빗 키를 암호화하도록 하며, 암호화된 프라이빗 키를 상기 전자 지갑 앱으로 전달하도록 하는 단계; 및 (c) 상기 전자 지갑 앱으로 상기 암호화된 프라이빗 키가 전달되면, 상기 사용자 단말이, 상기 전자 지갑 앱으로 하여금 상기 암호화된 프라이빗 키를 상기 백업지원 서버로 전달하도록 하여, 상기 백업지원 서버로 하여금 상기 제1 세션 키를 이용하여 상기 암호화된 프라이빗 키를 복호화하여 상기 프라이빗 키를 획득하도록 하며, 개별 관리키를 이용하여 상기 프라이빗 키와 상기 퍼블릭 키를 암호화한 암호화 키를 생성하며, 상기 생성된 암호화 키를 상기 개인식별값과 매칭하여 관리하는 단계; 를 포함한다.
본 발명의 또 다른 실시예에 따르면, 암호 화폐의 전자 지갑 백업 방법은, (a) 사용자 단말에 퍼블릭 키가 저장되어 있으며, SE에 상기 퍼블릭 키와 프라이빗 키를 포함하는 키 페어가 저장된 상태에서, 사용자에 의한 상기 암호 화폐의 전자 지갑 백업 요청에 응답하여 상기 사용자 단말의 전자 지갑 앱으로부터 상기 퍼블릭 키를 포함하는 프라이빗 키 백업 요청이 전송되면, 백업지원 서버가, 상기 사용자의 개인정보로 난수 및 상기 사용자에 대응하는 개인식별값을 암호화한 제1 세션 키를 생성하도록 하고 상기 퍼블릭 키로 상기 난수 및 개인식별값을 암호화한 세션 데이터를 생성하며 상기 세션 데이터를 상기 사용자 단말의 상기 전자 지갑 앱에게 전송하는 단계; (b) 상기 백업지원 서버가, 상기 사용자 단말의 상기 전자 지갑 앱으로 하여금 상기 SE에 설치된 전자 지갑 애플릿으로 상기 세션 데이터를 전달하도록 하고, 상기 전자 지갑 애플릿으로 하여금 상기 SE에 저장된 상기 퍼블릭 키를 이용하여 상기 세션 데이터를 복호화하여 상기 난수 및 개인식별값을 획득하도록 하며, 상기 전자 지갑 애플릿으로 하여금 세션 데이터로부터 획득된 상기 난수 및 개인식별값을 상기 사용자의 개인정보를 이용하여 암호화한 제2 세션 키를 생성하도록 하고 상기 제2 세션 키를 이용하여 상기 프라이빗 키를 암호화하도록 하며, 암호화된 프라이빗 키를 상기 전자 지갑 앱으로 전달하도록 하는 단계; 및 (c) 상기 전자 지갑 앱으로 상기 암호화된 프라이빗 키가 전달되면, 상기 백업지원 서버가, 상기 사용자 단말의 상기 전자 지갑 앱으로 하여금 상기 암호화된 프라이빗 키를 상기 백업지원 서버로 전달하도록 하고, 상기 백업지원 서버는, 상기 제1 세션 키를 이용하여 상기 암호화된 프라이빗 키를 복호화하여 상기 프라이빗 키를 획득하며, 개별 관리키를 이용하여 상기 프라이빗 키와 상기 퍼블릭 키를 암호화한 암호화 키를 생성하며, 상기 생성된 암호화 키를 상기 개인식별값과 매칭하여 관리하는 단계;를 수행하는 것을 특징으로 하는 방법이 제공된다.
또한, 본 발명의 일 실시예에 따르면, 상기의 방법들을 수행하기 위한 단말 장치 및 백업지원 서버가 제공된다.
본 발명에 의하면, 다음과 같은 효과가 있다.
본 발명은 사용자의 모바일 기기 등의 단말 장치 내부의 SE 또는 외부 SE를 활용하여 암호 화폐의 프라이빗 키를 보관함으로써 안전하게 암호 화폐를 보관할 수 있는 효과가 있다.
또한 본 발명은 SE에서 생성된 프라이빗 키를 공인된 기관이나 공공기관의 프라이빗 블록 체인에 암호화하여 백업할 수 있다.
또한 본 발명은 SE의 프라이빗 키 분실이나 손상 시 공인된 기관이나 공공기관의 프라이빗 블록 체인에 보관된 프라이빗 키를 복호화하여 복구할 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 암호 화폐 전자 지갑 생성 및 관리 서비스를 제공하는 단말 장치를 개략적으로 도시한 개념도이다.
도 2 및 도 3은 본 발명의 일 실시예에 따른 전자 지갑 앱과 전자 지갑 애플의 설치 예를 나타낸다.
도 4는 본 발명의 일 실시예에 따른 암호 화폐의 지갑 생성 과정을 개략적으로 도시한 것이다.
도 5는 본 발명의 일 실시예에 따른 암호 화폐의 프라이빗 키 백업 과정을 개략적으로 도시한 것이다.
도 6은 본 발명의 일 실시예에 따른 암호 화폐의 백업을 위한 시스템을 개략적으로 도시한 것이다.
도 7은 본 발명의 일 실시예에 따른 암호 화폐의 프라이빗 키 복구 과정을 개략적으로 도시한 것이다.
도 8는 본 발명의 일 실시예에 따른 암호 화폐의 잔액 확인 과정을 개략적으로 도시한 것이고, 도 9는 본 발명의 일 실시예에 따른 암호 화폐의 전송 과정을 개략적으로 도시한 것이다.
도 10 및 도 11은 본 발명의 일 실시예에 따라 생성된 머클 트리의 예를 도시한 도면이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 암호 화폐 전자 지갑 생성 및 관리 서비스를 제공하는 단말 장치를 개략적으로 도시한 개념도이다.
도 1을 참조하면, 본 발명에 따른 단말 장치(100)는 통신부(101) 및 프로세서(102)를 포함할 수 있으며 다른 단말 장치와 간접 또는 직접적으로 통신할 수 있다. 도 1에는 단말 장치의 구성만 개략적으로 도시하였지만, 본 발명에 따른 백업지원 서버도 도 1의 단말 장치(100)와 같이 통신부와 프로세서를 포함하고 상기 단말 장치(100)와 통신할 수 있다. 또한 백업지원 서버는 다수의 컴퓨팅 장치로 구성될 수 있다.
특히 단말 장치와 백업지원 서버는 전형적으로 컴퓨팅 장치(예컨대, 컴퓨터 프로세서, 메모리, 스토리지, 입력 장치 및 출력 장치, 기타 기존의 컴퓨팅 장치의 구성요소들을 포함할 수 있는 장치; 라우터, 스위치 등과 같은 전자 통신 장치; 네트워크 부착 스토리지(NAS) 및 스토리지 영역 네트워크(SAN)와 같은 전자 정보 스토리지 시스템)와 컴퓨터 소프트웨어(즉, 컴퓨팅 장치로 하여금 특정의 방식으로 기능하게 하는 인스트럭션들)의 조합을 이용하여 원하는 시스템 성능을 달성하는 것일 수 있다.
특히 단말 장치는 일반적으로 사용자의 개인 모바일 기기와 같은 컴퓨팅 장치 이다. 단말 장치의 통신부(101) 및 백업지원 서버의 통신부(미도시)는 연동되는 타 컴퓨팅 장치와 요청과 응답을 송수신할 수 있는 바, 일 예시로서 그러한 요청과 응답은 동일한 TCP 세션에 의하여 이루어질 수 있지만, 이에 한정되지는 않는다. 예컨대 통신부의 요청과 응답은 UDP 데이터그램으로서 송수신될 수도 있을 것이다.
또한 단말 장치(100)의 프로세서(102) 및 백업지원 서버의 프로세서(미도시)는 MPU(Micro Processing Unit) 또는 CPU(Central Processing Unit), 캐쉬 메모리(Cache Memory), 데이터 버스(Data Bus) 등의 하드웨어 구성을 포함할 수 있다. 또한, 운영체제, 특정 목적을 수행하는 애플리케이션의 소프트웨어 구성을 더 포함할 수도 있다.
도 2 및 도 3은 본 발명의 일 실시예에 따른 전자 지갑 앱과 전자 지갑 애플의 설치 예를 나타낸다.
도 2 및 도 3을 참조하면, 전자 지갑 앱(103)은 단말 장치(100) 내에 설치되며 전자 지갑 애플릿(104)와 연동하여 암호 화폐의 주소를 생성하고, 암호 화폐 네트워크와 연동하여 잔액 조회, 송금(전송) 등 다양한 기능을 수행한다. 또한 전자 지갑 애플릿(104)은 SE(Secure Element)에서 동작하는 애플릿(Applet)이다. 즉, 본 발명에 따른 전자 지갑 애플릿은 SE에 설치된다. 상기 SE는 도 2에 도시된 바와 같이 단말 장치(100)의 하드 영역에 있는 SE일 수도 있으며, 단말 장치(100)에 내장된 eSE 일 수도 있고, SIM에 형성된 SE일 수도 있으며, 내장 메모리에 형성된 SE일 수도 있다. 또한 상기 SE는 도 3에 도시된 바와 같이 단말 장치(100) 외부에 있는 외장 메모리 내에 형성된 SE 또는 외부 IC 카드에 형성된 SE일 수도 있다. 만일 SE가 외부 메모리에 형성된 경우에는 연결 케이블을 통해 단말 장치(100)의 전자 지갑 앱(103)과 통신할 수 있으며, SE가 외부 IC 카드에 형성된 경우에는 NFC 통신으로 단말 장치(100)와 연결되어 전자 지갑 앱(103)과 통신할 수 있다. SE가 단말 장치(100) 내부에 있는 경우 단말 장치(100)는 전자 지갑 애플릿(104)를 다운로드 하여 내부 SE에 설치하고, SE가 단말 장치(100) 외부에 있는 경우, 상기 SE에 NFC 통신 등의 OTA(Over The Air)를 통해 암호 화폐 관리를 위한 전자 지갑 애플릿(104)을 다운로드하여 설치하며, 외부 SE의 전자 지갑 애플릿(104)과 단말 장치(100)의 전자 지갑 앱(103)이 상호 연동한다.
전자 지갑 애플릿(104)은 퍼블릭 키, 프라이빗 키의 생성 및 전자 서명을 수행하는 기능을 하고 암호 화폐의 암호화 요구에 따라 별도의 암호화 연산을 수행한다.
도 4는 본 발명의 일 실시예에 따른 암호 화폐의 지갑 생성 과정을 개략적으로 도시한 것이다.
도 4를 참조하면, 본 발명에 따른 암호 화폐 지갑 생성 과정은 암호 화폐 사용자(200)가 전자 지갑 앱(103)으로 사용할 암호 화폐를 선택하고 상기 암호 화폐에 대한 전자 지갑 생성을 요청(S401)함으로써 시작된다. 그러면 전자 지갑 앱(103)은 전자 지갑을 생성하고(S402) 상기 생성된 전자 지갑에 대응하는 키 페이의 생성을 전자 지갑 애플릿(104)에 요청한다(S403). 전자 지갑 애플릿(104)은 전자 지갑 앱(103)로부터의 키 페어 생성 요청에 응답하여 키 페어(퍼블릭 키 및 프라이빗 키)를 생성하고, 상기 생성된 키 페이를 상기 전자 지갑 애플릿(104)에 저장한다(S404). 그리고 나서 전자 지갑 애플릿(104)은 전자 지갑 앱(103)으로 키 페어 생성 결과와 함께 생성된 키 페어 중 퍼블릭 키를 전달한다(S405). 전자 지갑 앱(103)은 키 페어 생성 결과를 확인하고 전자 지갑 애플릿(104)에서 전달받은 퍼블릭 키를 저장한다(S406). 그리고 나서 전자 지갑 앱(103)은 사용자(200)에게 전자 지갑 생성 결과를 통보한다(S407).
여기서 전자 지갑 앱(103)과 전자 지갑 애플릿(104)에서 수행되는 프로세스는 단말 장치의 프로세서(102)에 의해 수행되거나 지원될 수 있다.
이에 따라 본 발명에서는 다수에 노출된 암호 화폐 거래소에서 프라이빗 키를 관리하지 않고 모바일 기기 등의 사용자 단말 장치의 SE를 활용하여 프라이빗 키를 보관할 수 있기에 보다 안전하게 암호 화폐를 보관할 수 있다.
그리고 암호 화폐의 프라이빗 키를 사용자가 직접 보관하여 보안성을 높일 수 있으며, SE 기반의 개인 전자 지갑을 통해 안전하게 다른 서비스나 개인간의 거래를 수행할 수 있다.
도 5는 본 발명의 일 실시예에 따른 암호 화폐의 프라이빗 키 백업 과정을 개략적으로 도시한 것이고 도 6은 본 발명의 일 실시예에 따른 암호 화폐의 백업을 위한 시스템을 개략적으로 도시한 것이다.
도 5 및 도 6을 참조하면, 사용자(200)가 전자 지갑 앱(103)으로 전자 지갑의 백업을 요청(S501)하면, 전자 지갑 앱(103)에서 3rd 파티인 외부의 백업지원 서버 (300)로 프라이빗 키 백업 요청을 한다(S502). 또한, 백업지원 서버(300)를 통해 도 6에 도시된 바와 같이 프라이빗 블록 체인(또는 퍼블릭 블록 체인)과 연결될 수 있다. 이때, 전자 지갑의 백업은 도 5에 도시된 바와 같이 사용자의 요청(S501)에 의해 진행될 수도 있고, 사용자의 요청 없이도 전자 지갑 생성 후 전자 지갑 앱(103)이 퍼블릭 키 백업과 별도로 또는 동시에 프라이빗 키 백업을 요청할 수 있다. 일 예로, 단말 장치(100)의 프로세서(102)가 전자 지갑 생성 후 전자 지갑 앱(103)에 퍼블릭 키를 저장함과 별도로, 전자 지갑 앱(103)으로 하여금 퍼블릭 키를 포함하는 프라이빗 키 백업 요청을 백업지원 서버(300)로 전송할 수 있다(S502). 이때 전자 지갑 앱(103)은 프라이빗 키 백업 요청을 백업지원 서버(300)로 전송할 때 전자 지갑 앱에 저장된 퍼블릭 키를 포함하여 전송한다. 사용자(200)로부터의 요청 및 백업지원 서버(300)로의 요청 및 데이터 송수신은 단말 장치(100)의 통신부(101)에서 수행될 수 있다.
이때 백업지원 서버(300)는 단말 장치나 암호 화폐 거래소, 암호 화폐 네트워크와는 다른 3rd 파티(party) 이며, 바람직하게는 공인된 기관이나 공공 기관에서 운영하는 백업지원 서버인 것이 바람직하다. 또한, 경우에 따라, 이러한 백업지원 서버 자체가 블록 체인의 다수의 노드 중 어느 하나의 노드일 수도 있다. 사용자(200)가 암호 화폐의 백업 서비스를 이용하기 위해서는 사용자는 상기 3rd 파티에 프라이빗 키 백업 서비스를 위한 회원 가입이 되어 있고, 상기 백업 서비스에 로그인 되어 있어야 할 수 있다.
한편, 백업지원 서버(300)는 프라이빗 키 백업 요청에 응답하여 사용자의 프라이빗 키 백업 서비스 가입 여부를 확인하고, 사용자가 상기 프라이빗 키 백업 서비스에 가입되어 있음이 확인되면, 난수와 개인식별값을 사용자의 ID와 PW 등의 사용자의 개인정보로 암호화한 세션 키(session key)를 생성한다(S503). 상기 개인식별값은 상기 사용자에 대응하는 개별적인 식별값이 된다. 또한, 백업지원 서버(300)는 상기 난수 및 개인색별값을 상기 전자 지갑 앱(103)에서 전달받은 퍼블릭 키로 암호화한 세션 데이터(session data)를 생성한다(S503). 그리고 백업지원 서버(300)는 생성한 세션 데이터를 전자 지갑 앱(103)으로 전송한다(S504). 백업지원 서버(300)에서의 요청 수신 및 데이터 전달 및 수신은 상기 백업지원 서버(300)의 통신부(미도시)에서 수행될 수 있다.
그런 다음 전자 지갑 앱(103)은 상기 세션 데이터를 SE에 설치된 전자 지갑 애플릿(104)으로 전달하며, 상기 전자 지갑 애플릿(104)에 프라이빗 키 암호화를 요청한다(S505). 그러면 전자 지갑 애플릿(104)은 SE에 저장된 퍼블릭 키를 이용하여 상기 세션 데이터를 복호화하여 난수 및 개인식별값을 획득한다(S506). SE에 저장된 퍼블릭 키와 백업지원 서버(300)에 전달된 퍼블릭 키가 동일하고 세션 데이터의 암호화 시 상기 퍼블릭 키를 이용했기 때문에 동일한 퍼블릭 키로 암호화된 세션 데이터가 복호화 될 수 있다.
그리고 전자 지갑 애플릿(104)은 세션 데이터에서 획득한 난수 및 개인식별값을 사용자의 개인정보로 암호화하여 세션 키(session key)를 생성한다. 전자 지갑 애플릿(104)에서 사용하는 사용자 개인정보는 백업지원 서버(300)에서 암호화시 사용하는 사용자의 개인정보와 동일하며, 사용자의 ID와 PW 등을 이용할 수 있다. 이에 따라 전자 지갑 애플릿(104)에서 생성한 세션 키는 백업지원 서버(300)에서 생성한 세션 키와 동일하다. 그리고 전자 지갑 애플릿(104)은 생성된 세션 키를 이용하여 프라이빗 키를 암호화하여 암호화된 프라이빗 키를 생성한다(S506). 그리고 전자 지갑 애플릿(104)은 암호화된 프라이빗 키를 전자 지갑 앱(103)으로 전달한다(S507).
전자 지갑 앱(103)은 전자 지갑 애플릿(104)에서 전달받은 암호화된 프라이빗 키를 백업지원 서버(300)로 전달하고(S508), 백업지원 서버(300)는 전달받은 세션 키를 이용하여 암호화된 프라이빗 키를 복호화하여 프라이빗 키를 획득하고, 이를 저장한다(S509). 좀 더 구체적으로 상기 백업지원 서버(300)는 관리키를 이용하여 개인식별값을 암호화한 개별 관리키를 생성하고, 상기 생성된 개별 관리키를 이용하여 획득된 프라이빗 키와 기 전달 받은 퍼블릭 키를 암호화하여 암호화 키를 생성하며, 상기 생성된 암호화 키를 상기 개인식별값과 매칭하여 저장 관리한다. 그리고 나서 백업지원 서버(300)는 프라이빗 키 백업 결과를 전자 지갑 앱(103)으로 전달하고(S510), 전자 지갑 앱(103)은 전자 지갑 백업 결과를 사용자(200)에서 전달한다(S511).
여기서 전자 지갑 앱(103)과 전자 지갑 애플릿(104)에서 수행되는 프로세스는 단말 장치의 프로세서(102)에 의해 수행되거나 지원된다. 그리고 백업지원 서버(300)에서 수행하는 암호화 복호화 프로세스 및 데이터 판독 및 저장 프로세스도 백업지원 서버(300) 내의 프로세서(미도시)에 의해 수행되거나 지원된다.
이에 따라 암호 화폐의 프라이빗 키를 사용자가 직접 보관함과 동시 3rd 파티인 공공기관이나 공인인증 기관의 백업지원 서버에 백업된 키를 보관할 수 있어 프라이빗 키의 분실이나 손상에 대비할 수 있다.
도 7은 본 발명의 일 실시예에 따른 암호 화폐의 프라이빗 키 복구 과정을 개략적으로 도시한 것이다.
도 7을 참조하면, 사용자(200)가 단말 장치(100) 나 SE에 저장된 프라이빗 키 또는 키 페어를 분실하여 전자 지갑 앱(103)으로 전자 지갑 복구 요청을 하는 경우(S701), 전자 지갑 앱(103)은 백업지원 서버(300)로 프라이빗 키 복구 요청을 전달한다(S702). 그리고 백업지원 서버(300)는 사용자의 백업 서비스 가입 여부를 확인하고, 사용자의 개인식별값과 매칭하여 저장 관리하고 있던 암호화 키를 불러와 개별관리키로 암호화 키를 복호화 하여, 프라이빗 키와 퍼블릭 키를 획득한다. 그리고 나서 백업지원 서버(300)는 난수와 개인식별값을 사용자의 ID와 PW 등의 사용자의 개인정보로 암호화한 세션 키(session key)를 생성하고, 획득한 프라이빗 키를 상기 세션 키로 암호화하여 암호화된 프라이빗 키를 생성한다(S703). 그리고 백업지원 서버(300)는 상기 암호화된 프라이빗 키, 상기 난수 및 상기 개인식별값을 전자 지갑 앱으로 전송한다(S704).
전자 지갑 앱(103)은 백업지원 서버(300)로부터 전달받은 상기 암호화된 프라이빗 키, 상기 난수 및 상기 개인식별값을 전자 지갑 애플릿(104)으로 전달하며, 프라이빗 키 복구를 요청한다(S705). 그러면 전자 지갑 애플릿(104)는 전달받은 난수 및 개인식별값을 사용자의 개인정보로 암호화하여 세션 키(session key)를 생성한다. 이때 사용되는 사용자의 개인정보는 백업지원 서버(300)에서 사용하는 사용자의 개인정보와 동일하고 이에 따라 생성되는 세션 키도 전자 지갑 애플릿에서와 백업지원 서버에서 모두 동일하게 된다. 전자 지갑 애플릿(104)는 생성된 세션 키를 이용하여 전자 지갑 앱(103)으로부터 전달받은 암호화된 프라이빗 키를 복호화하여 프라이빗 키를 복구하고 복구한 프라이빗 키를 SE에 저장한다(S707). 그리고 전자 지갑 애플릿(104)은 프라이빗 키 복구 결과를 전자 지갑 앱(103)으로 전달하고(S707), 전자 지갑 앱(103)은 전자 지갑 복구 결과를 사용자(200)에서 전달한다(S708).
한편, 전자 지갑 애플릿(104)에서 프라이빗 키만 복구하지 않고 퍼블릭 키도 같이 복구 요청을 할 필요가 있는 경우가 있는데, 이때는 전자 지갑 앱(103)이 백업지원 서버(300)로 사용자의 프라이빗 키 및 퍼블릭 키 복구 요청을 하고, 백업지원 서버(300)는 개인식별값과 매칭되는 암호화 키를 획득 또는 불러와 개별 관리키를 이용하여 암호화 키를 복호화하여 프라이빗 키 및 퍼블릭 키를 획득한다. 그런 다음, 백업지원 서버(300)는 사용자의 개인정보로 난수 및 개인식별값을 암호화한 세션 키를 생성하고, 상기 세션 키로 프라이빗 키 및 퍼블릭 키를 암호화하도록 하고, 상기 암호화된 프라이빗 키 및 퍼블릭 키, 상기 난수 및 상기 개인식별값을 전자 지갑 앱(103)으로 전송한다. 그리고 전자 지갑 앱(103)은 전자 지갑 애플릿(104)으로 상기 암호화된 프라이빗 키 및 퍼블릭 키, 상기 난수 및 상기 개인식별값을 전달하고, 전자 지갑 애플릿(104)은 상기 난수 및 상기 개인식별값을 상기 사용자의 개인정보를 이용하여 암호화한 세션 키를 생성한 후 상기 세션 키를 이용하여 상기 암호화된 프라이빗 키 및 퍼블릭 키를 복호화하여 프라이빗 키 및 퍼블릭 키를 획득한다. 그런 다음, 전자 지갑 애플릿(104)은, 획득된 프라이빗 키 및 퍼블릭 키를 SE에 저장하고 아울러 퍼블릭 키를 전자 지갑 앱(103)에 전달하는 과정을 진행한다.
도 8는 본 발명의 일 실시예에 따른 암호 화폐의 잔액 확인 과정을 개략적으로 도시한 것이고, 도 9는 본 발명의 일 실시예에 따른 암호 화폐의 전송 과정을 개략적으로 도시한 것이다.
도 8을 참조하면, 사용자(200)에 의한 전자 지갑의 선택 및 선택된 전자 지갑에 대한 잔액 확인 요청이 단말 장치(100)의 통신부(101)를 통해 입력되면(S801), 전자 지갑 앱(101)은 상기 사용자가 선택한 전자 지갑에 해당되는 암호 화폐의 잔액 확인 트랜잭션을 생성하여(S802) 생성된 트랜잭션을 퍼블릭 키와 함께 암호 화폐 네트워크(400)로 전달한다(S803). 그러면 암호 화폐 네트워크(400)에서는 트랜잭션에 응답하여 잔액 확인을 수행하고(S804), 그 결과를 전자 지갑 앱(103)으로 전달한다(S805). 그러면 전자 지갑 앱(103)는 잔액 확인 결과를 사용자에게 전달한다(S806).
도 9를 참조하면, 사용자(200)에 의한 전자 지갑의 선택 및 선택된 전자 지갑의 잔액 중 송금(또는 전송)할 금액과 송금할 주소가 입력되면(S901), 전자 지갑 앱(103)은 상기 사용자가 선택한 전자 지갑에 해당되는 암호 화폐의 송금할 금액 및 주소에 대한 트랜잭션을 생성한다(S902). 상기 트랜잭션에는 전송 번호(transaction id, txid), 이전 전송번호, 서명, 받는 주소 및 송금 금액을 포함한다. 그리고 전자 지갑 앱(103)은 상기 트랜잭션을 퍼블릭 키와 함께 암호 화폐 네트워크로(400)로 전달한다(S903). 그러면 암호 화폐 네트워크(400)에서는 트랜잭션에 응답하여 송금 주소로 해당 금액을 송금하고(S904), 그 결과를 전자 지갑 앱(103)으로 전달한다(S905). 그러면 전자 지갑 앱(103)는 송금 확인 결과 및 잔액을 사용자에게 전달한다(S906).
여기서도 전자 지갑 앱(103)과 전자 지갑 애플릿(104)에서 수행되는 프로세스는 단말 장치의 프로세서(102)에 의해 수행되거나 지원된다.
한편, 백업지원 서버에 백업된 키에 대한 정보는 프라이빗 블록 체인이나 퍼블릭 블록 체인에 등록할 수 있다. 그리고 상기 암호 화폐 네트워크(400)가 상기 프라이빗 블록 체인이나 퍼블릭 블록 체인에 해당될 수도 있다. 이때, 백업지원 서버(300)는 유효한 확인 결과에 대응하여, 소정의 조건, 일 예로 퍼블릭 블록체인 또는 프라이빗 블록 체인 데이터베이스에 소정의 해쉬값을 등록하기 위한 트리거링 조건이 만족되면, 트랜잭션(TrxA)에 해쉬 함수를 적용하여 생성한 특정 해쉬값(hash(TrxA)) 및 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 머클 루트로 생성하고, 생성된 머클 루트인 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 블록체인 데이터베이스에 등록하거나 등록하도록 지원하며, 블록체인 데이터베이스에 등록된 대표 해쉬값 또는 대표 해쉬값을 가공한 값인 머클 루트의 블록체인 데이터베이스 상의 위치 정보를 나타내는 트랜잭션 아이디(Txid)를 획득하거나 획득하도록 지원할 수 있다. 이때, 백업지원 서버(300)는 트랜잭션 아이디(Txid)에 대응되는 OP 메시지를 블록체인 데이터베이스로부터 획득할 수도 있다.
그리고, 특정 해쉬값과 적어도 하나의 이웃 해쉬값과의 연산은 다양한 해쉬 함수에 의해 수행될 수 있으며, 해쉬함수는 MD4 함수, MD5 함수, SHA-0 함수, SHA-1 함수, SHA-224 함수, SHA-256 함수, SHA-384 함수, SHA-512 함수 및 HAS-160 함수를 포함할 수 있으나, 이에 한정되지 않음은 통상의 기술자가 알 수 있을 것이다. 예를 들어 Triple SHA256도 가능할 것이다.
이때, 백업지원 서버(300)는 특정 해쉬값과 적어도 하나의 이웃 해쉬값을 소정의 데이터 구조로 저장하여 관리할 수 있다. 여기서, 데이터 구조는 다양할 수 있는데, 일 예로 머클 트리(merkle tree) 구조가 될 수도 있다. 이 경우, 특정 해쉬값과 적어도 하나의 이웃 해쉬값의 연산은 머클 트리(merkle tree)를 통해 이루어질 수 있다.
즉, 백업지원 서버(300)는 특정 해쉬값이 특정 리프 노드에 할당된 머클 트리(merkle tree)를 생성하거나 생성하도록 지원할 수 있고, 소정의 조건이 만족되면, 특정 해쉬값과 매칭되는 적어도 하나의 다른 리프 노드에 할당된 해쉬값을 연산하여 생성되는 머클 루트인 대표 해쉬값 또는 대표 해쉬값을 가공한 값을 블록체인 데이터베이스에 등록하거나 등록하도록 지원할 수 있다.
좀 더 구체적으로 설명하면, (x1) 백업지원 서버(300)는, (i) 특정 해쉬값과 (ii) 특정 해쉬값이 할당된 노드의 형제 노드에 할당된 해쉬값을 연산하거나 연산하도록 지원하고, 연산값에 대한 해쉬값을 노드의 부모 노드에 할당하거나 할당하도록 지원할 수 있다. (x2) 만일, 부모 노드가 머클 트리의 루트 노드이면, 부모 노드에 할당된 해쉬값이 대표 해쉬값이 된다. (x3) 반면, 부모 노드가 머클 트리의 루트 노드가 아니면, 백업지원 서버(300)는, 부모 노드에 할당된 해쉬값을 특정 해쉬값으로 하여 (x1) 내지 (x3)를 반복하여 수행한다.
그리고, 백업지원 서버(300)는 최종적으로 머클 트리의 루트 노드에 할당된 해쉬값을 대표 해쉬값으로서 블록체인 데이터베이스에 등록하거나 등록하도록 지원한다. 이때, 대표 해쉬값을 가공한 값이 등록될 수도 있다. 예를 들어, 대표 해쉬값에 hex 연산이 수행된 결과값이 등록될 수도 있다.
한편, 백업지원 서버(300)가 특정 해쉬값과 적어도 하나의 이웃 해쉬값을 소정의 제1 데이터 구조로 저장하고, 이후 제1 데이터 구조와 동일한 형태의 제2 데이터 구조를 저장하여 관리하는 경우, 제1 데이터 구조와 제2 데이터 구조는 체인 형태로 연결될 수 있다.
특히, 상술한 예에서와 같이 제1 데이터 구조 및 제2 데이터 구조가 머클 트리인 경우, 제1 데이터 구조의 루트값 또는 루트값의 해쉬값이 제2 데이터 구조의 첫번째 리프 노드에 할당될 수 있다.
또한, 제2 데이터 구조를 생성할 때는 제1 데이터 구조에 대한 검증이 이루어짐으로써 데이터 integrity가 좀 더 보장될 수 있다. 제2 데이터 구조의 검증에 대해서는 후술하기로 한다.
또한, 체인 형태로 연결된 적어도 하나의 머클 트리 중 첫번째 머클 트리의 경우, 첫번째 머클 트리의 첫번째 리프 노드에는 텍스트, 숫자, 또는 기호로 이루어진 소정의 메시지 데이터의 해쉬값 또는 이를 가공한 값이 할당될 수 있다. 예를 들어, 머클 트리 생성시 백업지원 서버(300)에 의해 최초로 부여된 입력 메시지의 해쉬값이 할당될 수 있다.
도 10 및 도 11은 본 발명의 일 실시예에 따라 생성된 머클 트리의 예를 도시한 도면이다.
도 10에서는 리프 노드의 개수가 4개인 머클 트리가 도시된다. 도시된 머클 트리는 첫번째 머클 트리이기 때문에(tree_id=0), 첫번째 리프 노드인 h0 노드에는 소정의 메시지 데이터의 해쉬값 (sha256(coinplug_unique_message))이 할당되었음을 알 수 있다. 기록 데이터에 대한 등록 요청(즉, 메신저 서비스 송수신 데이터에 관한 기록 요청)이 있는 경우, 백업지원 서버(300)는 현재 구성 중인 머클 트리의 가장 마지막 리프 노드의 다음 리프 노드를 생성하여 특정 해쉬값 또는 특정 해쉬값을 가공한 값을 할당하거나 할당하도록 지원한다. 예를 들어, 도 10의 머클 트리에서 두번째 리프 노드인 h1 노드까지 값 할당이 완료된 상태에서 새로운 리프 노드를 생성하여야 하는 경우, 다음 리프 노드인 h2 노드를 생성하여 특정 해쉬값 또는 특정 해쉬값을 가공한 값(sha256(input2))을 할당할 수 있다. 또한, 백업지원 서버(300)는 (i) h2 노드에 할당된 특정 해쉬값과 (ii) h2 노드의 형제 노드인 h3 노드에 할당된 해쉬값을 연산하거나 연산하도록 지원할 수 있다. 상기 연산값에 대한 해쉬값은 h2 노드와 h3 노드의 부모 노드(h23 노드)에 할당된다. 부모 노드(h23 노드)가 머클 트리의 루트 노드가 아니므로 백업지원 서버(300)는 h23 노드에 할당된 해쉬값을 특정 해쉬값으로 하여 상기 과정을 반복하여 수행할 수 있다. 즉, h23 노드에 할당된 해쉬값을 특정 해쉬값으로 하고, h23 노드에 할당된 해쉬값과 h01 노드에 할당된 해쉬값을 연산하여 h23 노드와 h01 노드의 부모 노드(h0123 노드)에 할당할 수 있다. 이때, h0123 노드가 머클 트리의 루트 노드이므로 백업지원 서버(300)는, h0123 노드에 할당된 해쉬값을 가공한 값(hex(h{node_index}))을 블록체인 데이터베이스(120)에 등록하거나 등록하도록 지원할 수 있다.
한편, 복수의 트랜잭션이 머클 트리의 리프 노드 수만큼 획득되면 머클 트리를 생성하고, 머클 트리의 루트값을 블록체인 데이터베이스(120)에 등록하거나 등록하도록 지원할 수 있다.
또한, 백업지원 서버(300)는 소정 시간 단위로 전술한 머클 트리의 루트값을 생성할 수 있다(상기 (ii) 조건). 이 경우 백업지원 서버(300)는 소정의 시간이 경과되면 그때까지의 입력값을 이용하여 머클 트리를 생성하고 머클 트리의 루트값을 블록체인 데이터베이스에 등록하거나 등록하도록 지원할 수 있다.
그런데, 이 경우에는 소정 시간이 경과하였음에도 머클 트리의 특정 해쉬값이 할당된 노드의 형제 노드에 값이 할당되지 않을 수 있다. 이처럼 소정의 조건이 만족되었음에도 특정 해쉬값이 할당된 노드의 형제 노드에 해쉬값이 할당되어 있지 않은 경우, 백업지원 서버(300)는, 형제 노드에 소정의 해쉬값을 할당하거나 할당하도록 지원하여 전술한 방식으로 머클 트리의 루트값이 산출되도록 할 수 있다. 예를 들어, 백업지원 서버(300)는 특정 해쉬값을 복제하여 형제 노드에 할당하거나 할당하도록 지원할 수 있다.
한편, 새로운 머클 트리 생성이 시작되고, 트랜잭션이 없는 상태에서 소정의 조건이 만족되면, 백업지원 서버(300)는, 소정의 메시지 데이터가 첫번째 리프 노드와 두번째 리프 노드에 할당된 머클 트리를 생성하거나 생성하도록 지원하고, 머클 트리의 루트값 또는 이를 가공한 값을 블록체인 데이터베이스에 등록하거나 등록하도록 지원할 수 있다. 이 경우에는 리프 노드 2개짜리 머클 트리가 생성될 수도 있는 것이다.
한편, 전술한 것처럼 백업지원 서버(300)가 특정 해쉬값과 적어도 하나의 이웃 해쉬값을 소정의 제1 데이터 구조로 저장하고, 이후 제1 데이터 구조와 동일한 형태의 제2 데이터 구조를 저장하여 관리하는 경우, 제1 데이터 구조와 제2 데이터 구조는 체인 형태로 연결될 수 있다. 특히, 제1 데이터 구조 및 제2 데이터 구조가 머클 트리인 경우, 제1 데이터 구조의 루트값 또는 루트값의 해쉬값이 제2 데이터 구조의 첫번째 리프 노드에 할당될 수 있다.
도 11은 본 발명의 일 실시예에 따라 제2 데이터 구조로서 생성된 머클 트리를 도시한 도면이다.
도 11을 참조하면, 도 10의 머클 트리(tree_id=0)의 루트값(hex(h0123))이 새로운 머클 트리의 첫번째 리프 노드(h4 노드)에 할당되었음을 알 수 있다(sha256(input4)). 본 발명은 이와 같이 트랜잭션 발생시 생성되는 복수의 데이터 구조를 연결함으로써 중간에 데이터가 변조가 발생되는 경우라도 쉽게 트래킹이 가능하여 데이터 integrity를 향상시키는 장점을 가진다.
이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.
100: 단말 장치,
101: 통신부,
102: 프로세서,
103: 전자 지갑 앱,
104: 전자 지갑 애플릿
200: 사용자
300: 백업지원 서버
400; 암호 화폐 네트워크

Claims (28)

  1. 암호 화폐의 전자 지갑 생성 방법에 있어서,
    (a) 사용자에 의한 상기 암호 화폐에 대한 전자 지갑 생성 요청이 획득되면, 사용자 단말이, 전자 지갑 앱으로 하여금 전자 지갑을 생성하도록 하며, SE에 설치되어 상기 전자 지갑에 연동되는 전자 지갑 애플릿으로 키 페어 생성을 요청하도록 하고, 상기 전자 지갑 애플릿으로 하여금 상기 키 페어를 생성하여 상기 SE에 저장하도록 하며, 상기 키 페어 중 퍼블릭 키를 상기 전자 지갑 앱으로 전달하도록 하는 단계; 및
    (b) 상기 전자 지갑 앱으로 상기 퍼블릭 키가 전달되면, 상기 사용자 단말이, 상기 퍼블릭 키를 저장하는 단계;
    를 포함하며,
    상기 (b) 단계에서,
    상기 사용자 단말이, 상기 퍼블릭 키를 저장함과 별도로,
    (b1) 상기 사용자 단말이, 전자 지갑 앱으로 하여금 상기 퍼블릭 키를 포함하는 프라이빗 키 백업 요청을 백업지원 서버로 전송하도록 함으로써, 상기 백업지원 서버로 하여금 상기 사용자의 개인정보로 난수 및 상기 사용자에 대응하는 개인식별값을 암호화한 제1 세션 키를 생성하도록 하고 상기 퍼블릭 키로 상기 난수 및 개인식별값을 암호화한 세션 데이터를 생성하도록 하며 상기 세션 데이터를 상기 사용자 단말의 상기 전자 지갑 앱에게 전송하도록 하는 단계;
    (b2) 상기 사용자 단말이, 상기 전자 지갑 앱으로 하여금 상기 SE에 설치된 전자 지갑 애플릿으로 상기 세션 데이터를 전달하도록 하고, 상기 전자 지갑 애플릿으로 하여금 상기 SE에 저장된 상기 퍼블릭 키를 이용하여 상기 세션 데이터를 복호화하여 상기 난수 및 상기 개인식별값을 획득하도록 하며, 상기 전자 지갑 애플릿으로 하여금 상기 세션 데이터로부터 획득된 상기 난수 및 상기 개인식별값을 상기 사용자의 개인정보를 이용하여 암호화한 제2 세션 키를 생성하도록 하고, 상기 제2 세션 키를 이용하여 상기 프라이빗 키를 암호화하도록 하며, 암호화된 프라이빗 키를 상기 전자 지갑 앱으로 전달하도록 하는 단계; 및
    (b3) 상기 전자 지갑 앱으로 상기 암호화된 프라이빗 키가 전달되면, 상기 사용자 단말이, 상기 전자 지갑 앱으로 하여금 상기 암호화된 프라이빗 키를 상기 백업지원 서버로 전달하도록 하여, 상기 백업지원 서버로 하여금 상기 제1 세션 키를 이용하여 상기 암호화된 프라이빗 키를 복호화하여 상기 프라이빗 키를 획득하도록 하며, 개별 관리키를 이용하여 상기 프라이빗 키와 상기 퍼블릭 키를 암호화한 암호화 키를 생성하며, 상기 생성된 암호화 키를 상기 개인식별값과 매칭하여 관리하도록 하는 단계;
    를 수행하고,
    상기 방법은,
    (c) 상기 사용자에 의한 상기 암호 화폐의 전자 지갑 복구 요청이 획득되면, 상기 사용자 단말이, 상기 전자 지갑 앱으로 하여금 상기 백업지원 서버로 상기 사용자의 프라이빗 키 복구 요청을 하도록 함으로써, 상기 백업지원 서버로 하여금 상기 개인식별값과 매칭되는 상기 암호화 키를 획득하도록 하며, 상기 개별 관리키를 이용하여 상기 암호화 키를 복호화하여 상기 퍼블릭 키 및 상기 프라이빗 키를 획득하도록 하고, 상기 사용자의 개인정보로 난수 및 개인식별값을 암호화한 상기 제1 세션 키를 생성하도록 하며, 상기 제1 세션 키로 상기 프라이빗 키를 암호화하도록 하고, 상기 암호화된 프라이빗 키, 상기 난수 및 상기 개인식별값을 상기 전자 지갑 앱으로 전송하도록 하는 단계; 및
    (d) 상기 사용자 단말이, 상기 전자 지갑 앱으로 하여금 상기 전자 지갑 애플릿으로 상기 암호화된 프라이빗 키, 상기 난수 및 개인식별값을 전달하게 하고, 상기 전자 지갑 애플릿으로 하여금 상기 난수 및 개인식별값을 상기 사용자의 개인정보를 이용하여 암호화한 상기 제2 세션 키를 생성하도록 하고 상기 제2 세션 키를 이용하여 상기 암호화된 프라이빗 키를 복호화하여 상기 프라이빗 키를 획득하도록 하고, 획득된 상기 프라이빗 키를 상기 SE에 저장하도록 하는 단계를 더 포함하며,
    상기 백업지원 서버는 블록 체인인 것을 특징으로 하는 방법.
  2. 삭제
  3. 삭제
  4. 암호 화폐의 전자 지갑 생성 방법에 있어서,
    (a) 사용자에 의한 상기 암호 화폐에 대한 전자 지갑 생성 요청이 획득되면, 사용자 단말이, 전자 지갑 앱으로 하여금 전자 지갑을 생성하도록 하며, SE에 설치되어 상기 전자 지갑에 연동되는 전자 지갑 애플릿으로 키 페어 생성을 요청하도록 하고, 상기 전자 지갑 애플릿으로 하여금 상기 키 페어를 생성하여 상기 SE에 저장하도록 하며, 상기 키 페어 중 퍼블릭 키를 상기 전자 지갑 앱으로 전달하도록 하는 단계; 및
    (b) 상기 전자 지갑 앱으로 상기 퍼블릭 키가 전달되면, 상기 사용자 단말이, 상기 퍼블릭 키를 저장하는 단계;
    를 포함하며,
    상기 (b) 단계에서,
    상기 사용자 단말이, 상기 퍼블릭 키를 저장함과 별도로,
    (b1) 상기 사용자 단말이, 전자 지갑 앱으로 하여금 상기 퍼블릭 키를 포함하는 프라이빗 키 백업 요청을 백업지원 서버로 전송하도록 함으로써, 상기 백업지원 서버로 하여금 상기 사용자의 개인정보로 난수 및 상기 사용자에 대응하는 개인식별값을 암호화한 제1 세션 키를 생성하도록 하고 상기 퍼블릭 키로 상기 난수 및 개인식별값을 암호화한 세션 데이터를 생성하도록 하며 상기 세션 데이터를 상기 사용자 단말의 상기 전자 지갑 앱에게 전송하도록 하는 단계;
    (b2) 상기 사용자 단말이, 상기 전자 지갑 앱으로 하여금 상기 SE에 설치된 전자 지갑 애플릿으로 상기 세션 데이터를 전달하도록 하고, 상기 전자 지갑 애플릿으로 하여금 상기 SE에 저장된 상기 퍼블릭 키를 이용하여 상기 세션 데이터를 복호화하여 상기 난수 및 상기 개인식별값을 획득하도록 하며, 상기 전자 지갑 애플릿으로 하여금 상기 세션 데이터로부터 획득된 상기 난수 및 상기 개인식별값을 상기 사용자의 개인정보를 이용하여 암호화한 제2 세션 키를 생성하도록 하고, 상기 제2 세션 키를 이용하여 상기 프라이빗 키를 암호화하도록 하며, 암호화된 프라이빗 키를 상기 전자 지갑 앱으로 전달하도록 하는 단계; 및
    (b3) 상기 전자 지갑 앱으로 상기 암호화된 프라이빗 키가 전달되면, 상기 사용자 단말이, 상기 전자 지갑 앱으로 하여금 상기 암호화된 프라이빗 키를 상기 백업지원 서버로 전달하도록 하여, 상기 백업지원 서버로 하여금 상기 제1 세션 키를 이용하여 상기 암호화된 프라이빗 키를 복호화하여 상기 프라이빗 키를 획득하도록 하며, 개별 관리키를 이용하여 상기 프라이빗 키와 상기 퍼블릭 키를 암호화한 암호화 키를 생성하며, 상기 생성된 암호화 키를 상기 개인식별값과 매칭하여 관리하도록 하는 단계;
    를 수행하고,
    상기 방법은,
    (c) 상기 사용자에 의한 상기 암호 화폐의 전자 지갑 복구 요청이 획득되면, 상기 사용자 단말이, 상기 전자 지갑 앱으로 하여금 상기 백업지원 서버로 상기 사용자의 상기 프라이빗 키 및 퍼블릭 키 복구 요청을 하도록 하게 함으로써, 상기 백업지원 서버로 하여금 상기 개인식별값과 매칭되는 상기 암호화 키를 획득하도록 하며, 상기 개별 관리키를 이용하여 상기 암호화 키를 복호화하여 상기 프라이빗 키 및 상기 퍼블릭 키를 획득하도록 하고, 상기 사용자의 개인정보로 난수 및 개인식별값을 암호화한 상기 제1 세션 키를 생성하도록 하며, 상기 제1 세션 키로 상기 프라이빗 키 및 퍼블릭 키를 암호화하도록 하고, 상기 암호화된 프라이빗 키 및 퍼블릭 키, 상기 난수 및 상기 개인식별값을 상기 전자 지갑 앱으로 전송하도록 하는 단계; 및
    (d) 상기 사용자 단말이, 상기 전자 지갑 앱으로 하여금 상기 전자 지갑 애플릿으로 상기 암호화된 프라이빗 키 및 퍼블릭 키, 상기 난수 및 상기 개인식별값을 전달하게 하고, 상기 전자 지갑 애플릿으로 하여금 상기 난수 및 상기 개인식별값을 상기 사용자의 개인정보를 이용하여 암호화한 상기 제2 세션 키를 생성하도록 하고 상기 제2 세션 키를 이용하여 상기 암호화된 프라이빗 키 및 퍼블릭 키를 복호화하여 상기 프라이빗 키 및 퍼블릭 키를 획득하도록 하고, 획득된 상기 프라이빗 키 및 퍼블릭 키를 상기 SE에 저장하고 상기 퍼블릭 키를 상기 전자 지갑 앱에 전달하도록 하는 단계를 더 포함하며,
    상기 백업지원 서버는 블록 체인인 것을 특징으로 하는 방법.
  5. 삭제
  6. 제1항에 있어서,
    상기 SE는 상기 사용자 단말의 하드 영역에 있는 SE, SIM에 형성되어 있는 SE, 상기 사용자 단말의 내장 eSE, 상기 사용자 단말의 내장 메모리 내에 형성된 SE, 외장 메모리 내에 형성된 SE 및 외부 IC 카드에 형성된 SE 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  7. 제6항에 있어서,
    상기 SE가 상기 외부 IC 카드에 형성된 경우, 상기 사용자 단말은 상기 외부 IC 카드와 NFC 통신으로 연결되어 상기 전자 지갑 앱과 상기 전자 지갑 애플릿이 통신하는 것을 특징으로 하는 방법.
  8. 제1항에 있어서,
    (e) 상기 사용자에 의한 상기 암호 화폐에 대한 잔액 확인 요청이 획득되면, 상기 사용자 단말이, 상기 전자 지갑 앱으로 하여금 상기 사용자의 전자 지갑에 해당하는 암호 화폐의 잔액 확인 트랜잭션을 생성하여, 상기 잔액 확인 트랜잭션과 상기 퍼블릭 키를 암호 화폐 네트워크로 전달하도록 하는 단계; 및
    (f) 상기 암호 화폐 네트워크로부터 상기 잔액 확인 요청에 대한 확인 결과가 전달되면, 상기 사용자 단말은, 상기 전자 지갑 앱으로 하여금 잔액 확인 결과를 표시하도록 하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  9. 제1항에 있어서,
    (g) 상기 사용자에 의한 상기 암호 화폐에 대한 송금 요청이 획득되면, 상기 사용자 단말이, 상기 전자 지갑 앱으로 하여금 송금할 주소 및 금액을 포함하는 상기 사용자의 전자 지갑에 해당하는 암호 화폐의 송금 요청 트랜잭션을 생성하여 암호 화폐 네트워크로 전달하도록 하는 단계; 및
    (h) 상기 암호 화폐 네트워크로부터 상기 송금 요청에 대한 송금 결과가 전달되면, 상기 사용자 단말은, 상기 전자 지갑 앱으로 하여금 송금 결과 및 상기 전자 지갑의 잔액을 표시하도록 하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  10. 암호 화폐의 전자 지갑 백업 방법에 있어서,
    (a) 사용자 단말에 퍼블릭 키가 저장되어 있으며, SE에 상기 퍼블릭 키와 프라이빗 키를 포함하는 키 페어가 저장된 상태에서, 사용자에 의한 상기 암호 화폐의 전자 지갑 백업 요청이 획득되면, 상기 사용자 단말이, 전자 지갑 앱으로 하여금 상기 퍼블릭 키를 포함하는 프라이빗 키 백업 요청을 백업지원 서버로 전송하도록 함으로써, 상기 백업지원 서버로 하여금 상기 사용자의 개인정보로 난수 및 상기 사용자에 대응하는 개인식별값을 암호화한 제1 세션 키를 생성하도록 하고 상기 퍼블릭 키로 상기 난수 및 상기 개인식별값을 암호화한 세션 데이터를 생성하도록 하며 상기 세션 데이터를 상기 사용자 단말의 상기 전자 지갑 앱에게 전송하도록 하는 단계;
    (b) 상기 사용자 단말이, 상기 전자 지갑 앱으로 하여금 상기 SE에 설치된 전자 지갑 애플릿으로 상기 세션 데이터를 전달하도록 하고, 상기 전자 지갑 애플릿으로 하여금 상기 SE에 저장된 상기 퍼블릭 키를 이용하여 상기 세션 데이터를 복호화하여 상기 난수 및 상기 개인식별값을 획득하도록 하며, 상기 전자 지갑 애플릿으로 하여금 상기 세션 데이터로부터 획득된 상기 난수 및 상기 개인식별값을 상기 사용자의 개인정보를 이용하여 암호화한 제2 세션 키를 생성하도록 하고 상기 제2 세션 키를 이용하여 상기 프라이빗 키를 암호화하도록 하며, 암호화된 프라이빗 키를 상기 전자 지갑 앱으로 전달하도록 하는 단계;
    (c) 상기 전자 지갑 앱으로 상기 암호화된 프라이빗 키가 전달되면, 상기 사용자 단말이, 상기 전자 지갑 앱으로 하여금 상기 암호화된 프라이빗 키를 상기 백업지원 서버로 전달하도록 하여, 상기 백업지원 서버로 하여금 상기 제1 세션 키를 이용하여 상기 암호화된 프라이빗 키를 복호화하여 상기 프라이빗 키를 획득하도록 하며, 개별 관리키를 이용하여 상기 프라이빗 키와 상기 퍼블릭 키를 암호화한 암호화 키를 생성하며, 상기 생성된 암호화 키를 상기 개인식별값과 매칭하여 관리하는 단계;
    (d) 상기 사용자에 의한 상기 암호 화폐의 전자 지갑 복구 요청이 획득되면, 상기 사용자 단말이, 상기 전자 지갑 앱으로 하여금 상기 백업지원 서버로 상기 사용자의 프라이빗 키 복구 요청을 하도록 하게 함으로써, 상기 백업지원 서버로 하여금 상기 개인식별값과 매칭되는 상기 암호화 키를 획득하도록 하며, 상기 개별 관리키를 이용하여 상기 암호화 키를 복호화하여 상기 퍼블릭 키 및 상기 프라이빗 키를 획득하도록 하고, 상기 사용자의 개인정보로 난수 및 개인식별값을 암호화한 상기 제1 세션 키를 생성하도록 하며, 상기 제1 세션 키로 상기 프라이빗 키를 암호화하도록 하고, 상기 암호화된 프라이빗 키, 상기 난수 및 상기 개인식별값을 상기 전자 지갑 앱으로 전송하도록 하는 단계; 및
    (e) 상기 사용자 단말이, 상기 전자 지갑 앱으로 하여금 상기 전자 지갑 애플릿으로 상기 암호화된 프라이빗 키, 상기 난수 및 상기 개인식별값을 전달하게 하고, 상기 전자 지갑 애플릿으로 하여금 상기 난수 및 상기 개인식별값을 상기 사용자의 개인정보를 이용하여 암호화한 상기 제2 세션 키를 생성하도록 하고 상기 제2 세션 키를 이용하여 상기 암호화된 프라이빗 키를 복호화하여 상기 프라이빗 키를 획득하도록 하고, 획득된 상기 프라이빗 키를 상기 SE에 저장하도록 하는 단계를 포함하는 것을 특징으로 하는 방법.
  11. 삭제
  12. 암호 화폐의 전자 지갑 백업 방법에 있어서,
    (a) 사용자 단말에 퍼블릭 키가 저장되어 있으며, SE에 상기 퍼블릭 키와 프라이빗 키를 포함하는 키 페어가 저장된 상태에서, 사용자에 의한 상기 암호 화폐의 전자 지갑 백업 요청이 획득되면, 상기 사용자 단말이, 전자 지갑 앱으로 하여금 상기 퍼블릭 키를 포함하는 프라이빗 키 백업 요청을 백업지원 서버로 전송하도록 함으로써, 상기 백업지원 서버로 하여금 상기 사용자의 개인정보로 난수 및 상기 사용자에 대응하는 개인식별값을 암호화한 제1 세션 키를 생성하도록 하고 상기 퍼블릭 키로 상기 난수 및 상기 개인식별값을 암호화한 세션 데이터를 생성하도록 하며 상기 세션 데이터를 상기 사용자 단말의 상기 전자 지갑 앱에게 전송하도록 하는 단계;
    (b) 상기 사용자 단말이, 상기 전자 지갑 앱으로 하여금 상기 SE에 설치된 전자 지갑 애플릿으로 상기 세션 데이터를 전달하도록 하고, 상기 전자 지갑 애플릿으로 하여금 상기 SE에 저장된 상기 퍼블릭 키를 이용하여 상기 세션 데이터를 복호화하여 상기 난수 및 상기 개인식별값을 획득하도록 하며, 상기 전자 지갑 애플릿으로 하여금 상기 세션 데이터로부터 획득된 상기 난수 및 상기 개인식별값을 상기 사용자의 개인정보를 이용하여 암호화한 제2 세션 키를 생성하도록 하고 상기 제2 세션 키를 이용하여 상기 프라이빗 키를 암호화하도록 하며, 암호화된 프라이빗 키를 상기 전자 지갑 앱으로 전달하도록 하는 단계;
    (c) 상기 전자 지갑 앱으로 상기 암호화된 프라이빗 키가 전달되면, 상기 사용자 단말이, 상기 전자 지갑 앱으로 하여금 상기 암호화된 프라이빗 키를 상기 백업지원 서버로 전달하도록 하여, 상기 백업지원 서버로 하여금 상기 제1 세션 키를 이용하여 상기 암호화된 프라이빗 키를 복호화하여 상기 프라이빗 키를 획득하도록 하며, 개별 관리키를 이용하여 상기 프라이빗 키와 상기 퍼블릭 키를 암호화한 암호화 키를 생성하며, 상기 생성된 암호화 키를 상기 개인식별값과 매칭하여 관리하는 단계;
    (d) 상기 사용자에 의한 상기 암호 화폐의 전자 지갑 복구 요청이 획득되면, 상기 사용자 단말이, 상기 전자 지갑 앱으로 하여금 상기 백업지원 서버로 상기 사용자의 상기 프라이빗 키 및 퍼블릭 키 복구 요청을 하도록 하게 함으로써, 상기 백업지원 서버로 하여금 상기 개인식별값과 매칭되는 상기 암호화 키를 획득하도록 하며, 상기 개별 관리키를 이용하여 상기 암호화 키를 복호화하여 상기 프라이빗 키 및 상기 퍼블릭 키를 획득하도록 하고, 상기 사용자의 개인정보로 난수 및 개인식별값을 암호화한 상기 제1 세션 키를 생성하도록 하며, 상기 제1 세션 키로 상기 프라이빗 키 및 퍼블릭 키를 암호화하도록 하고, 상기 암호화된 프라이빗 키 및 퍼블릭 키, 상기 난수 및 상기 개인식별값을 상기 전자 지갑 앱으로 전송하도록 하는 단계; 및
    (e) 상기 사용자 단말이, 상기 전자 지갑 앱으로 하여금 상기 전자 지갑 애플릿으로 상기 암호화된 프라이빗 키 및 퍼블릭 키, 상기 난수 및 상기 개인식별값을 전달하게 하고, 상기 전자 지갑 애플릿으로 하여금 상기 난수 및 상기 개인식별값을 상기 사용자의 개인정보를 이용하여 암호화한 상기 제2 세션 키를 생성하도록 하고 상기 제2 세션 키를 이용하여 상기 암호화된 프라이빗 키 및 퍼블릭 키를 복호화하여 상기 프라이빗 키 및 퍼블릭 키를 획득하도록 하고, 획득된 상기 프라이빗 키 및 퍼블릭 키를 상기 SE에 저장하고 상기 퍼블릭 키를 상기 전자 지갑 앱에 전달하도록 하는 단계를 포함하는 것을 특징으로 하는 방법.
  13. 암호 화폐의 전자 지갑 백업 방법에 있어서,
    (a) 사용자 단말에 퍼블릭 키가 저장되어 있으며, SE에 상기 퍼블릭 키와 프라이빗 키를 포함하는 키 페어가 저장된 상태에서, 사용자에 의한 상기 암호 화폐의 전자 지갑 백업 요청에 응답하여 상기 사용자 단말의 전자 지갑 앱으로부터 상기 퍼블릭 키를 포함하는 프라이빗 키 백업 요청이 전송되면, 백업지원 서버가, 상기 사용자의 개인정보로 난수 및 상기 사용자에 대응하는 개인식별값을 암호화한 제1 세션 키를 생성하도록 하고 상기 퍼블릭 키로 상기 난수 및 개인식별값을 암호화한 세션 데이터를 생성하며 상기 세션 데이터를 상기 사용자 단말의 상기 전자 지갑 앱에게 전송하는 단계;
    (b) 상기 백업지원 서버가, 상기 사용자 단말의 상기 전자 지갑 앱으로 하여금 상기 SE에 설치된 전자 지갑 애플릿으로 상기 세션 데이터를 전달하도록 하고, 상기 전자 지갑 애플릿으로 하여금 상기 SE에 저장된 상기 퍼블릭 키를 이용하여 상기 세션 데이터를 복호화하여 상기 난수 및 개인식별값을 획득하도록 하며, 상기 전자 지갑 애플릿으로 하여금 세션 데이터로부터 획득된 상기 난수 및 개인식별값을 상기 사용자의 개인정보를 이용하여 암호화한 제2 세션 키를 생성하도록 하고 상기 제2 세션 키를 이용하여 상기 프라이빗 키를 암호화하도록 하며, 암호화된 프라이빗 키를 상기 전자 지갑 앱으로 전달하도록 하는 단계;
    (c) 상기 전자 지갑 앱으로 상기 암호화된 프라이빗 키가 전달되면, 상기 백업지원 서버가, 상기 사용자 단말의 상기 전자 지갑 앱으로 하여금 상기 암호화된 프라이빗 키를 상기 백업지원 서버로 전달하도록 하고, 상기 백업지원 서버는, 상기 제1 세션 키를 이용하여 상기 암호화된 프라이빗 키를 복호화하여 상기 프라이빗 키를 획득하며, 개별 관리키를 이용하여 상기 프라이빗 키와 상기 퍼블릭 키를 암호화한 암호화 키를 생성하며, 상기 생성된 암호화 키를 상기 개인식별값과 매칭하여 관리하는 단계;
    (d) 상기 사용자에 의한 상기 암호 화폐의 전자 지갑 복구 요청에 응답하여, 상기 사용자 단말의 상기 전자 지갑 앱으로부터 상기 사용자의 프라이빗 키 복구 요청이 전송되면, 상기 백업지원 서버가, 상기 개인식별값과 매칭되는 상기 암호화 키를 획득하며, 상기 개별 관리키를 이용하여 상기 암호화 키를 복호화하여 상기 퍼블릭 키 및 상기 프라이빗 키를 획득하고, 상기 사용자의 개인정보로 난수 및 개인식별값을 암호화한 상기 제1 세션 키를 생성하며, 상기 제1 세션 키로 상기 프라이빗 키를 암호화하고, 상기 암호화된 프라이빗 키, 상기 난수 및 상기 개인식별값을 상기 전자 지갑 앱으로 전송하는 단계; 및
    (e) 상기 백업지원 서버가, 상기 사용자 단말의 상기 전자 지갑 앱으로 하여금 상기 전자 지갑 애플릿으로 상기 암호화된 프라이빗 키, 상기 난수 및 상기 개인식별값을 전달하게 하고, 상기 전자 지갑 애플릿으로 하여금 상기 난수 및 개인식별값을 상기 사용자의 개인정보를 이용하여 암호화한 상기 제2 세션 키를 생성하도록 하고 상기 제2 세션 키를 이용하여 상기 암호화된 프라이빗 키를 복호화하여 상기 프라이빗 키를 획득하도록 하고, 획득된 상기 프라이빗 키를 상기 SE에 저장하도록 하는 단계를 포함하는 것을 특징으로 하는 방법.
  14. 삭제
  15. 암호 화폐의 전자 지갑 백업 방법에 있어서,
    (a) 사용자 단말에 퍼블릭 키가 저장되어 있으며, SE에 상기 퍼블릭 키와 프라이빗 키를 포함하는 키 페어가 저장된 상태에서, 사용자에 의한 상기 암호 화폐의 전자 지갑 백업 요청에 응답하여 상기 사용자 단말의 전자 지갑 앱으로부터 상기 퍼블릭 키를 포함하는 프라이빗 키 백업 요청이 전송되면, 백업지원 서버가, 상기 사용자의 개인정보로 난수 및 상기 사용자에 대응하는 개인식별값을 암호화한 제1 세션 키를 생성하도록 하고 상기 퍼블릭 키로 상기 난수 및 개인식별값을 암호화한 세션 데이터를 생성하며 상기 세션 데이터를 상기 사용자 단말의 상기 전자 지갑 앱에게 전송하는 단계;
    (b) 상기 백업지원 서버가, 상기 사용자 단말의 상기 전자 지갑 앱으로 하여금 상기 SE에 설치된 전자 지갑 애플릿으로 상기 세션 데이터를 전달하도록 하고, 상기 전자 지갑 애플릿으로 하여금 상기 SE에 저장된 상기 퍼블릭 키를 이용하여 상기 세션 데이터를 복호화하여 상기 난수 및 개인식별값을 획득하도록 하며, 상기 전자 지갑 애플릿으로 하여금 세션 데이터로부터 획득된 상기 난수 및 개인식별값을 상기 사용자의 개인정보를 이용하여 암호화한 제2 세션 키를 생성하도록 하고 상기 제2 세션 키를 이용하여 상기 프라이빗 키를 암호화하도록 하며, 암호화된 프라이빗 키를 상기 전자 지갑 앱으로 전달하도록 하는 단계;
    (c) 상기 전자 지갑 앱으로 상기 암호화된 프라이빗 키가 전달되면, 상기 백업지원 서버가, 상기 사용자 단말의 상기 전자 지갑 앱으로 하여금 상기 암호화된 프라이빗 키를 상기 백업지원 서버로 전달하도록 하고, 상기 백업지원 서버는, 상기 제1 세션 키를 이용하여 상기 암호화된 프라이빗 키를 복호화하여 상기 프라이빗 키를 획득하며, 개별 관리키를 이용하여 상기 프라이빗 키와 상기 퍼블릭 키를 암호화한 암호화 키를 생성하며, 상기 생성된 암호화 키를 상기 개인식별값과 매칭하여 관리하는 단계;
    (d) 상기 사용자에 의한 상기 암호 화폐의 전자 지갑 복구 요청에 응답하여, 상기 사용자 단말의 상기 전자 지갑 앱으로부터 상기 사용자의 프라이빗 키 복구 요청이 전송되면, 상기 백업지원 서버가, 상기 개인식별값과 매칭되는 상기 암호화 키를 획득하며, 상기 개별 관리키를 이용하여 상기 암호화 키를 복호화하여 상기 프라이빗 키 및 상기 퍼블릭 키를 획득하고, 상기 사용자의 개인정보로 난수 및 개인식별값을 암호화한 상기 제1 세션 키를 생성하며, 상기 제1 세션 키로 상기 프라이빗 키 및 퍼블릭 키를 암호화하고, 상기 암호화된 프라이빗 키 및 퍼블릭 키, 상기 난수 및 상기 개인식별값을 상기 전자 지갑 앱으로 전송하는 단계; 및
    (e) 상기 백업지원 서버가, 상기 사용자 단말의 상기 전자 지갑 앱으로 하여금 상기 전자 지갑 애플릿으로 상기 암호화된 프라이빗 키 및 퍼블릭 키, 상기 난수 및 상기 개인식별값을 전달하게 하고, 상기 전자 지갑 애플릿으로 하여금 상기 난수 및 개인식별값을 상기 사용자의 개인정보를 이용하여 암호화한 상기 제2 세션 키를 생성하도록 하고 상기 제2 세션 키를 이용하여 상기 암호화된 프라이빗 키 및 퍼블릭 키를 복호화하여 상기 프라이빗 키 및 퍼블릭 키를 획득하도록 하고, 획득된 상기 프라이빗 키 및 퍼블릭 키를 상기 SE에 저장하고 상기 퍼블릭 키를 상기 전자 지갑 앱에 전달하도록 하는 단계를 포함하는 것을 특징으로 하는 방법.
  16. 암호 화폐의 전자 지갑을 생성하고 관리하기 위한 단말 장치에 있어서,
    사용자에 의한 상기 암호 화폐에 대한 전자 지갑 생성 요청을 획득하기 위한 통신부; 및
    1) 상기 통신부를 통해 획득된 상기 전자 지갑 생성 요청이 획득되면, 전자 지갑 앱으로 하여금 전자 지갑을 생성하도록 하며, SE에 설치되어 상기 전자 지갑에 연동되는 전자 지갑 애플릿으로 키 페어 생성을 요청하도록 하고, 상기 전자 지갑 애플릿으로 하여금 상기 키 페어를 생성하여 상기 SE에 저장하도록 하며, 상기 키 페어 중 퍼블릭 키를 상기 전자 지갑 앱으로 전달하도록 지원하는 프로세스; 2) 상기 전자 지갑 앱으로 상기 퍼블릭 키가 전달되면, 상기 퍼블릭 키를 상기 전자 지갑 앱에 저장하도록 지원하는 프로세스; 3) 상기 퍼블릭 키를 저장함과 별도로, 전자 지갑 앱으로 하여금 상기 퍼블릭 키를 포함하는 프라이빗 키 백업 요청을 백업지원 서버로 전송하도록 함으로써, 상기 백업지원 서버로 하여금 상기 사용자의 개인정보로 난수 및 상기 사용자에 대응하는 개인식별값을 암호화한 제1 세션 키를 생성하도록 하고 상기 퍼블릭 키로 상기 난수 및 개인식별값을 암호화한 세션 데이터를 생성하도록 하며 상기 세션 데이터를 상기 단말 장치의 상기 전자 지갑 앱에게 전송하도록 지원하는 프로세스; 4) 상기 전자 지갑 앱으로 하여금 상기 SE에 설치된 전자 지갑 애플릿으로 상기 세션 데이터를 전달하도록 하고, 상기 전자 지갑 애플릿으로 하여금 상기 SE에 저장된 상기 퍼블릭 키를 이용하여 상기 세션 데이터를 복호화하여 상기 난수 및 상기 개인식별값을 획득하도록 하며, 상기 전자 지갑 애플릿으로 하여금 상기 세션 데이터로부터 획득된 상기 난수 및 상기 개인식별값을 상기 사용자의 개인정보를 이용하여 암호화한 제2 세션 키를 생성하도록 하고, 상기 제2 세션 키를 이용하여 상기 프라이빗 키를 암호화하도록 하며, 암호화된 프라이빗 키를 상기 전자 지갑 앱으로 전달하도록 지원하는 프로세스; 및 5) 상기 전자 지갑 앱으로 상기 암호화된 프라이빗 키가 전달되면, 상기 전자 지갑 앱으로 하여금 상기 암호화된 프라이빗 키를 상기 백업지원 서버로 전달하도록 하여, 상기 백업지원 서버로 하여금 상기 제1 세션 키를 이용하여 상기 암호화된 프라이빗 키를 복호화하여 상기 프라이빗 키를 획득하도록 하며, 개별 관리키를 이용하여 상기 프라이빗 키와 상기 퍼블릭 키를 암호화한 암호화 키를 생성하며, 상기 생성된 암호화 키를 상기 개인식별값과 매칭하여 관리하도록 지원하는 프로세스;를 수행하는 프로세서;
    를 포함하며,
    상기 통신부는, 상기 사용자에 의한 상기 암호 화폐의 전자 지갑 복구 요청을 획득하고,
    상기 프로세서는, 6) 상기 사용자에 의한 상기 암호 화폐의 상기 전자 지갑 복구 요청이 획득되면, 상기 전자 지갑 앱으로 하여금 상기 백업지원 서버로 상기 사용자의 프라이빗 키 복구 요청을 하도록 함으로써, 상기 백업지원 서버로 하여금 상기 개인식별값과 매칭되는 상기 암호화 키를 획득하도록 하며, 상기 개별 관리키를 이용하여 상기 암호화 키를 복호화하여 상기 퍼블릭 키 및 상기 프라이빗 키를 획득하도록 하고, 상기 사용자의 개인정보로 난수 및 개인식별값을 암호화한 상기 제1 세션 키를 생성하도록 하며, 상기 제1 세션 키로 상기 프라이빗 키를 암호화하도록 하고, 상기 암호화된 프라이빗 키, 상기 난수 및 상기 개인식별값을 상기 전자 지갑 앱으로 전송하도록 지원하는 프로세스; 및 7) 상기 전자 지갑 앱으로 하여금 상기 전자 지갑 애플릿으로 상기 암호화된 프라이빗 키, 상기 난수 및 개인식별값을 전달하게 하고, 상기 전자 지갑 애플릿으로 하여금 상기 난수 및 개인식별값을 상기 사용자의 개인정보를 이용하여 암호화한 상기 제2 세션 키를 생성하도록 하고 상기 제2 세션 키를 이용하여 상기 암호화된 프라이빗 키를 복호화하여 상기 프라이빗 키를 획득하도록 하고, 획득된 상기 프라이빗 키를 상기 SE에 저장하도록 지원하는 프로세스를 더 수행하고,
    상기 백업지원 서버는 블록 체인인 것을 특징으로 하는 단말 장치.
  17. 삭제
  18. 삭제
  19. 암호 화폐의 전자 지갑을 생성하고 관리하기 위한 단말 장치에 있어서,
    사용자에 의한 상기 암호 화폐에 대한 전자 지갑 생성 요청을 획득하기 위한 통신부; 및
    1) 상기 통신부를 통해 획득된 상기 전자 지갑 생성 요청이 획득되면, 전자 지갑 앱으로 하여금 전자 지갑을 생성하도록 하며, SE에 설치되어 상기 전자 지갑에 연동되는 전자 지갑 애플릿으로 키 페어 생성을 요청하도록 하고, 상기 전자 지갑 애플릿으로 하여금 상기 키 페어를 생성하여 상기 SE에 저장하도록 하며, 상기 키 페어 중 퍼블릭 키를 상기 전자 지갑 앱으로 전달하도록 지원하는 프로세스; 2) 상기 전자 지갑 앱으로 상기 퍼블릭 키가 전달되면, 상기 퍼블릭 키를 상기 전자 지갑 앱에 저장하도록 지원하는 프로세스; 3) 상기 퍼블릭 키를 저장함과 별도로, 전자 지갑 앱으로 하여금 상기 퍼블릭 키를 포함하는 프라이빗 키 백업 요청을 백업지원 서버로 전송하도록 함으로써, 상기 백업지원 서버로 하여금 상기 사용자의 개인정보로 난수 및 상기 사용자에 대응하는 개인식별값을 암호화한 제1 세션 키를 생성하도록 하고 상기 퍼블릭 키로 상기 난수 및 개인식별값을 암호화한 세션 데이터를 생성하도록 하며 상기 세션 데이터를 상기 단말 장치의 상기 전자 지갑 앱에게 전송하도록 지원하는 프로세스; 4) 상기 전자 지갑 앱으로 하여금 상기 SE에 설치된 전자 지갑 애플릿으로 상기 세션 데이터를 전달하도록 하고, 상기 전자 지갑 애플릿으로 하여금 상기 SE에 저장된 상기 퍼블릭 키를 이용하여 상기 세션 데이터를 복호화하여 상기 난수 및 상기 개인식별값을 획득하도록 하며, 상기 전자 지갑 애플릿으로 하여금 상기 세션 데이터로부터 획득된 상기 난수 및 상기 개인식별값을 상기 사용자의 개인정보를 이용하여 암호화한 제2 세션 키를 생성하도록 하고, 상기 제2 세션 키를 이용하여 상기 프라이빗 키를 암호화하도록 하며, 암호화된 프라이빗 키를 상기 전자 지갑 앱으로 전달하도록 지원하는 프로세스; 및 5) 상기 전자 지갑 앱으로 상기 암호화된 프라이빗 키가 전달되면, 상기 전자 지갑 앱으로 하여금 상기 암호화된 프라이빗 키를 상기 백업지원 서버로 전달하도록 하여, 상기 백업지원 서버로 하여금 상기 제1 세션 키를 이용하여 상기 암호화된 프라이빗 키를 복호화하여 상기 프라이빗 키를 획득하도록 하며, 개별 관리키를 이용하여 상기 프라이빗 키와 상기 퍼블릭 키를 암호화한 암호화 키를 생성하며, 상기 생성된 암호화 키를 상기 개인식별값과 매칭하여 관리하도록 지원하는 프로세스;를 수행하는 프로세서;
    를 포함하며,
    상기 통신부는, 상기 사용자에 의한 상기 암호 화폐의 전자 지갑 복구 요청을 획득하고,
    상기 프로세서는, 6) 상기 사용자에 의한 상기 암호 화폐의 상기 전자 지갑 복구 요청이 획득되면, 상기 전자 지갑 앱으로 하여금 상기 백업지원 서버로 상기 사용자의 상기 프라이빗 키 및 퍼블릭 키 복구 요청을 하도록 하게 함으로써, 상기 백업지원 서버로 하여금 상기 개인식별값과 매칭되는 상기 암호화 키를 획득하도록 하며, 상기 개별 관리키를 이용하여 상기 암호화 키를 복호화하여 상기 프라이빗 키 및 상기 퍼블릭 키를 획득하도록 하고, 상기 사용자의 개인정보로 난수 및 개인식별값을 암호화한 상기 제1 세션 키를 생성하도록 하며, 상기 제1 세션 키로 상기 프라이빗 키 및 퍼블릭 키를 암호화하도록 하고, 상기 암호화된 프라이빗 키 및 퍼블릭 키, 상기 난수 및 상기 개인식별값을 상기 전자 지갑 앱으로 전송하도록 지원하는 프로세스; 및 7) 상기 전자 지갑 앱으로 하여금 상기 전자 지갑 애플릿으로 상기 암호화된 프라이빗 키 및 퍼블릭 키, 상기 난수 및 상기 개인식별값을 전달하게 하고, 상기 전자 지갑 애플릿으로 하여금 상기 난수 및 상기 개인식별값을 상기 사용자의 개인정보를 이용하여 암호화한 상기 제2 세션 키를 생성하도록 하고 상기 제2 세션 키를 이용하여 상기 암호화된 프라이빗 키 및 퍼블릭 키를 복호화하여 상기 프라이빗 키 및 퍼블릭 키를 획득하도록 하고, 획득된 상기 프라이빗 키 및 퍼블릭 키를 상기 SE에 저장하고 상기 퍼블릭 키를 상기 전자 지갑 앱에 전달하도록 지원하는 프로세스를 더 수행하고,
    상기 백업지원 서버는 블록 체인인 것을 특징으로 하는 단말 장치.
  20. 삭제
  21. 제16항에 있어서,
    상기 SE는 상기 단말 장치의 하드 영역에 있는 SE, SIM에 형성되어 있는 SE, 상기 단말 장치의 내장 eSE, 상기 단말 장치의 내장 메모리 내에 형성된 SE, 외장 메모리 내에 형성된 SE 및 외부 IC 카드에 형성된 SE 중 적어도 하나를 포함하는 것을 특징으로 하는 단말 장치.
  22. 제21항에 있어서,
    상기 SE가 상기 외부 IC 카드에 형성된 경우, 상기 단말 장치는 상기 외부 IC 카드와 NFC 통신으로 연결되어 상기 전자 지갑 앱과 상기 전자 지갑 애플릿이 통신하는 것을 특징으로 하는 단말 장치.
  23. 제16항에 있어서,
    상기 프로세서는, 8) 상기 사용자에 의한 상기 암호 화폐에 대한 잔액 확인 요청이 획득되면, 상기 전자 지갑 앱으로 하여금 상기 사용자의 전자 지갑에 해당하는 암호 화폐의 잔액 확인 트랜잭션을 생성하여, 상기 잔액 확인 트랜잭션과 상기 퍼블릭 키를 암호 화폐 네트워크로 전달하도록 지원하는 프로세스; 및 9) 상기 암호 화폐 네트워크로부터 상기 잔액 확인 요청에 대한 확인 결과가 전달되면, 상기 단말 장치는, 상기 전자 지갑 앱으로 하여금 잔액 확인 결과를 표시하도록 지원하는 프로세스
    를 수행하는 것을 특징으로 하는 단말 장치.
  24. 제16항에 있어서,
    상기 프로세서는, 10) 상기 사용자에 의한 상기 암호 화폐에 대한 송금 요청이 획득되면, 상기 전자 지갑 앱으로 하여금 송금할 주소 및 금액을 포함하는 상기 사용자의 전자 지갑에 해당하는 암호 화폐의 송금 요청 트랜잭션을 생성하여 암호 화폐 네트워크로 전달하도록 지원하는 프로세스; 및 11) 상기 암호 화폐 네트워크로부터 상기 송금 요청에 대한 송금 결과가 전달되면, 상기 전자 지갑 앱으로 하여금 송금 결과 및 상기 전자 지갑의 잔액을 표시하도록 지원하는 프로세스
    를 수행하는 것을 특징으로 하는 단말 장치.
  25. 암호 화폐의 전자 지갑 백업을 수행하는 단말 장치에 있어서,
    단말 장치에 퍼블릭 키가 저장되어 있으며, SE에 상기 퍼블릭 키와 프라이빗 키를 포함하는 키 페어가 저장된 상태에서, 사용자에 의한 상기 암호 화폐의 전자 지갑 백업 요청을 획득하기 위한 통신부; 및
    1) 상기 통신부를 통해 획득된 상기 전자 지갑 백업 요청이 획득되면, 전자 지갑 앱으로 하여금 상기 퍼블릭 키를 포함하는 프라이빗 키 백업 요청을 백업지원 서버로 전송하도록 함으로써, 상기 백업지원 서버로 하여금 상기 사용자의 개인정보로 난수 및 상기 사용자에 대응하는 개인식별값을 암호화한 제1 세션 키를 생성하도록 하고 상기 퍼블릭 키로 상기 난수 및 상기 개인식별값을 암호화한 세션 데이터를 생성하도록 하며 상기 세션 데이터를 상기 단말 장치의 상기 전자 지갑 앱에게 전송하도록 지원하는 프로세스; 2) 상기 전자 지갑 앱으로 하여금 상기 SE에 설치된 전자 지갑 애플릿으로 상기 세션 데이터를 전달하도록 하고, 상기 전자 지갑 애플릿으로 하여금 상기 SE에 저장된 상기 퍼블릭 키를 이용하여 상기 세션 데이터를 복호화하여 상기 난수 및 상기 개인식별값을 획득하도록 하며, 상기 전자 지갑 애플릿으로 하여금 상기 세션 데이터로부터 획득된 상기 난수 및 상기 개인식별값을 상기 사용자의 개인정보를 이용하여 암호화한 제2 세션 키를 생성하도록 하고 상기 제2 세션 키를 이용하여 상기 프라이빗 키를 암호화하도록 하며, 암호화된 프라이빗 키를 상기 전자 지갑 앱으로 전달하도록 지원하는 프로세스; 및 3) 상기 전자 지갑 앱으로 상기 암호화된 프라이빗 키가 전달되면, 상기 전자 지갑 앱으로 하여금 상기 암호화된 프라이빗 키를 상기 백업지원 서버로 전달하도록 하여, 상기 백업지원 서버로 하여금 상기 제1 세션 키를 이용하여 상기 암호화된 프라이빗 키를 복호화하여 상기 프라이빗 키를 획득하도록 하며, 개별 관리키를 이용하여 상기 프라이빗 키와 상기 퍼블릭 키를 암호화한 암호화 키를 생성하며, 상기 생성된 암호화 키를 상기 개인식별값과 매칭하여 관리하도록 지원하는 프로세스를 수행하는 프로세서;
    를 포함하고,
    상기 통신부는, 상기 사용자에 의한 상기 암호 화폐의 전자 지갑 복구 요청을 획득하고,
    상기 프로세서는, 4) 상기 사용자에 의한 상기 암호 화폐의 상기 전자 지갑 복구 요청이 획득되면, 상기 전자 지갑 앱으로 하여금 상기 백업지원 서버로 상기 사용자의 프라이빗 키 복구 요청을 하도록 하게 함으로써, 상기 백업지원 서버로 하여금 상기 개인식별값과 매칭되는 상기 암호화 키를 획득하도록 하며, 상기 개별 관리키를 이용하여 상기 암호화 키를 복호화하여 상기 퍼블릭 키 및 상기 프라이빗 키를 획득하도록 하고, 상기 사용자의 개인정보로 난수 및 개인식별값을 암호화한 상기 제1 세션 키를 생성하도록 하며, 상기 제1 세션 키로 상기 프라이빗 키를 암호화하도록 하고, 상기 암호화된 프라이빗 키, 상기 난수 및 상기 개인식별값을 상기 전자 지갑 앱으로 전송하도록 지원하는 프로세스; 및 5) 상기 전자 지갑 앱으로 하여금 상기 전자 지갑 애플릿으로 상기 암호화된 프라이빗 키, 상기 난수 및 상기 개인식별값을 전달하게 하고, 상기 전자 지갑 애플릿으로 하여금 상기 난수 및 상기 개인식별값을 상기 사용자의 개인정보를 이용하여 암호화한 상기 제2 세션 키를 생성하도록 하고 상기 제2 세션 키를 이용하여 상기 암호화된 프라이빗 키를 복호화하여 상기 프라이빗 키를 획득하도록 하고, 획득된 상기 프라이빗 키를 상기 SE에 저장하도록 지원하는 프로세스를 더 수행하는 것을 특징으로 하는 단말 장치.
  26. 삭제
  27. 암호 화폐의 전자 지갑 백업을 수행하는 백업지원 서버에 있어서,
    단말 장치에 퍼블릭 키가 저장되어 있으며, SE에 상기 퍼블릭 키와 프라이빗 키를 포함하는 키 페어가 저장된 상태에서, 사용자에 의한 상기 암호 화폐의 전자 지갑 백업 요청에 응답하여 상기 단말 장치의 전자 지갑 앱으로부터 상기 퍼블릭 키를 포함하는 프라이빗 키 백업 요청을 획득하기 위한 통신부; 및
    1) 상기 통신부를 통해 획득된 프라이빗 키 백업 요청이 획득되면, 상기 사용자의 개인정보로 난수 및 상기 사용자에 대응하는 개인식별값을 암호화한 제1 세션 키를 생성하도록 하고 상기 퍼블릭 키로 상기 난수 및 개인식별값을 암호화한 세션 데이터를 생성하며 상기 세션 데이터를 상기 단말 장치의 상기 전자 지갑 앱에게 전송하도록 지원하는 프로세스; 2) 상기 단말 장치의 상기 전자 지갑 앱으로 하여금 상기 SE에 설치된 전자 지갑 애플릿으로 상기 세션 데이터를 전달하도록 하고, 상기 전자 지갑 애플릿으로 하여금 상기 SE에 저장된 상기 퍼블릭 키를 이용하여 상기 세션 데이터를 복호화하여 상기 난수 및 개인식별값을 획득하도록 하며, 상기 전자 지갑 애플릿으로 하여금 세션 데이터로부터 획득된 상기 난수 및 개인식별값을 상기 사용자의 개인정보를 이용하여 암호화한 제2 세션 키를 생성하도록 하고 상기 제2 세션 키를 이용하여 상기 프라이빗 키를 암호화하도록 하며, 암호화된 프라이빗 키를 상기 전자 지갑 앱으로 전달하도록 지원하는 프로세스; 및 3) 상기 전자 지갑 앱으로 상기 암호화된 프라이빗 키가 전달되면, 상기 단말 장치의 상기 전자 지갑 앱으로 하여금 상기 암호화된 프라이빗 키를 상기 백업지원 서버로 전달하도록 하고, 상기 백업지원 서버는, 상기 제1 세션 키를 이용하여 상기 암호화된 프라이빗 키를 복호화하여 상기 프라이빗 키를 획득하며, 개별 관리키를 이용하여 상기 프라이빗 키와 상기 퍼블릭 키를 암호화한 암호화 키를 생성하며, 상기 생성된 암호화 키를 상기 개인식별값과 매칭하여 관리하도록 지원하는 프로세스를 수행하는 프로세서;
    를 포함하고,
    상기 통신부는, 상기 사용자에 의한 상기 암호 화폐의 전자 지갑 복구 요청에 응답하여, 상기 단말 장치의 상기 전자 지갑 앱으로부터 상기 사용자의 프라이빗 키 복구 요청을 획득하고,
    상기 프로세서는, 4) 상기 프라이빗 키 복구 요청이 획득되면, 상기 상기 개인식별값과 매칭되는 상기 암호화 키를 획득하며, 상기 개별 관리키를 이용하여 상기 암호화 키를 복호화하여 상기 퍼블릭 키 및 상기 프라이빗 키를 획득하고, 상기 사용자의 개인정보로 난수 및 개인식별값을 암호화한 상기 제1 세션 키를 생성하며, 상기 제1 세션 키로 상기 프라이빗 키를 암호화하고, 상기 암호화된 프라이빗 키, 상기 난수 및 상기 개인식별값을 상기 전자 지갑 앱으로 전송하도록 지원하는 프로세스; 및 5) 상기 단말 장치의 상기 전자 지갑 앱으로 하여금 상기 전자 지갑 애플릿으로 상기 암호화된 프라이빗 키, 상기 난수 및 상기 개인식별값을 전달하게 하고, 상기 전자 지갑 애플릿으로 하여금 상기 난수 및 개인식별값을 상기 사용자의 개인정보를 이용하여 암호화한 상기 제2 세션 키를 생성하도록 하고 상기 제2 세션 키를 이용하여 상기 암호화된 프라이빗 키를 복호화하여 상기 프라이빗 키를 획득하도록 하고, 획득된 상기 프라이빗 키를 상기 SE에 저장하도록 지원하는 프로세스를 더 수행하는 것을 특징으로 하는 백업지원 서버.
  28. 삭제
KR1020170138690A 2017-10-24 2017-10-24 암호 화폐의 전자 지갑 생성 및 백업 방법 및 이를 이용한 단말 장치와 서버 KR101976027B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170138690A KR101976027B1 (ko) 2017-10-24 2017-10-24 암호 화폐의 전자 지갑 생성 및 백업 방법 및 이를 이용한 단말 장치와 서버

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170138690A KR101976027B1 (ko) 2017-10-24 2017-10-24 암호 화폐의 전자 지갑 생성 및 백업 방법 및 이를 이용한 단말 장치와 서버

Publications (2)

Publication Number Publication Date
KR20190045753A KR20190045753A (ko) 2019-05-03
KR101976027B1 true KR101976027B1 (ko) 2019-05-08

Family

ID=66580071

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170138690A KR101976027B1 (ko) 2017-10-24 2017-10-24 암호 화폐의 전자 지갑 생성 및 백업 방법 및 이를 이용한 단말 장치와 서버

Country Status (1)

Country Link
KR (1) KR101976027B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110111103A (zh) * 2019-05-13 2019-08-09 江苏恒宝智能系统技术有限公司 一种数字货币钱包的密码重置方法和系统
KR102044748B1 (ko) * 2019-07-30 2019-11-15 주식회사 바스랩 개인정보 보관 및 인증정보 관리가 가능한 블록체인 전자지갑 제공 시스템

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102279342B1 (ko) * 2019-05-10 2021-07-20 주식회사 피노텍 암호화폐를 활용한 금융서비스 제공시스템 및 방법
CN110648447B (zh) * 2019-08-08 2021-08-06 杭州复杂美科技有限公司 一种游戏随机数生成方法、应用及装置、设备和存储介质
KR102561331B1 (ko) * 2020-06-18 2023-07-31 주식회사 디에스알브이랩스 복구 트랜잭션을 이용한 개인키 복구 시스템 및 방법
US20230188340A1 (en) * 2021-12-15 2023-06-15 Capital One Services, Llc Key recovery based on contactless card authentication

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101024272B1 (ko) * 2009-04-29 2011-03-29 주식회사 케이티 전자 지갑 시스템 및 그 장치
KR101436872B1 (ko) * 2012-11-29 2014-09-02 에스케이씨앤씨 주식회사 보안 요소 정보 관리 방법 및 시스템
KR101711023B1 (ko) * 2013-08-05 2017-02-28 한국전자통신연구원 보안장치 및 이를 이용하는 데이터 이동 방법
KR20160024185A (ko) * 2014-08-25 2016-03-04 아이보 (주) SE(Secure element)를 이용한 암호화폐 관리 시스템 및 그 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110111103A (zh) * 2019-05-13 2019-08-09 江苏恒宝智能系统技术有限公司 一种数字货币钱包的密码重置方法和系统
KR102044748B1 (ko) * 2019-07-30 2019-11-15 주식회사 바스랩 개인정보 보관 및 인증정보 관리가 가능한 블록체인 전자지갑 제공 시스템

Also Published As

Publication number Publication date
KR20190045753A (ko) 2019-05-03

Similar Documents

Publication Publication Date Title
KR101976027B1 (ko) 암호 화폐의 전자 지갑 생성 및 백업 방법 및 이를 이용한 단말 장치와 서버
JP6724249B2 (ja) 情報保護用のシステム及び方法
US11856104B2 (en) Methods for secure credential provisioning
KR102139897B1 (ko) 정보 보호를 위한 시스템 및 방법
AU2021203184B2 (en) Transaction messaging
JP6841911B2 (ja) 情報保護用のシステム及び方法
CN110692214B (zh) 用于使用区块链的所有权验证的方法和系统
JP6714156B2 (ja) 情報保護のためのシステム及び方法
KR101999188B1 (ko) 비밀 공유를 위한 타원 곡선 암호를 사용하는 개인용 장치 보안
US11374754B2 (en) System and method for generating trust tokens
CN107925572B (zh) 软件应用程序到通信装置的安全绑定
RU2710897C2 (ru) Способы безопасного генерирования криптограмм
JP5956615B2 (ja) 分散電子振込みシステム
CN111492390A (zh) 用于数字货币的现金等价设备
US10402823B1 (en) System for exchanging private keys for mutual settlements between users of a cryptocurrency outside blockchains
CN110599342B (zh) 基于区块链的身份信息的授权方法及装置
CN109474420A (zh) 一种私钥备份方法和相关设备
KR101702748B1 (ko) 이중 암호화를 이용한 사용자 인증 방법과 시스템 및 기록매체
CN110999254B (zh) 安全地执行加密操作
KR102320667B1 (ko) 사용자 정보의 관리 방법 및 단말

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant