KR20200001178A - 암호화폐지갑의 연상기호 코드 적용 방법 - Google Patents

암호화폐지갑의 연상기호 코드 적용 방법 Download PDF

Info

Publication number
KR20200001178A
KR20200001178A KR1020180073797A KR20180073797A KR20200001178A KR 20200001178 A KR20200001178 A KR 20200001178A KR 1020180073797 A KR1020180073797 A KR 1020180073797A KR 20180073797 A KR20180073797 A KR 20180073797A KR 20200001178 A KR20200001178 A KR 20200001178A
Authority
KR
South Korea
Prior art keywords
index list
wallet
order
mnemonic code
changing
Prior art date
Application number
KR1020180073797A
Other languages
English (en)
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 KR1020180073797A priority Critical patent/KR20200001178A/ko
Publication of KR20200001178A publication Critical patent/KR20200001178A/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/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/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/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/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

본 발명은 암호화폐지갑의 연상기호 코드 적용 방법에 관한 것이다.
본 발명의 일실시예에 따른 암호화폐지갑의 연상기호 코드 적용 방법은 지갑 어플리케이션(Wallet APP)에서 사용자로부터 연상기호 코드 워드(Mnemonic code word)의 순서변경정보를 입력받는 순서변경정보입력단계; 상기 지갑 어플리케이션이 암호화폐지갑인 스마트 카드가 SEED를 생성하도록 요청하는 키생성요청단계; 정해진 규칙에 따라 연상기호 코드 워드에 대한 인덱스 리스트(Index list)를 생성하는 인덱스리스트생성단계; 순서변경정보에 따라 인덱스 리스트의 순서를 변경하는 카드순서변경단계; 암호화된 인덱스 리스트를 API서버에 전달하는 암호화된인덱스리스트전달단계; API서버가 인증서버로부터 복호화된 인덱스 리스트를 수신하여 보안이미지로 변경하여 지갑 어플리케이션에 전달하는 보안이미지전송단계; 지갑 어플리케이션에서 입력받은 순서변경정보에 따라 각 보안이미지의 순서를 변경하는 지갑순서변경단계; 및 암호화폐지갑에서 생성한 인덱스 리스트(Index list)를 이용하여 최종적으로 SEED를 생성하는 키생성종료단계;를 포함하는 것을 특징으로 한다.

Description

암호화폐지갑의 연상기호 코드 적용 방법 {Digital wallet operation method for applying Mnemonic code}
본 발명은 암호화폐지갑의 연상기호 코드 적용 방법에 관한 것으로, 더욱 상세하게는 보안이미지를 이용한 디스플레이가 없는 암호화폐지갑의 BIP39(Mnemonic code for generating deterministic keys) 적용 방법 및 그 제어방법에 대한 컴퓨터 프로그램 소스를 저장한 기록 매체에 관한 것이다.
비트코인(bitcoin)은 블록체인 기술을 기반으로 만들어진 온라인 암호화폐이다. 비트코인의 화폐 단위는 BTC로 표시한다. 2008년 10월 사토시 나카모토라는 가명을 쓰는 프로그래머가 개발하여, 2009년 1월 프로그램 소스를 배포했다. 중앙은행이 없이 전 세계적 범위에서 P2P 방식으로 개인들 간에 자유롭게 송금 등의 금융거래를 할 수 있게 설계되어 있다. 거래장부는 블록체인 기술을 바탕으로 전 세계적인 범위에서 여러 사용자들의 서버에 분산하여 저장하기 때문에 해킹이 사실상 불가능하다. SHA-256 기반의 암호 해시 함수를 사용한다. SHA(Secure Hash Algorithm, 안전한 해시 알고리즘) 함수들은 서로 관련된 암호학적 해시 함수들의 모음이다. 이들 함수는 미국 국가안보국(NSA)이 1993년에 처음으로 설계했으며 미국 국가 표준으로 지정되었다. SHA 함수군에 속하는 최초의 함수는 공식적으로 SHA라고 불리지만, 나중에 설계된 함수들과 구별하기 위하여 SHA-0이라고도 불린다. 2년 후 SHA-0의 변형인 SHA-1이 발표되었으며, 그 후에 4종류의 변형, 즉 SHA-224, SHA-256, SHA-384, SHA-512가 더 발표되었다. 이들을 통칭해서 SHA-2라고 하기도 한다.
2009년 비트코인의 소스 코드가 공개되었고, 이더리움, 이더리움 클래식, 리플, 라이트코인, 에이코인, 대시, 모네로, 제트캐시, 퀀텀 등 다양한 알트코인들이 생겨났다. 비트코인은 여러 알트코인들 사이에서 일종의 기축통화 역할을 하고 있다. 비트코인은 2009년 사토시 나카모토가 만든 가상화폐로, 통화를 발행하고 관리하는 중앙 장치가 존재하지 않는 구조를 가지고 있다. 대신, 비트코인의 거래는 P2P 기반 분산 데이터베이스에 의해 이루어지며, 공개 키 암호 방식 기반으로 거래를 수행한다. 비트코인은 공개성을 가지고 있다. 비트코인은 지갑 파일의 형태로 저장되며, 이 지갑에는 각각의 고유 주소가 부여되며, 그 주소를 기반으로 비트코인의 거래가 이루어진다.
비트코인은 공개 키 암호 방식을 이용해 공개된 계정간에 거래를 한다. 모든 거래는 비공개적이나 거래의 기록은 남으며, 분산 데이터베이스에 저장된다. 분산된 시간서버로 일련의 작업증명(proof-of-work)을 하여 중복지출(double-spending)을 방지한다. 거래 기록은 모두 데이터베이스에 저장되어야 한다. 저장소 크기를 줄이기 위해 머클 트리(Merkle tree)가 사용된다.
블록체인의 키를 관리하는 지갑 (Wallet)은 비트코인을 보내거나 수신할 수 있는 소프트웨어로서, 개인키 저장 및 블록체인 검증 기능을 수행하며, '인터넷 연결 여부'에 따라 인터넷에 연결되어 있는 Hot wallet과 오프라인 상태의 Cold wallet으로 구분한다.
지갑 (Wallet)은 개인키(Private key), 공개키(Public key), 비트코인 주소를 담는 곳이다. 개인키는 상대방에게 코인을 보낼 때 거래정보를 암호화하며, 공개키는 상대방의 공개키로 전달받은 비트코인을 검증 및 수신한다. 비트코인 주소는 비트코인을 받거나, 보내기 위해 사용되는 주소이다. 지갑 (Wallet)은 비트코인과 같은 화폐가 저장되는 곳이 아니고 키가 저장되는 곳이다. 실제 비트코인은 UTXO(Unspent Transaction Output)의 형태로 블록체인상에 여러 사용자에게 모두 공유되어 저장이 되어있고, 자신의 비트코인을 사용하고자 할 때 키를 사용하여 자신소유임을 증명하여 사용하게 되는 것입니다. 이와 같이 지갑은 실제 비트코인을 저장하는 것이 아니고, 자신 소유임을 증명하기 위한 개인키와 공개키를 저장하는 곳이다.
지갑은 키 생성방법에 따라 비결정적 지갑, 결정적 지갑, 또는 계층 결정적 지갑으로 나누어진다.
도 1은 비결정적 지갑의 개념도를 도시한 것이다. 도 1에서 보듯이, 비결정적 지갑(Non-deterministic wallet)은 말그대로 무작위로 선택된 Private 키가 저장되어있는 지갑이다. 즉, 여러 개의 키 사이에 규칙이나 연속성이 없이 무작위로 생성이 되는 것이다. 예를 들어 지갑이 생성될 때 100개의 개인키를 무작위로 생성하여 사용하고 이후 모든 키가 사용된 후에 다시 무작위로 새로운 키를 생성하는 것이다. 이렇게 동작되는 경우 지갑의 모든 키를 백업하지 못한 경우에 지갑이 손실되면 복구를 할 수가 없는 문제가 발생할 수 있다. 즉 지갑의 손실을 방지하기 위해서는 주기적으로 지갑의 모든 키를 백업해야 한다.
도 2는 결정적 지갑의 개념도를 도시한 것이다. 도 2에서 보듯이, 결정적 지갑(Deterministic wallet)은 비결정적 지갑의 단점을 보완하기 위해 랜덤하게 발생된 공통 시드(Common Seed)에서 단방향 Hash 함수를 통해서 개인키를 연속적으로 생성한다. Hash 함수는 입력값이 같은 경우 동일한 출력값을 생성하기 때문에 Common Seed만 알고 있다면 연속된 모든 개인키를 복원할 수 있습니다. Common Seed를 생성하기 위해 연상기호 코드 워드(Mnemonic Code Words)가 사용된다. 연상기호코드란 Common seed를 생성하기 위해 사용되는 영어 단어열이다. 예를 들어, "apple house soccer tree cake gun..." 등의 임의의 단어열이다. 이러한 단어를 PBKDF2 함수를 사용하여 512비트의 Common Seed를 생성하는 것입니다.
도 3은 엔트로피를 이용하여 연상기호 단어를 생성하는 과정의 개념도를 도시한 것이다. 도 3에서 보듯이, 연상기호 단어를 생성하는 과정은 다음과 같다.
1. 128~256 비트의 random 값(엔트로피) A 생성
2. SHA256(A) 값의 첫 몇 비트를 check sum으로 생성
3. check sum을 A 값의 끝부분에 추가
4. A를 11비트로 나누어 24개의 인덱스를 생성하고, 미리 정해진 2048개의 단어로 구성된 배열의 인덱스로 사용하여 연상기호 코드를 표현하는 단어열 생성
도 3에서 보듯이, Checksum이 포함된 Random 값을 11비트로 나누어 각각의 인덱스를 생성해내고, 2048개의 단어가 포함된 배열에서 해당 인덱스에 해당하는 단어를 가져와 단어열을 생성한다. 연상기호 코드의 엔트로피와 단어길이는 다음의 <표 1>과 같이 정의되어 있습니다. 예를 들어 Random 값이 256비트인 경우 체크섬은 해쉬값의 상위 8비트를 가져오며, random값에 8비트를 추가한 264비트를 11로 나누게 되어 단어길이는 24가 됩니다.
엔트로피별 단어 길이
엔트로피(비트) 체크섬(비트) 엔트로피+체크섬 단어 길이
128 4 132 12
160 5 165 15
192 6 198 18
224 7 231 21
256 8 264 24
연상기호 코드는 BIP39에 정의되어 있습니다.
( https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki )
도 4는 계층 결정적 지갑 개념도를 도시한 것이다. 도 4에서 보듯이, 계층 결정적 지갑(Hierarchical Deterministic wallet)은 HD 지갑이라고도 불리며, BIP32에서 규정하고 있다. 계층 결정적 지갑은 트리 구조에서 생성된 키를 담고 있으며, 부모키가 자식키열을 만들어낼 수 있고, 각각의 자식키가 손자키열을 만들어낼 수 있다. HD 지갑은 128,256,512비트 크기의 Root seed로부터 만들어지며, HMAC-SHA512 알고리즘을 통해 마스터 개인키와 마스터 체인코드를 생성한다. Root seed를 생성하는 과정에는 결정적 지갑에서 설명되고 있는 연상기호 코드 워드가 사용된다. 이와 같이 HD 지갑은 계층적으로 키를 생성하여 매 거래마다 새로운 주소를 생성하여 거래에 사용할 수 있도록 하여 익명성을 보장한다.
이하에서는 개인키, 공개키와 지갑 주소에 대해 설명한다. 블록체인상에서의 모든 거래는 블록체인에 포함되기 위해서 유효한 서명이 있어야 하고 이러한 서명은 유효한 디지털 키가 있어야 합니다. 키는 개인키(Private key), 공개키(Public key) 쌍으로 구성되는데, 공개키는 은행의 계좌번호에 해당하고, 개인키는 계좌의 비밀번호(PIN 번호)에 해당된다. 블록체인의 지갑에는 이와 같이 개인키/공개키의 쌍이 저장되며, 여러 개가 동시에 저장이 될 수 있다. 지갑주소는 공개키를 사용하여 생성이 되며, 생성순서를 살펴보면, 개인키를 ECM(타원곡선 곱셈함수)에 입력하면 공개키가 생성되어 출력되고, 공개키를 해시 함수에 입력하면 비트코인 주소가 생성되어 출력된다. 역으로는 동작하지 않는다. 즉, Private키를 사용하여 타원곡선 곱셈함수를 통해 Public 키를 생성하고, Public 키를 Hash 함수를 통해 bitcoin 주소를 생성한다. 각각의 변환은 단방향으로 각각 역방향으로의 디코딩이 불가능하다. 즉, Bitcoin 주소를 통해 Public 키를 추출하는 것이 불가능하고, Public 키를 통해 Private 키를 추출하는 것이 불가능하다.
개인키(Private key)는 무작위로 추출한 단순한 숫자로 구성되어 있다. Private 키로 사용할 256비트의 난수는 프로그래밍 언어가 제공하는 단순한 난수 생성기를 사용하지 않고, 암호학적으로 안전한 의사난수생성기를 사용하여 생성된다. 절대 중복되지 않음을 보장해야 하며, 비트코인에서 키를 생성하는 작업은 1에서 2^256 사이의 숫자를 선택하는 것과 동일하다. 따라서 Private 키는 256비트 길이의 숫자로 생성되며, 다음과 같이 64개의 16진수로 표현된다.
Private key : 1E99423A4ED27608A15A2616A2B0E9E52CED330AC530EDCC32C8FFC6A526AEDD
Private 키는 Hex로 표현하는 것 외에 WIF 또는 WIF-압축형의 3가지의 포맷으로 나누어지고, 3개 포맷은 서로 쉽게 변환이 가능하다.
공개키(Publick key)는 타원곡선 곱셈함수를 통해 Private 키로부터 계산된다.
K = 04F028892BAD7ED57D2FB57BF33081D5CFCF6F9ED3D3D7F159C2E2FFF579DC341A 07CF33DA18BD734C600B96A72BBC4749D5141C90EC8AC328AE52DDFE2E505BDB
접두부 04로 시작하며, 위의 포맷으로 구성될 경우 하나의 Public 키는 520비트의 공간이 사용되는데, 대부분의 거래에는 비트코인 소유주의 자격을 검증하고 비트코인을 소비하는데 필요한 공개키가 포함된다.
비트코인 주소(Address) 생성과 관련하여, 하나의 Private 키를 통해서 압축 Public 키는 2개가 만들어질 수 있으며, 각각의 Public 키를 통해서 2개의 비트코인 주소가 만들어질 수 있습니다. 즉 하나의 Private 키를 통해 2개의 비트코인 주소가 만들어질 수 있지만, 각각의 주소는 동일한 Private 키에 대응된다고 볼 수 있다. 공개키로부터 비트코인 주소를 만드는데 사용하는 알고리즘은 보안해시 알고리즘(SHA)과 RACE Integrity Primitives Evaluation Message Digest(RIPEMD) 이다.
비트코인에서는 Public 키를 사용하여 SHA256 해시를 구하고, 그 결과값의 RIPEMD160 해시값을 산출한다. 이렇게 구한 160비트의 해시값은 Base58Check 인코딩을 통하여 사용자들에게 제공된다.
Base58Check 인코딩은 58개의 문자(123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz)와 Checksum을 이용하여 사람이 읽을 수 있는 문자로 바꾸어 혼란을 방지하고, 거래의 표기나 항목에 대한 에러가 발생하지 않도록 한다.
이렇게 구한 값이 다음과 같이 숫자 '1'로 시작되는 비트코인의 지갑주소이다.
1thMirt546nngXqyPEz532S8fLwbozud8
비트코인의 암호화폐 지갑은 구현방식에 따라 소프트웨어 지갑과 하드웨어 지갑으로 구분될 수 있는데, 해킹의 위협 측면에서는 하드웨어 지갑이 안전하다. 그러나, 최근에 가장 인기있는 비트코인 하드웨어 지갑 중에 하나인 트레저(Trezor)가 해커에 의해 해킹되므로 해서 디지털 지갑의 안전성과 안전한 저장 장치로서의 하드웨어 지갑의 확실한 평판에 의문의 여지가 생겼다. 트레저 장치는 해당 장치에서 개인 키를 도난 당하거나 식별할 수 있는 상당히 간단한 해킹에 취약한 것으로 추정되고 있다. 트레저에 따르면 개인 키의 시드가 플래시 메모리에 저장되었고 사용 중에 장치의 랜덤 액세스 메모리(RAM)로 재배치되며, 이에 따라 장치와 펌웨어에 액세스 할 수 있는 사람은 RAM에서 시드를 추출할 수 있었다고 한다.
최근 USB, 카드 형태의 하드웨어 지갑들이 등장하고 있으며, 시드를 USB 메모리나 카드에 저장하고 있으나, 시드가 내장된 카드나 메모리를 분실할 수 있는 등 시드를 다시 복원해야 하는 문제가 있다. 따라서 시드를 안전하게 복원하기 위한 방법이 필요하다.
도 5는 연상기호코드를 이용한 키 복구과정을 도시한 것이다. 도 5에서 보듯이, 도 3의 엔트로피를 이용하여 연상기호 단어를 생성하는 과정을 통해 생성된 연상기호 코드 워드(Mnemonic Code Words)를 이용하여 시드를 복구하기 위하여, 연상기호 코드 워드를 PBKDF2 함수(Password-Based Key Derivation Function 2)에 입력하면, 그 출력으로 512비트의 Common Seed가 생성된다. 그 외에 입력으로 HMAC-SHA512의 출력인 PRF(난수), 카운트, 출력길이 정보 등이 사용된다.
상기 연상기호 코드 워드의 경우 사용자가 임의로 지정한 단어들을 사용할 수도 있고, 사전에서 랜덤하게 단어들을 선택할 수도 있다. 사용자가 임의로 문장이나 연상기호 코드 워드를 지정하면 Brain wallet 방식이 되고, 랜덤하게 선택하면 Mnemonic Code wallet 방식이 된다. 일반적으로 사용자가 지정하는 방식보다는 사전에서 랜덤하게 선택하는 방법이 훨씬 안전한 것으로 알려져 있다. BIP-39는 단어들을 랜덤하게, 안전하게 선택하는 방법을 제안하고 있다. HD wallet의 Seed 값을 연상기호 코드 워드로 생성하면 효과가 극대화된다(BIP-39 + BIP-32). 최근 대부분의 지갑 어플리케이션들은 BIP-39와 BIP-32를 지원하고, Seed 값의 백업, 복원기능을 지원하고 있다.
연상기호 코드 워드를 이용하여 Common Seed를 복원하는 경우에 인증서버로부터 인증을 받아야 한다. 이 경우에, 연상기호 코드 워드가 인증 서버로 송수신되는 과정에 해킹의 위협에 노출이 되는 문제가 있다.
공개특허공보 제10-2016-0050876호 "스마트 카드에 저장된 공개키와 개인키를 이용한 비트코인 거래방법"
본 발명은 상기한 문제점을 해결하기 위해 안출된 것으로서, 보안이미지를 이용한 디스플레이가 없는 암호화폐지갑의 BIP39(Mnemonic code for generating deterministic keys) 적용 방법 및 그 제어방법에 대한 컴퓨터 프로그램 소스를 저장한 기록 매체를 제공하는 것을 그 목적으로 한다.
그러나 본 발명의 목적은 상기에 언급된 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일실시예에 따른 암호화폐지갑의 연상기호 코드 적용 방법은 지갑 어플리케이션(Wallet APP)에서 사용자로부터 연상기호 코드 워드(Mnemonic code word)의 순서변경정보를 입력받는 순서변경정보입력단계; 상기 지갑 어플리케이션이 암호화폐지갑인 스마트 카드가 SEED를 생성하도록 요청하는 키생성요청단계; 정해진 규칙에 따라 연상기호 코드 워드에 대한 인덱스 리스트(Index list)를 생성하는 인덱스리스트생성단계; 순서변경정보에 따라 인덱스 리스트의 순서를 변경하는 카드순서변경단계; 암호화된 인덱스 리스트를 API서버에 전달하는 암호화된인덱스리스트전달단계; API서버가 인증서버로부터 복호화된 인덱스 리스트를 수신하여 보안이미지로 변경하여 지갑 어플리케이션에 전달하는 보안이미지전송단계; 지갑 어플리케이션에서 입력받은 순서변경정보에 따라 각 보안이미지의 순서를 변경하는 지갑순서변경단계; 및 암호화폐지갑인 스마트 카드에서 생성한 인덱스 리스트(Index list)를 이용하여 최종적으로 SEED를 생성하는 키생성종료단계;를 포함하는 것을 특징으로 한다.
바람직하게는, 상기 카드순서변경단계는 순서변경정보를 SHA256 Hash 함수의 입력으로 사용하고, SHA256 Hash 함수는 32바이트의 Hash 값을 출력하는 해시값생성과정; Hash 값의 각 바이트 값을 양의 정수로 변경하고, 상기 정수를 24로 나눈 나머지를 구하고, 상기 나머지가 32개의 순서값이 되는 순서값생성과정; 및 상기 32개의 순서값 중 앞에서부터 2개씩 쌍으로 인덱스 리스트의 순서를 변경하는 인덱스리스트 순서변경과정;을 포함하는 것을 특징으로 한다.
바람직하게는, 상기 지갑순서변경단계는 순서변경정보를 SHA256 Hash 함수의 입력으로 사용하고, SHA256 Hash 함수는 32바이트의 Hash 값을 출력하는 해시값생성과정; Hash 값의 각 바이트 값을 양의 정수로 변경하고, 상기 정수를 24로 나눈 나머지를 구하고, 상기 나머지가 32개의 순서값이 되는 순서값생성과정; 및 상기 32개의 순서값 중 뒤에서부터 2개씩 쌍으로 인덱스 리스트의 보안이미지의 순서를 변경하는 보안이미지 순서변경과정;을 포함하는 것을 특징으로 한다.
바람직하게는, 사용자가 추후 키 복구를 위해 별도의 저장장치에 24개의 워드를 저장하며, 24개의 워드 각각에 대해 보안키보드를 통해 직접 입력하게 하고, 이미지의 워드와 일치하는지 검증하는 워드저장단계를 더 포함하는 것을 특징으로 한다.
바람직하게는, 상기 워드저장단계에서 저장하는 24개의 연상기호 코드 워드들은 암호화폐지갑인 스마트카드가 생성한 인덱스 리스트상의 24개의 연상기호 코드 워드들과 동일하며, 상기 API서버에 전송된 인덱스 리스트상의 24개의 연상기호 코드 워드와는 다른 것을 특징으로 한다.
바람직하게는, 상기 암호화된 인덱스 리스트는 암호화폐지갑인 스마트카드 발급 시 생성된 OP_KEY로 암호화된 인덱스 리스트인 것을 특징으로 한다.
바람직하게는, 상기 복호화된 인덱스 리스트는 인증서버에서 API서버로부터 수신한 암호화된 인덱스 리스트를 복호화한 것을 특징으로 한다.
본 발명의 다른 일실시예에 따른 컴퓨터로 판독 가능한 기록매체는 상기 암호화폐지갑의 연상기호 코드 적용 방법을 실행하는 프로그램을 기록한 것을 특징으로 한다.
이상에서 설명한 바와 같이, 본 발명의 일 실시예에 따른 보안이미지를 이용한 디스플레이가 없는 암호화폐지갑의 BIP39(Mnemonic code for generating deterministic keys) 적용 방법은 보다 안전하게 키를 복구할 수 있다.
도 1은 비결정적 지갑의 개념도를 도시한 것이다.
도 2는 결정적 지갑의 개념도를 도시한 것이다.
도 3은 엔트로피를 이용하여 연상기호 단어를 생성하는 과정의 개념도를 도시한 것이다.
도 4는 계층 결정적 지갑 개념도를 도시한 것이다.
도 5는 연상기호코드를 이용한 키 복구과정을 도시한 것이다.
도 6은 본 발명의 일 실시예에 따른 암호화폐지갑의 연상기호 코드 적용을 위한 SEED 등록 방법을 도시한 것이다.
도 7은 스마트카드, API 서버, 지갑 어플리케이션에 저장되는 연상기호 코드 워드들 간의 관계를 도시한 것이다.
도 8은 스마트카드, 및 지갑 어플리케이션에서 순서 변경을 위한 해시 값을 생성하는 방법을 도시한 것이다.
도 9는 스마트카드에서 인덱스 리스트의 순서 변경을 수행하는 방법을 도시한 것이다.
도 10은 지갑 어플리케이션에서 인덱스 리스트의 순서 변경을 수행하는 방법을 도시한 것이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성된다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
도 6은 본 발명의 일 실시예에 따른 암호화폐지갑의 연상기호 코드 적용을 위한 SEED 등록 방법을 도시한 것이다. 도 6에서 보듯이, SEED 등록 방법을 지원하는 키관리시스템(1000)에는 스마트 카드(100), 지갑애플리케이션(200), API서버(300) 및 인증서버(400)를 포함하여 구성된다.
스마트 카드(100)는 암호화폐 지갑으로써 스마트폰에 내장된 근거리무선통신(NFC)을 활용한 암호화폐 전자지갑이다. 스마트 카드(100)는 인터넷에 연결되지 않은 콜드월렛 방식으로, 스마트폰의 전용 지갑 애플리케이션과 연동해 작동한다. 일반적인 신용카드와 동일한 형태로 배터리를 사용하지 않고 내구성이 검증된 신용카드형태이며, 디스플레이가 없다. 스마트 카드(100)는 비트코인, 이더리움, 비트코인캐시, 라이트코인 등을 지원 가능하다.
본 발명의 일 실시예에 따른 암호화폐지갑의 연상기호 코드 적용을 위한SEED 등록 방법은 다음과 같이 수행된다.
먼저, 순서변경정보입력단계(S1)에서는, 스마트폰이나 컴퓨터에 설치되는 지갑 어플리케이션(Wallet APP)(200)에서 사용자로부터 연상기호 코드 워드(Mnemonic code word)의 순서변경정보를 입력받는다.
키생성요청단계(S2)에서는 지갑 어플리케이션(200)이 순서변경정보를 포함하는 GenerateMnemonic 명령을 암호화폐 지갑인 스마트 카드(100)에게 송신하여 스마트 카드(100)가 SEED를 생성하도록 요청한다.
인덱스리스트생성단계(S3)에서는 스마트카드(100)에서 정해진 규칙에 따라 24개의 연상기호 코드 워드에 대한 인덱스 리스트(Index list)를 생성한다. 정해진 규칙은 랜덤일 수도 있으며, 스마트카드(100) 내에 적용된 프로그램에 따라 달라질 수 있다.
카드순서변경단계(S4)에서는 스마트카드(100)에서 수신한 순서변경정보에 따라 Index list 내의 각 Index list의 순서를 변경한다.
인덱스리스트암호화단계(S5)에서는 Card 발급 시 생성된 OP_KEY로 Index list를 암호화한다.
암호화된인덱스리스트송신단계(S6)에서는 암호화된 Index list를 응답으로 지갑 어플리케이션(200)에게 전달한다.
암호화된인덱스리스트전달단계(S7)에서는 지갑 어플리케이션(200)에서 암호화된 Index list를 수신하여 API Server(300)에게 전달한다.
인덱스리스트복호화요청단계(S8)에서는 API Server(300)가 인증서버(400)에게 암호화된 Index list의 복호화를 요청한다.
복호화된인덱스리스트전달단계(S9)에서는 인증서버(400)에서 암호화된 Index list의 복호화를 수행하고 복호화된 Index list를 응답으로 API Server(300)로 전달한다.
보안이미지변환단계(S10)에서는 API Server(300)가 수신한 복호화된 Index list 24개 각 Index에 해당하는 워드(word)를 찾아 보안이미지로 변경한다. 보안이미지(CAPTCHA)는 텍스트를 이미지화하여 어떠한 사용자가 실제 사람인지 컴퓨터 프로그램인지를 구별하기 위해 사용되는 방법이다.
보안이미지전송단계(S11)에서는 API Server(300)가 보안이미지를 지갑 어플리케이션(Wallet APP)(200)에게 전달한다.
지갑순서변경단계(S12)에서는 순서변경정보입력단계(S1)에서 입력받은 순서변경정보에 따라 각 보안이미지의 순서를 변경한다.
워드저장단계(S13)에서는 사용자는 추후 키 복구를 위해 별도의 저장장치에 24개의 워드를 저장한다. 보안이미지의 특성 상 사용자가 제대로 저장했는지 확인하기 위해 24개의 워드 각각에 대해 보안키보드를 통해 직접 입력하게 하고 이미지의 워드와 일치하는지 검증한다.
키생성종료요청단계(S14)에서는 지갑 어플리케이션(Wallet APP)(200)이 정상적으로 키 등록이 완료되었음을 알리는 CompleteGenerate 명령을 스마트 카드(100)로 전송한다.
키생성종료단계(S15)에서는 스마트 카드(100)는 인덱스리스트생성단계(S3)에서 생성한 인덱스 리스트(Index list)를 이용하여 최종적으로 SEED를 생성한다.
도 7은 스마트카드, API 서버, 지갑 어플리케이션에 저장되는 연상기호 코드 워드들 간의 관계를 도시한 것이다. 도 7에서 보듯이, 워드저장단계(S13)에서 키 복구를 위해 별도의 저장장치에 저장하는 24개의 워드(인덱스 리스트)(99)들은 인덱스리스트생성단계(S3)에서 스마트카드(100)가 생성한 인덱스 리스트(Index list)상의 24개의 워드들(91)과는 동일하여 동일한 연상기호 코드 워드를 스마트카드(100)와 지갑 어플리케이션(200)이 공유하고 있어서 다른 지갑과도 호환성을 유지할 수 있게 된다. 그러나 안전을 위하여 순서변경정보에 따라 인덱스 리스트가 변경되어 API서버(300)에 전송됨으로 인해 API서버(300)에 전송된 인덱스 리스트(95)와 스마트카드(100)와 지갑 어플리케이션(200)에서의 인덱스 리스트(91,99)는 서로 다르다.
도 8은 스마트카드, 및 지갑 어플리케이션에서 순서 변경을 위한 해시 값을 생성하는 방법을 도시한 것이다. 도 8에서 보듯이, 순서변경정보입력단계(S1)에서 지갑 어플리케이션(Wallet APP)(200)에서 사용자로부터 연상기호 코드 워드(Mnemonic code word)의 순서변경정보(가령, 159847)를 입력받으면, 그 값은 SHA256 Hash 함수의 입력으로 들어가고, SHA256 Hash 함수는 출력으로 32byte Hash 값을 제공한다.
Hash 함수는 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑해 주는 함수이다. 두 Hash 값이 다르다면 원래 데이터도 다르다는 특징을 갖는다. SHA256은 Hash 함수의 일종으로 임의의 길이의 데이터를 32바이트의 데이터로 매핑한다.
각 Hash 바이트 값에서 순서값으로의 변환 순서에 대해 이하에서 설명한다.
1. 바이트 값을 양의 정수로 변경한다.
2. 1에서 나온 정수를 24로 나눈 나머지를 구한다.
3. 2에서 나온 나머지가 순서값이 된다.
32개의 순서값 중 앞에서부터 2개씩 쌍(총 16개 쌍)으로 인덱스 리스트의 순서를 변경하게 된다. 32바이트 Hash이므로 32개의 순서 정보를 생성할 수 있지만 예제로 8개의 순서를 생성하고 이를 적용하면 다음과 같다. 도 8에서 보듯이, 32바이트 Hash의 값들 중 첫 번째와 두 번째 바이트 값에 의한 순서
0x91 => 145 % 24 = 1
0x27 => 39 % 24 = 15
1번과 15번의 순서를 바꾼다.
다음, 32바이트 Hash의 값들 중 세 번째와 네 번째 바이트 값에 의한 순서
0xB5 => 181 % 24 = 13
0x01 => 1 % 24 = 1
13번과 1번의 순서를 바꾼다.
다음, 32바이트 Hash의 값들 중 다섯번째와 여섯번째 바이트 값에 의한 순서
0x69 => 105 % 24 = 9
0xBB => 187 % 24 = 19
9번과 19번의 순서를 바꾼다.
다음, 32바이트 Hash의 값들 중 일곱번째와 여덟번째 바이트 값에 의한 순서
0x93 => 147 % 24 = 3
0x11 => 17 % 24 = 17
3번과 17번의 순서를 바꾼다.
도 9는 스마트카드에서 인덱스 리스트의 순서 변경을 수행하는 방법을 도시한 것이다. 도 9에서 보듯이, 인덱스리스트생성단계(S3)에서 스마트카드(100)에서 정해진 규칙에 따라 24개의 연상기호 코드 워드에 대한 인덱스 리스트(Index list)를 생성하고, 카드순서변경단계(S4)에서 스마트카드(100)에서 수신한 순서변경정보에 따라 Index list 내의 각 Index list의 순서를 변경한다.
먼저 생성된 인덱스 리스트(91)에서 1번의 Cycle과 15번의 command의 순서를 바꾼다. 바꾼 결과는 변경된 인덱스 리스트(92)가 된다. 변경된 인덱스 리스트(92)에서 13번의 user와 1번의 Command의 순서를 바꾼다. 바꾼 결과는 변경된 인덱스 리스트(93)가 된다.
변경된 인덱스 리스트(93)에서 9번의 develop과 19번의 soup의 순서를 바꾼다. 바꾼 결과는 변경된 인덱스 리스트(94)가 된다.
변경된 인덱스 리스트(94)에서 3번의 Assault와 17번의 include의 순서를 바꾼다. 바꾼 결과는 최종 변경된 인덱스 리스트(95)가 된다.
최종 변경된 인덱스 리스트(95)는 인덱스리스트암호화단계(S5)에서 Card 발급 시 생성된 OP_KEY로 암호화하게 된다.
도 10은 지갑 어플리케이션에서 인덱스 리스트의 순서 변경을 수행하는 방법을 도시한 것이다. 도 10에서 보듯이, 지갑순서변경단계(S12)에서 순서변경정보입력단계(S1)에서 입력받은 순서변경정보에 따라 각 보안이미지의 순서를 변경한다.
먼저 스마트카드에서 변경한 최종 순서의 인덱스 리스트(95)가 보안이미지로 해서 API 서버(300)로부터 지갑 어플리케이션(200)이 수신하면, 도 9와는 역순으로 인덱스 리스트의 순서 변경을 수행한다.
먼저, 인덱스 리스트(95)에서 3번의 include와 17번의 assault의 순서를 바꾼다. 바꾼 결과는 변경된 인덱스 리스트(96)가 된다.
변경된 인덱스 리스트(96)에서 9번의 soup과 19번의 develop의 순서를 바꾼다. 바꾼 결과는 변경된 인덱스 리스트(97)가 된다.
변경된 인덱스 리스트(97)에서 13번의 command와 1번의 user의 순서를 바꾼다. 바꾼 결과는 변경된 인덱스 리스트(98)가 된다.
변경된 인덱스 리스트(98)에서 1번의 command와 15번의 cycle의 순서를 바꾼다. 바꾼 결과는 최종 변경된 인덱스 리스트(99)가 된다.
최종 변경된 인덱스 리스트(99)는 인덱스리스트생성단계(S3)에서 스마트카드(100)에서 정해진 규칙에 따라 생성한 24개의 연상기호 코드 워드에 대한 인덱스 리스트(Index list)와 동일하게 된다. 워드저장단계(S13)에서 사용자는 추후 키 복구를 위해 별도의 저장장치에 최종 변경된 인덱스 리스트(99)의 24개의 워드를 저장한다. 보안이미지의 특성 상 사용자가 제대로 저장했는지 확인하기 위해 24개의 워드 각각에 대해 보안키보드를 통해 직접 입력하게 하고 이미지의 워드와 일치하는지 검증한다.
한편, 본 발명의 일실시예에 따른 암호화폐지갑의 연상기호 코드 적용 방법은 다양한 전자적으로 정보를 처리하는 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 저장 매체에 기록될 수 있다. 저장 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
저장 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 소프트웨어 분야 당업자에게 공지되어 사용 가능한 것일 수도 있다. 저장 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 전자적으로 정보를 처리하는 장치, 예를 들어, 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (8)

  1. 암호화폐지갑의 연상기호 코드 적용 방법에 있어서,
    지갑 어플리케이션(Wallet APP)에서 사용자로부터 연상기호 코드 워드(Mnemonic code word)의 순서변경정보를 입력받는 순서변경정보입력단계;
    상기 지갑 어플리케이션이 암호화폐지갑에게 SEED를 생성하도록 요청하는 키생성요청단계;
    정해진 규칙에 따라 연상기호 코드 워드에 대한 인덱스 리스트(Index list)를 생성하는 인덱스리스트생성단계;
    순서변경정보에 따라 인덱스 리스트의 순서를 변경하는 카드순서변경단계;
    암호화된 인덱스 리스트를 API서버에 전달하는 암호화된인덱스리스트전달단계;
    API서버가 인증서버로부터 복호화된 인덱스 리스트를 수신하여 보안이미지로 변경하여 지갑 어플리케이션에 전달하는 보안이미지전송단계;
    지갑 어플리케이션에서 입력받은 순서변경정보에 따라 각 보안이미지의 순서를 변경하는 지갑순서변경단계; 및
    암호화폐지갑에서 생성한 인덱스 리스트(Index list)를 이용하여 최종적으로 SEED를 생성하는 키생성종료단계;를 포함하는 것을 특징으로 하는 암호화폐지갑의 연상기호 코드 적용 방법.
  2. 제 1 항에 있어서, 상기 카드순서변경단계는
    순서변경정보를 SHA256 Hash 함수의 입력으로 사용하고, SHA256 Hash 함수는 32바이트의 Hash 값을 출력하는 해시값생성과정;
    Hash 값의 각 바이트 값을 양의 정수로 변경하고, 상기 정수를 24로 나눈 나머지를 구하고, 상기 나머지가 32개의 순서값이 되는 순서값생성과정; 및
    상기 32개의 순서값 중 앞에서부터 2개씩 쌍으로 인덱스 리스트의 순서를 변경하는 인덱스리스트 순서변경과정;을 포함하는 것을 특징으로 하는 암호화폐지갑의 연상기호 코드 적용 방법.
  3. 제 1 항에 있어서, 상기 지갑순서변경단계는
    순서변경정보를 SHA256 Hash 함수의 입력으로 사용하고, SHA256 Hash 함수는 32바이트의 Hash 값을 출력하는 해시값생성과정;
    Hash 값의 각 바이트 값을 양의 정수로 변경하고, 상기 정수를 24로 나눈 나머지를 구하고, 상기 나머지가 32개의 순서값이 되는 순서값생성과정; 및
    상기 32개의 순서값 중 뒤에서부터 2개씩 쌍으로 인덱스 리스트의 보안이미지의 순서를 변경하는 보안이미지 순서변경과정;을 포함하는 것을 특징으로 하는 암호화폐지갑의 연상기호 코드 적용 방법.
  4. 제 1 항에 있어서,
    사용자가 추후 키 복구를 위해 별도의 저장장치에 24개의 워드를 저장하며,
    24개의 워드 각각에 대해 보안키보드를 통해 직접 입력하게 하고, 이미지의 워드와 일치하는지 검증하는 워드저장단계를 더 포함하는 것을 특징으로 하는 암호화폐지갑의 연상기호 코드 적용 방법.
  5. 제 4 항에 있어서,
    상기 워드저장단계에서 저장하는 24개의 연상기호 코드 워드들은 암호화폐지갑이 생성한 인덱스 리스트상의 24개의 연상기호 코드 워드들과 동일하며, 상기 API서버에 전송된 인덱스 리스트상의 24개의 연상기호 코드 워드와는 다른 것을 특징으로 하는 암호화폐지갑의 연상기호 코드 적용 방법.
  6. 제 1 항에 있어서, 상기 암호화된 인덱스 리스트는
    암호화폐지갑 발급 시 생성된 OP_KEY로 암호화된 인덱스 리스트인 것을 특징으로 하는 암호화폐지갑의 연상기호 코드 적용 방법.
  7. 제 1 항에 있어서, 상기 복호화된 인덱스 리스트는
    인증서버에서 API서버로부터 수신한 암호화된 인덱스 리스트를 복호화한 것을 특징으로 하는 암호화폐지갑의 연상기호 코드 적용 방법.
  8. 제 1 항 내지 제 7 항 중 어느 한 항의 방법을 실행하는 프로그램을 기록한 것을 특징으로 하는 컴퓨터로 판독 가능한 기록매체.
KR1020180073797A 2018-06-27 2018-06-27 암호화폐지갑의 연상기호 코드 적용 방법 KR20200001178A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180073797A KR20200001178A (ko) 2018-06-27 2018-06-27 암호화폐지갑의 연상기호 코드 적용 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180073797A KR20200001178A (ko) 2018-06-27 2018-06-27 암호화폐지갑의 연상기호 코드 적용 방법

Publications (1)

Publication Number Publication Date
KR20200001178A true KR20200001178A (ko) 2020-01-06

Family

ID=69158971

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180073797A KR20200001178A (ko) 2018-06-27 2018-06-27 암호화폐지갑의 연상기호 코드 적용 방법

Country Status (1)

Country Link
KR (1) KR20200001178A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112073183A (zh) * 2020-08-07 2020-12-11 深圳区块大陆科技有限公司 一种区块链账户生成的方法
CN111507713B (zh) * 2020-04-09 2021-06-29 链博(成都)科技有限公司 一种基于区块链的资产与数据集成管理方法、系统及终端
WO2022177201A1 (ko) * 2021-02-22 2022-08-25 주식회사 블록체인기술연구소 키 백업 정보가 분산 저장된 개인키 관리 및 복구 시스템
WO2024151085A1 (ko) * 2023-01-11 2024-07-18 주식회사 그루핀 이중화된 니모닉 코드 기반 디지털 월렛 관리를 위한 전자 장치 및 이의 동작 방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111507713B (zh) * 2020-04-09 2021-06-29 链博(成都)科技有限公司 一种基于区块链的资产与数据集成管理方法、系统及终端
CN112073183A (zh) * 2020-08-07 2020-12-11 深圳区块大陆科技有限公司 一种区块链账户生成的方法
WO2022177201A1 (ko) * 2021-02-22 2022-08-25 주식회사 블록체인기술연구소 키 백업 정보가 분산 저장된 개인키 관리 및 복구 시스템
KR20220120059A (ko) * 2021-02-22 2022-08-30 주식회사 블록체인기술연구소 키 백업 정보가 분산 저장된 개인키 관리 및 복구 시스템
WO2024151085A1 (ko) * 2023-01-11 2024-07-18 주식회사 그루핀 이중화된 니모닉 코드 기반 디지털 월렛 관리를 위한 전자 장치 및 이의 동작 방법

Similar Documents

Publication Publication Date Title
US11818269B2 (en) Computer-implemented system and method providing a decentralised protocol for the recovery of cryptographic assets
US20230231840A1 (en) Encryption and decryption techniques using shuffle function
US20200344071A1 (en) Personal device security using cryptocurrency wallets
US20230092894A1 (en) Ledger token transfer outside of a distributed ledger network through cryptographic binding to a transferrable possession token
KR101974075B1 (ko) 분산 해시 테이블과 피어투피어 분산 원장을 사용하여 디지털 자산의 소유권을 검증하기 위한 방법 및 시스템
KR102322118B1 (ko) 월렛 앱이 설치된 소유 디바이스 및/또는 블록체인 노드에 키를 분산 저장하는 비밀 키 보안 방법
RU2719311C1 (ru) Система и способ защиты информации
KR20200001178A (ko) 암호화폐지갑의 연상기호 코드 적용 방법
US20200082388A1 (en) Authenticating server and method for transactions on blockchain
CN101999132A (zh) 在服务器凭证验证时生成一次性口令和签名的强认证令牌
CN111476573B (zh) 一种账户数据处理方法、装置、设备及存储介质
CN109670826B (zh) 基于非对称密钥池的抗量子计算区块链交易方法
JP2021507586A (ja) ブロックチェーン上でトランザクションに署名するためのデジタル鍵を格納するためのデバイス
US11251950B2 (en) Securely performing cryptographic operations
CN111242611A (zh) 一种用于恢复数字钱包密钥的方法及系统
KR102142955B1 (ko) 개인키 관리 방법
Vasilopoulos et al. Message-locked proofs of retrievability with secure deduplication
CN111480316B (zh) 生成和验证密码的方法和设备
WO2019035470A2 (ja) データ構造、送信装置、受信装置、決済装置、方法、コンピュータプログラム
US20170330177A1 (en) Payment terminal authentication
CN113342802A (zh) 区块链数据存储的方法和装置
Feng et al. Robust/Recover Provable Data Possession Protocol
WO2023107678A2 (en) Enabling confidential and non-confidential transactions on a digital token architecture
RU143513U1 (ru) Портативное многофункциональное устройство для защиты информации
WO2022194969A1 (en) Devices, systems, and methods for performing a digital signature

Legal Events

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