KR20200085095A - 블록체인 기반으로 데이터를 관리하는 전자 장치 및 데이터 관리 방법 - Google Patents

블록체인 기반으로 데이터를 관리하는 전자 장치 및 데이터 관리 방법 Download PDF

Info

Publication number
KR20200085095A
KR20200085095A KR1020190001211A KR20190001211A KR20200085095A KR 20200085095 A KR20200085095 A KR 20200085095A KR 1020190001211 A KR1020190001211 A KR 1020190001211A KR 20190001211 A KR20190001211 A KR 20190001211A KR 20200085095 A KR20200085095 A KR 20200085095A
Authority
KR
South Korea
Prior art keywords
block information
data
block
blockchain
information
Prior art date
Application number
KR1020190001211A
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 KR1020190001211A priority Critical patent/KR20200085095A/ko
Priority to US16/398,949 priority patent/US11265146B2/en
Priority to PCT/KR2019/005790 priority patent/WO2020141660A1/en
Priority to EP19907558.1A priority patent/EP3850521B1/en
Publication of KR20200085095A publication Critical patent/KR20200085095A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • H04L9/16Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • H04L2209/38

Abstract

블록체인 기반으로 데이터를 관리하는 전자 장치가 개시된다. 본 전자 장치는, 통신부, 메모리 및 인증된 사용자로부터 데이터에 접근하기 위한 요청을 입력받고, 요청에 대한 정보를 포함하여 요청에 대한 제1 블록 정보를 생성하고, 블록체인을 구성하는 복수의 외부 장치 중 적어도 하나에 생성된 제1 블록 정보를 전송하는 프로세서를 포함하고, 프로세서는, 메모리에 저장된 복수의 제2 블록 정보 중 요청과 관련된 적어도 하나의 제2 블록 정보를 더 포함하여 제1 블록 정보를 생성하고, 생성된 제1 블록 정보에 기초하여 메모리에 저장된 복수의 제2 블록 정보를 업데이트하고, 메모리에 저장된 복수의 제2 블록 정보는, 외부 장치가 공유하는 블록체인 데이터에 포함된 복수의 블록 중, 카테고리 별 최신 접근 내역에 대한 블록의 정보이다.

Description

블록체인 기반으로 데이터를 관리하는 전자 장치 및 데이터 관리 방법 { ELECTRONIC APPARATUS AND METHOD FOR MANAGING DATA BASED ON BLOCK CHAIN }
본 개시는 블록체인 기반으로 데이터를 관리하는 전자 장치 및 데이터 관리 방법에 관한 것으로, 보다 상세하게는, 블록체인을 이용하여 데이터 접근 내역을 투명하게 관리하는 블록체인 기반으로 데이터를 관리하는 전자 장치 및 데이터 관리 방법에 관한 것이다.
기존의 파일 공유 시스템은 중앙 서버에 모든 데이터를 저장하여, 파일의 위변조를 방지하고자 고성능의 보안 장치를 구비해야 하기 때문에, 많은 비용이 들 수 밖에 없으며, 이러한 방식으로는 모든 파일이 중앙 서버에 보관되어 있어, 중앙 서버의 해킹만으로 정보 유출이 발생될 수 있으므로, 보안성이 취약할 수 밖에 없다.
또한, 기업마다 운영하는 파일 공유 시스템을 구축하는데 있어, 외부로부터의 공격점이 중앙 서버에 집중되어 단일하게 형성됨에 따라, 보안을 위해 필요한 운영 비용 등이 많이 소모되는 문제도 있다.
한편, 복수의 노드에 보안 정보를 분산 저장하여, 보안 정보를 공동으로 관리하는 블록체인 기술의 등장으로, 블록체인이 다양한 분야에 활용되고 있는데, 이러한 블록체인을 활용하는 경우, 하나의 노드가 해킹되더라도 다른 노드에 공유된 정보를 통해 이를 파악할 수 있기 때문에, 실질적으로 정보의 위변조가 불가능하다.
따라서, 위변조가 불가능한 블록체인을 활용하여 무결성을 보장하는 파일 공유 시스템을 구성하고, 중앙 서버가 없이 분산화된 P2P 시스템을 통해 보안성이 향상된 방식으로 파일을 공유하고자 하는 요구가 증대되고 있다.
한편, 데이터를 모두 블록체인에 저장하는 경우, 합의를 통한 데이터 무결성을 제공함에 따라 데이터의 수정이 불가능하며, 동일한 데이터를 여러 노드에 저장하기 때문에 방대한 양의 데이터를 저장하기에는 부적합하다는 문제가 있다.
본 개시는 상술한 문제점을 해결하기 위해 안출된 것으로, 본 개시의 목적은, 블록체인을 이용하여 데이터 접근 내역을 투명하게 관리하고, 블록체인에 저장된 접근 내역을 보다 용이하게 검색하기 위한 블록체인 기반으로 데이터를 관리하는 전자 장치 및 데이터 관리 방법을 제공함에 있다.
본 개시의 일 실시 예에 따른 블록체인 기반으로 데이터를 관리하는 전자 장치에 있어서, 통신부, 메모리 및 인증된 사용자로부터 데이터에 접근하기 위한 요청을 수신하고, 상기 요청에 대한 정보를 포함하여 상기 요청에 대한 제1 블록 정보를 생성하고, 블록체인을 구성하는 복수의 외부 장치 중 적어도 하나에 상기 생성된 제1 블록 정보를 전송하는 프로세서를 포함하고, 상기 프로세서는, 상기 메모리에 저장된 복수의 제2 블록 정보 중 상기 요청과 관련된 적어도 하나의 제2 블록 정보를 더 포함하여 상기 제1 블록 정보를 생성하고, 상기 생성된 제1 블록 정보에 기초하여 상기 메모리에 저장된 복수의 제2 블록 정보를 업데이트하고, 상기 메모리에 저장된 복수의 제2 블록 정보는, 상기 복수의 외부 장치가 공유하는 블록체인 데이터에 포함된 복수의 블록 중, 카테고리 별 최신 접근 내역에 대한 블록의 정보이다.
이 경우, 상기 프로세서는, 상기 복수의 제2 블록 정보 중, 상기 요청에 대한 정보에 포함된 적어도 하나의 카테고리의 최신 접근 내역에 대한 블록 정보를 상기 제1 블록 정보에 포함시키는, 블록체인 기반으로 데이터를 관리할 수 있다.
한편, 상기 카테고리는, 사용자, 데이터 파일 형식, 데이터 작성 주체 및 특정 키워드 중 적어도 하나를 포함할 수 있다.
한편, 상기 카테고리 별 최신 접근 내역에 대한 블록의 정보는, 상기 카테고리 별 최신 접근 내역이 저장된 블록 번호 및 상기 카테고리 별 최신 접근 내역에 대한 복호화 키가 저장된 블록 번호 중 적어도 하나를 포함할 수 있다.
한편, 상기 제1 블록 정보는, 상기 블록체인 데이터에 기저장된 말단 블록 정보와 관련된 제1 해쉬 값, 및 상기 메모리에 저장된 상기 제2 블록 정보 중 상기 요청과 관련된 카테고리 별 최신 접근 내역에 대한 블록 정보와 관련된 제2 해쉬 값을 포함할 수 있다.
한편, 상기 프로세서는, 상기 생성된 블록 정보를 전송 후 상기 복수의 외부 장치 중 하나로부터 수신된 복호화 키를 데이터 저장 서버에 전송하고, 상기 데이터 저장 서버로부터 상기 복호화 키에 기초하여 복호화된 데이터를 수신하고, 상기 복호화된 데이터를 사용자 단말 장치로 전송할 수 있다.
이 경우, 상기 프로세서는, 상기 복수의 외부 장치 중 하나로부터 복호화 키를 수신 후 새로운 암호화 키 및 상기 새로운 암호화 키에 대응되는 새로운 복호화 키를 생성하고, 상기 복호화된 데이터가 상기 새로운 암호화 키로 암호화되어 상기 데이터 저장 서버에 저장되도록 상기 새로운 암호화 키를 상기 데이터 저장 서버에 전송하고, 상기 새로운 복호화 키를 상기 블록체인 데이터를 공유하는 상기 복수의 외부 장치 중 적어도 하나에 전송할 수 있다.
한편, 상기 전송된 제1 블록 정보는, 상기 생성된 제1 블록 정보의 공유에 대하여 상기 복수의 외부 장치 중 기설정된 적어도 하나의 외부 장치가 승인하면, 상기 복수의 외부 장치에 블록체인 데이터로서 공유될 수 있다.
한편, 본 개시의 일 실시 예에 따른 블록체인을 기반으로 데이터를 관리하는 방법에 있어서, 인증된 사용자로부터 데이터에 접근하기 위한 요청을 수신하는 단계, 상기 요청에 대한 정보를 포함하여 상기 요청에 대한 제1 블록 정보를 생성하는 단계 및 블록체인을 구성하는 복수의 외부 장치 중 적어도 하나에 상기 생성된 제1 블록 정보를 전송하는 단계를 포함하고, 상기 생성하는 단계는, 메모리에 저장된 복수의 제2 블록 정보 중 상기 요청과 관련된 적어도 하나의 제2 블록 정보를 더 포함하여 상기 제1 블록 정보를 생성하고, 상기 생성된 제1 블록 정보에 기초하여 상기 메모리에 저장된 복수의 제2 블록 정보를 업데이트하고, 상기 메모리에 저장된 복수의 제2 블록 정보는, 상기 복수의 외부 장치가 공유하는 블록체인 데이터에 포함된 복수의 블록 중, 카테고리 별 최신 접근 내역에 대한 블록의 정보일 수 있다.
이 경우, 상기 제1 블록 정보를 생성하는 단계는, 상기 복수의 제2 블록 정보 중, 상기 요청에 대한 정보에 포함된 적어도 하나의 카테고리의 최신 접근 내역에 대한 블록 정보를 상기 제1 블록 정보에 포함시킬 수 있다.
한편, 상기 카테고리는, 사용자, 데이터 파일 형식, 데이터 작성 주체 및 특정 키워드 중 적어도 하나를 포함할 수 있다.
한편, 상기 카테고리 별 최신 접근 내역에 대한 블록의 정보는, 상기 카테고리 별 최신 접근 내역이 저장된 블록 번호 및 상기 카테고리 별 최신 접근 내역에 대한 복호화 키가 저장된 블록 번호 중 적어도 하나를 포함할 수 있다.
한편, 제1 블록 정보는, 상기 블록체인 데이터에 기저장된 말단 블록 정보와 관련된 제1 해쉬 값, 및 상기 메모리에 저장된 상기 제2 블록 정보 중 상기 요청과 관련된 카테고리 별 최신 접근 내역에 대한 블록 정보와 관련된 제2 해쉬 값을 포함할 수 있다.
한편, 상기 생성된 블록 정보를 전송 후 상기 복수의 외부 장치중 하나로부터 수신된 복호화 키를 데이터 저장 서버에 전송하는 단계, 상기 데이터 저장 서버로부터 상기 복호화 키에 기초하여 복호화된 데이터를 수신하는 단계 및 상기 복호화된 데이터를 사용자 단말 장치로 전송하는 단계를 더 포함할 수 있다.
이 경우, 상기 복수의 외부 장치 중 하나로부터 복호화 키를 수신 후 새로운 암호화 키 및 상기 새로운 암호화 키에 대응되는 새로운 복호화 키를 생성하는 단계, 상기 복호화된 데이터가 상기 새로운 암호화 키로 암호화되어 상기 데이터 저장 서버에 저장되도록 상기 새로운 암호화 키를 상기 데이터 저장 서버에 전송하는 단계 및 상기 새로운 복호화 키를 상기 블록체인 데이터를 공유하는 상기 복수의 외부 장치 중 적어도 하나에 전송하는 단계를 더 포함할 수 있다.
한편, 상기 전송된 블록 정보는, 상기 생성된 블록 정보 공유에 대하여 상기 복수의 외부 장치 중 기설정된 적어도 하나의 외부 장치가 승인하면, 상기 복수의 외부 장치에 블록체인 데이터로서 공유될 수 있다.
한편, 본 개시의 일 실시 예에 따른 블록체인을 기반으로 데이터를 관리하는 방법을 실행하기 위한 프로그램을 포함하는 컴퓨터 판독가능 기록 매체에 있어서, 상기 블록체인을 기반으로 데이터를 관리하는 방법은, 인증된 사용자로부터 데이터에 접근하기 위한 요청이 입력되면, 상기 요청에 대한 정보를 포함하여 상기 요청에 대한 제1 블록 정보를 생성하는 단계 및 블록체인을 구성하는 복수의 외부 장치 중 적어도 하나에 상기 생성된 제1 블록 정보를 전송하는 단계를 포함하고, 상기 생성하는 단계는, 메모리에 저장된 복수의 제2 블록 정보 중 상기 요청과 관련된 적어도 하나의 제2 블록 정보를 더 포함하여 상기 제1 블록 정보를 생성하고, 상기 생성된 제1 블록 정보에 기초하여 상기 메모리에 저장된 복수의 제2 블록 정보를 업데이트하고, 상기 메모리에 저장된 복수의 제2 블록 정보는, 상기 복수의 외부 장치가 공유하는 블록체인 데이터에 포함된 복수의 블록 중, 카테고리 별 최신 접근 내역에 대한 블록의 정보일 수 있다.
도 1은 본 개시의 일 실시 예에 따른 블록체인 기반의 데이터 관리 시스템을 도시한 도면,
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 간략한 구성을 설명하기 위한 블럭도,
도 3은 도 2에 도시된 전자 장치의 구체적인 구성을 설명하기 위한 블럭도,
도 4는 본 개시의 일 실시 예에 따른 전자 장치에 저장된 카테고리 별 최신 접근 내역을 설명하기 위한 도면,
도 5는 본 개시의 일 실시 예에 따라 전자 장치에 저장된 카테고리 별 최신 접근 내역을 이용하여 블록을 생성하는 방식을 설명하기 위한 도면,
도 6은 본 개시의 일 실시 예에 따른 전자 장치의 데이터 관리 방법을 설명하기 위한 흐름도,
도 7은 본 개시의 일 실시 예에 따라 데이터 저장 서버에 기저장된 데이터를 읽는 과정을 설명하기 위한 도면,
도 8은 본 개시의 일 실시 예에 따라 새로운 데이터를 데이터 저장 서버에 쓰는 과정을 설명하기 위한 도면, 그리고,
도 9는 본 개시의 일 실시 예에 따른 데이터 관리 방법을 설명하기 위한 시퀀스도이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 개시에 대해 구체적으로 설명하기로 한다.
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 개시의 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 발명된 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 실시 예들을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시의 실시 예에서 '모듈' 혹은 '부'는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 '모듈' 혹은 복수의 '부'는 특정한 하드웨어로 구현될 필요가 있는 '모듈' 혹은 '부'를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
이하에서는 도면을 참조하여 본 발명에 대해 더욱 상세히 설명하기로 한다.
도 1은 본 개시의 일 실시 예에 따른 블록체인 기반의 데이터 관리 시스템을 도시한 도면이다.
도 1을 참조하면, 블록체인 기반의 데이터 관리 시스템(1000)은 전자 장치(100), 블록체인(200), 데이터 저장 서버(300) 및 사용자 단말 장치(400)를 포함한다.
전자 장치(100)는 데이터 관리를 위한 서버일 수 있다. 구체적으로, 전자 장치(100)는 블록체인(200), 데이터 저장 서버(300) 및 사용자 단말 장치(400)와 같은 외부 장치와 통신하며, 데이터 저장 서버(300)에 저장된 데이터를 관리하는 서버일 수 있다. 예를 들어, 전자 장치(100)는 블록체인을 기반으로 해 P2P(개인과 개인) 형태로 작동하는 애플리케이션이 동작되는 장치일 수 있다.
전자 장치(100)는 사용자 단말 장치(400)로부터 데이터 접근 요청을 수신할 수 있다. 사용자 단말 장치(400)는 사용자에게 정보를 제공하고, 사용자의 조작 명령을 입력받을 수 있는 인터페이스(디스플레이, 버튼, 터치 스크린 등)를 구비한 장치일 수 있다. 예를 들어, 사용자 단말 장치(400)는 TV, 휴대폰, 스마트폰, PDA, 노트북 PC, 데스크탑, 태블릿 PC, 전자 책, 전자 액자, 키오스크, 냉장고, 세탁기, 스마트 스피커, 스마트 워치, 에어컨, 오디오, DVD(digital video disk) 플레이어, 공기 청정기, 보일러 등 다양한 장치일 수 있다
다른 실시 예로, 전자 장치(100)와 사용자 단말 장치(400)는 하나의 장치일 수 있다. 이 경우, 전자 장치(100)는 사용자의 데이터 접근 요청을 직접 입력받을 수 있다.
블록체인(200)은 누구나 열람할 수 있는 장부에 거래 내역을 투명하게 기록하고, 여러 대의 컴퓨터에 이를 복제해 저장하는 분산형 데이터 저장 기술이다. 여러 대의 컴퓨터가 기록을 검증하여 해킹을 막을 수 있다. 본 개시에서는 거래 내역 뿐만 아니라, 데이터 접근 내역을 블록체인(200)에 기록할 수 있다.
본 개시에서는 전자 장치(100) 블록체인(200)을 구성하는 복수의 장치에 포함될 수도 있고, 아닐 수도 있다. 두 경우 모두, 전자 장치(100)는 생성된 블록 정보를 블록체인(200)을 구성하는 복수의 외부 장치 중 적어도 하나에 전송할 수 있다.
블록체인(200)은 블록(block)을 잇따라 연결(chain)한 형태이며, 데이터 공유에 참여하는 모든 사용자에게 접근 내역을 보내 주며, 접근 요청 때마다 모든 참여자들이 정보를 공유하고, 이를 대조해 데이터 위조나 변조를 할 수 없도록 돼 있다.
본 개시의 블록체인(200)은 블록 생성시 카테고리 별 최신 접근 내역에 대한 정보를 추가하여, 연속적인 체인 구조에 추가적인 연결 구조를 포함하는 다중 연결 구조를 가질 수 있다. 본 개시의 블록체인(200)의 구조는 이하 도 5를 참조하여 설명하기로 한다.
데이터 저장 서버(300)는 전자 장치(100)로부터 수신된 정보가 저장될 수 있다. 구체적으로, 데이터 저장 서버(300)는 사용자 단말 장치(400)를 통해 사용자로부터 입력된 정보를 전자 장치(100)로부터 수신하여 저장할 수 있다.
그리고, 데이터 저장 서버(300)는 전자 장치(100)로부터 암호 키를 수신받아 암호화된 데이터를 복호화 또는 복호화된 데이터를 암호화할 수 있다. 구체적으로, 데이터 저장 서버(300)는 기존 복호화 키를 이용하여 암호화되어 저장된 데이터를 복호화하고, 새롭게 생성된 암호화 키를 이용하여 복호화된 데이터를 암호화하여 다른 위치에 저장할 수 있다.
상술한 바와 같이, 본 개시에서는 블록체인(200)을 이용하여 데이터 접근 내역을 관리함으로써, 데이터의 보안성을 향상시킬 수 있다. 또한, 본 개시의 블록체인(200)은 다중 연결 구조를 가지므로, 데이터 접근 내역에 대한 검색이 보다 용이할 수 있다.
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 간략한 구성을 설명하기 위한 블럭도이다.
도 2를 참조하면, 전자 장치(100)는 통신부(110), 메모리(120) 및 프로세서(120)를 포함한다.
통신부(110)는 다양한 유형의 통신 방식에 따라 다양한 유형의 외부 장치와 통신을 수행하는 구성이다. 여기서, 전자 장치(100)와 통신하는 외부 장치는 사용자 단말 장치, 블록체인을 구성하는 복수의 외부 장치 중 적어도 하나 또는 데이터 저장 서버 등일 수 있다.
통신부(110)가 외부 장치와 통신 연결되는 것은 제3 기기(예로, 중계기, 허브, 엑세스 포인트, 서버 또는 게이트웨이 등)를 거쳐서 통신하는 것을 포함할 수 있다. 무선 통신은, 예를 들면, LTE, LTE-A(LTE Advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband), 또는 GSM(Global System for Mobile Communications) 등 중 적어도 하나를 사용하는 셀룰러 통신을 포함할 수 있다. 일 실시예에 따르면, 무선 통신은, 예를 들면, WiFi(wireless fidelity), 블루투스, 블루투스 저전력(BLE), 지그비(Zigbee), NFC(near field communication), 자력 시큐어 트랜스미션(Magnetic Secure Transmission), 라디오 프리퀀시(RF), 또는 보디 에어리어 네트워크(BAN) 중 적어도 하나를 포함할 수 있다. 유선 통신은, 예를 들면, USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard232), 전력선 통신, 또는 POTS(plain old telephone service) 등 중 적어도 하나를 포함할 수 있다. 무선 통신 또는 유선 통신이 수행되는 네트워크는 텔레커뮤니케이션 네트워크, 예를 들면, 컴퓨터 네트워크(예: LAN 또는 WAN), 인터넷, 또는 텔레폰 네트워크 중 적어도 하나를 포함할 수 있다.
이상에서는 통신부(110)가 하나의 구성인 것으로 기재되었으나, 실시 예에 따라 하나 이상의 통신 모듈을 포함할 수 있다.
메모리(120)는 전자 장치(100)의 동작에 필요한 각종 프로그램 및 데이터를 저장할 수 있다. 구체적으로, 메모리(120)에는 적어도 하나의 명령어가 저장될 수 있다. 프로세서(130)는 메모리(120)에 저장된 명령어를 실행함으로써 상술한 동작을 수행할 수 있다. 메모리(120)는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 등으로 구현될 수 있다.
구체적으로, 메모리(120)는 데이터를 관리하기 위한 다양한 모듈이 저장되어 있다. 예를 들어, 메모리(120)는 접근 내역을 관리하기 위한 모듈, 권한을 관리하기 위한 모듈, 암호화를 관리하기 위한 모듈, 저장소를 관리하기 위한 모듈 등이 저장되어 있다. 데이터를 관리하기 위한 각 모듈에 대해서는 이하 도 3 및 도 4를 참조하여 자세히 설명하기로 한다.
구체적으로, 메모리(120)에는 블록 정보에 포함되는 카테고리 별 최신 접근 내역에 대한 블록 정보가 저장될 수 있다. 이때, 메모리(120)에는 복수의 블록 정보가 저장된 상태일 수 있으며, 메모리(120)에 저장된 복수의 블록 정보는 카테고리 별 최신 접근 내역에 대한 블록 정보일 수 있다. 여기서, 메모리(120)에 저장된 블록 정보는 카테고리 별 최신 접근 내역이 저장된 블록 번호 및 카테고리 별 최신 접근 내역에 대한 복호화 키가 저장된 블록 번호 중 적어도 하나를 포함할 수 있다.
여기서, 카테고리는 사용자, 데이터 파일 형식, 데이터 작성 주체, 특정 키워드 중 적어도 하나일 수 있다. 카테고리는 블록에 포함되는 정보의 종류를 의미하는 것으로, 항목 등의 용어로 지칭될 수도 있다.
여기서, 사용자는 데이터 접근 요청을 한 사용자 계정일 수 있다. 그리고, 데이터 파일 형식은 요청된 데이터의 파일 형식으로, 확장자 등으로 구별될 수 있으며, 문서(doc, hwp, xls 등), 이미지(jpg, jpeg, tif, png 등), 동영상(mp4, mov, avi 등), pdf파일 등 다양한 파일 형식 별로 구분될 수 있다. 그리고, 데이터 작성 주체는 데이터 저장 서버에 저장된 데이터를 생성 또는 제공한 주체에 대한 정보로, 사용자 계정 또는 기업 정보일 수 있다. 그리고, 특정 키워드는 데이터에 포함된 특정 키워드를 의미하는 것으로, 키워드 별 최신 접근 내역에 대한 블록 정보를 이용하는 경우, 특정 키워드를 포함하는 데이터를 요청한 데이터 접근 내역을 검색할 수 있다.
예를 들어, 하나의 카테고리가 '사용자'라면, 메모리(120)에는 사용자 별로 마지막으로 데이터 접근 요청을 했던 내역을 저장한 블록의 정보가 저장될 수 있다. 예시로서, 메모리(120)에는 사용자 A가 마지막으로 데이터 접근 요청을 했던 내역을 저장한 블록의 정보, 사용자 B가 마지막으로 데이터 접근 요청을 했던 내역을 저장한 블록의 정보 등이 저장될 수 있다. 이때, 사용자 A에 대한 최신 블록 정보와 사용자 B에 대한 최신 블록 정보는 서로 다른 블록에 대한 정보일 것이다.
또 다른 카테고리가 '데이터 파일 형식'이라면, 메모리(120)에는 문서 파일이 마지막으로 요청된 내역을 저장한 블록의 정보, 이미지 파일이 마지막으로 요청된 내역을 저장한 블록의 정보 등이 저장될 수 있다. 실시 예에 따라 파일의 확장자 별로 마지막으로 요청된 내역이 메모리(120)에 저장될 수도 있다.
이와 같이 메모리(120)에는 다양한 카테고리 별로 최신 접근 내역이 저장된 블록의 정보가 저장될 수 있다. 이에 대해서는 이하 도 3 및 도 4를 참조하여 보다 자세히 설명하기로 한다.
프로세서(130)는 전자 장치(100)의 동작을 전반적으로 제어한다.
일 실시 예에 따라 프로세서(130)는 디지털 시그널 프로세서(digital signal processor(DSP), 마이크로 프로세서(microprocessor), TCON(Time controller)으로 구현될 수 있다. 다만, 이에 한정되는 것은 아니며, 중앙처리장치(central processing unit(CPU)), MCU(Micro Controller Unit), MPU(micro processing unit), 컨트롤러(controller), 어플리케이션 프로세서(application processor(AP)), 또는 커뮤니케이션 프로세서(communication processor(CP)), ARM 프로세서 중 하나 또는 그 이상을 포함하거나, 해당 용어로 정의될 수 있다. 또한, 프로세서(130)는 프로세싱 알고리즘이 내장된 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, FPGA(Field Programmable gate array) 형태로 구현될 수도 있다.
본 개시에서 전자 장치(100)의 프로세서(130)는 사용자로부터 데이터에 접근하기 위한 요청을 입력받으면, 요청에 대한 정보를 포함하여 해당 요청에 대한 블록 정보를 생성할 수 있다. 이때, 데이터에 접근하기 위한 요청은, 통신부(110)를 통해 사용자 단말 장치로부터 수신될 수 있다. 다른 실시 예로, 전자 장치(100)가 사용자 단말 장치와 동일한 구성이라면, 사용자가 전자 장치(100)에 입력한 조작 명령을 통해 데이터에 접근하기 위한 요청을 입력받을 수 있다.
프로세서(130)는 데이터 접근 요청이 입력되면, 입력된 요청에 대한 정보를 포함하여 요청에 대한 블록 정보를 생성할 수 있다. 여기서, 생성되는 요청에 대한 블록 정보는 데이터 접근 내역을 포함하는 것으로, 데이터에 접근을 요청한 사용자 정보, 요청 시간 정보, 요청된 데이터 정보 등을 포함할 수 있다.
이때, 블록 정보는 블록체인을 구성하는 복수의 외부 장치에 저장된 블록체인 데이터의 마지막 블록인 최신 블록에 대한 정보를 포함할 수 있다. 이에 따라, 이미 저장된 블록체인 데이터를 수정하고자 하는 경우에는 블록체인 데이터에 저장된 모든 블록 정보를 수정해야 하므로, 변조가 어렵고 무결성이 보장된다.
추가적으로, 프로세서(130)는 블록체인 데이터의 최신 블록과는 구별되는 카테고리 별 최신 접근 내역에 대한 블록 정보를 더 포함하여 요청에 대한 블록 정보를 생성할 수 있다.
구체적으로, 프로세서(130)는 메모리(120)에 저장된 복수의 블록 정보 중 입력된 사용자의 요청과 관련된 적어도 하나의 블록 정보를 더 포함하여 요청에 대한 블록 정보를 생성할 수 있다. 이때, 프로세서(130)는 메모리(120)에 저장된 복수의 블록 정보 중 입력된 사용자의 요청에 포함된 적어도 하나의 카테고리의 최신 접근 내역에 대한 블록 정보를 더 포함시켜 요청에 대한 블록 정보를 생성할 수 있다.
예를 들어, 블록체인 데이터에 마지막으로 저장된 블록의 번호가 #204이고, 사용자 A가 마지막으로 한 데이터 요청 내역이 저장된 블록 번호가 #201이라면, 사용자 A의 데이터 접근 요청에 따라 생성되는 블록의 번호는 #205이다. 이때, 프로세서(130)는 #205 블록을 생성하는데 #204 블록에 대한 정보 뿐만 아니라 #201 블록에 대한 정보를 더 포함할 수 있다. 이로 인해, 블록체인 데이터 내에서 사용자 A의 데이터 접근 요청 내역에 대한 검색이 용이해질 수 있다. 이러한 블록체인의 다중 연결 구조는 이하 도 4를 참조하여 보다 자세히 설명하기로 한다.
그리고, 프로세서(130)는 해쉬 함수를 이용하여 입력된 사용자의 요청에 대한 정보 및 메모리(120)에 저장된 복수의 블록 정보 중 입력된 사용자의 요청과 관련된 적어도 하나의 블록 정보에 대한 해쉬 값을 획득할 수 있다. 그리고, 프로세서(130)는 획득된 해쉬 값을 이용하여 입력된 사용자의 요청에 대한 블록 정보를 생성할 수 있다. 해쉬 함수란 임의의 길이를 갖는 메시지를 입력하여 고정된 길이의 해쉬값을 출력하는 함수로, 입력 메시지에 대한 변경할 수 없는 증거 값을 출력함으로써 메시지의 오류나 변조를 탐지할 수 있는 무결성을 제공할 수 있다. 긴 메시지에 대해 전자 서명을 하는 경우, 전체 메시지에 직접 서명하는 것이 아니고, 짧은 해쉬값에 대해 서명을 함으로 써 연산량을 줄일 수 있다.
그리고, 프로세서(130)는 생성된 사용자의 요청에 대한 블록 정보에 기초하여, 메모리(120)에 저장된 복수의 블록 정보 중 적어도 하나를 업데이트 할 수 있다. 구체적으로, 프로세서(130)는 메모리(120)에 저장된 복수의 블록 정보 중 사용자의 요청에 대한 블록 정보를 생성하는데 사용된 블록 정보를 생성된 블록 정보로 업데이트할 수 있다. 예를 들어, 메모리(120)에 저장된 사용자 A의 최신 접근 내역에 대한 블록 번호가 #201이고, 사용자 A의 데이터 접근 요청에 따라 생성되는 블록의 번호가 #205라면, 프로세서(130)는 #205 블록을 생성하는데 #204 블록에 대한 정보 뿐만 아니라 #201 블록에 대한 정보를 더 포함하고, 메모리(120)에 저장된 사용자 A의 최신 접근 내역에 대한 블록 정보인 #201 블록 정보는 #205 블록에 대한 정보로 업데이트할 수 있다.
그리고, 프로세서(130)는 통신부(110)를 통해 생성된 사용자의 요청에 대한 블록 정보를 블록체인을 구성하는 복수의 외부 장치 중 적어도 하나에 전송할 수 있다.
그리고, 프로세서(130)는 생성된 블록 정보를 복수의 외부 장치 중 적어도 하나의 외부 장치에 전송하면, 통신부(110)를 통해 복수의 외부 장치 중 하나로부터 복호화 키를 수신할 수 있다. 여기서, 수신되는 복호화 키는 블록체인 데이터에 기저장된 것으로, 블록체인 데이터에 마지막으로 저장된 복호화 키일 수 있다.
그리고, 프로세서(130)는 복수의 외부 장치 중 하나로부터 복호화 키를 수신하면, 새로운 암호화 키 및 새로운 암호화 키에 대응되는 복호화 키를 생성할 수 있다. 그리고, 프로세서(130)는 새로 생성된 암호화 키를 데이터 저장 서버에 전송할 수 있다. 데이터 저장 서버는 복호화된 데이터를 새로 생성된 암호화 키로 암호화하여 저장할 수 있다. 그리고, 프로세서(130)는 새로 생성된 복호화 키를 블록체인을 구성하는 복수의 외부 장치 중 적어도 하나에 전송할 수 있다. 전송된 복호화 키는 블록체인 데이터로 저장될 수 있다.
상술한 바와 같은 암호화 키 및 복호화 키를 이용한 데이터 처리 과정은 이하 도 7 및 도 8을 참조하여 자세히 설명하기로 한다.
이와 같이 사용자가 데이터 접근 요청할 때마다 새로운 암호화 키 및 복호화 키를 생성함으로써, 보안이 향상되는 효과가 있다.
그리고, 프로세서(130)는 수신된 복호화 키를 데이터 저장 서버에 전송할 수 있다. 그리고, 프로세서(130)는 통신부(110)를 통해 데이터 저장 서버로부터 전송된 복호화 키에 기초하여 복호화된 데이터를 수신할 수 있다.
그리고, 프로세서(130)는 복호화된 데이터를 사용자 단말 장치에 전송할 수 있다. 다른 실시 예로, 전자 장치(100)와 사용자 단말 장치가 동일한 장치라면, 프로세서(130)는 구비된 디스플레이(도 3의 140)를 제어하여 표시할 수도 있다.
상술한 바와 같이, 카테고리 별 최신 접근 내역에 대한 블록 정보를 더 추가하여 블록 정보를 생성함으로써, 블록체인 데이터가 다중 연결 구조가 되고, 이에 따라 블록체인 데이터로 저장된 접근 내역에 대한 검색이 보다 용이해진다.
도 3은 도 2에 도시된 전자 장치의 구체적인 구성을 설명하기 위한 블럭도이다.
도 3을 참조하면, 전자 장치(100)는 통신부(110), 메모리(120), 프로세서(130) 및 디스플레이(140)를 포함한다.
여기서, 통신부(110), 메모리(120) 및 프로세서(130)의 일부 구성은 도 2에 도시된 구성과 동일한 바, 중복된 기재는 생략한다.
메모리(120)에는 복수의 모듈이 저장될 수 있으며, 프로세서(130)는 저장된 모듈에 저장된 데이터를 이용하여 전자 장치(100)를 구동할 수 있다. 예를 들어, 메모리(120)에는 접근 내역 관리 모듈(121), 권한 관리 모듈(122), 암호화 관리 모듈(123) 및 저장소 관리 모듈(124) 중 적어도 하나가 저장될 수 있다.
접근 내역 관리 모듈(121)은 복수의 블록 정보를 저장 및 관리할 수 있다. 구체적으로, 접근 내역 관리 모듈(121)은 카테고리 별 최신 접근 내역에 대한 블록의 정보를 저장 및 관리할 수 있다.
접근 내역 관리 모듈(121)에 저장된 블록 정보는 카테고리 별 최신 접근 내역이 저장된 블록 번호 및 카테고리 별 최신 접근 내역에 대한 복호화 키가 저장된 블록 번호 중 적어도 하나를 포함할 수 있다. 여기서, 카테고리는 사용자, 데이터 파일 형식, 데이터 작성 주체, 특정 키워드 중 적어도 하나일 수 있다.
예를 들어, 도 4에 도시된 바와 같이, 접근 내역 관리 모듈(121)은 사용자 별 최신 접근 내역에 대한 블록 정보를 저장할 수 있다. 도 4를 참조하면, 접근 내역 관리 모듈(121)은 사용자 AAA, 사용자 BBB 및 사용자 CCC의 최신 접근 내역에 대한 블록 정보를 저장할 수 있다. 여기서, 접근 내역 관리 모듈(121)에는 인증된 사용자에 대한 정보만이 저장될 수 있다. 여기서, 인증된 사용자라 함은 사용자 계정 및 이에 대응되는 패스워드를 미리 저장해둔 복수의 사용자들 중, 사용자 계정 및 패스워드를 입력하여 로그인에 성공한 사용자를 의미할 수 있다.
구체적으로, 접근 내역 관리 모듈(121)에는 사용자 AAA의 최신 접근 내역에 대한 정보가 저장된 블록의 번호는 #205이고, #205 블록에 대한 암호 키에 대한 정보가 저장된 블록의 번호는 #206임이 저장될 수 있다. 그리고, 접근 내역 관리 모듈(121)에는 사용자 BBB에 대한 최신 접근 내역에 대한 정보인 #203와 이에 대한 암호 키에 대한 정보인 #204 및 사용자 CCC에 대한 최신 접근 내역에 대한 정보인 #199와 이에 대한 암호 키에 대한 정보인 #200이 각각 저장될 수 있다. 이때, 암호 키는 대칭 키일 수도 있고, 비대칭 키일 수도 있다.
이때, 사용자 BBB의 데이터 접근 요청이 수신되면, 프로세서(130)는 접근 내역 관리 모듈(121)에 저장된 사용자 BBB의 최신 접근 내역에 대한 정보를 더 포함하여 블록 정보를 생성할 수 있다. 예를 들어, 사용자 BBB의 데이터 접근 요청에 따라 새로 생성되는 블록의 번호가 #207 이라면, 프로세서(130)는 블록체인 데이터에 마지막으로 저장된 블록인 #206에 대한 정보와, 사용자 BBB의 최신 접근 내역에 대한 정보가 저장된 블록인 #204 및 #205에 대한 정보를 포함하여 #207 블록을 생성할 수 있다. 이때, 프로세서(130)는 기저장된 정보(예를 들어, #204, #205, #206에 대한 정보) 이외에도 사용자 BBB의 당해 데이터 접근 요청에 대한 정보도 포함하여 #207 블록을 생성할 수 있다.
그리고, 프로세서(130)는 생성된 #207 블록 정보를 블록체인을 구성하는 복수의 외부 장치 중 적어도 하나에 전송하여 블록체인 데이터로 저장할 수 있다. 이때, 복수의 외부 장치 중 하나로부터 #206에 저장된 복호화 키를 수신하면, 프로세서(130)는 새로운 암호화 키 및 복호화 키를 생성하고, 새로 생성된 복호화 키를 복수의 외부 장치 중 적어도 하나에 전송하여 블록체인 데이터로 저장할 수 있다. 이때, 새로 생성된 복호화 키가 저장된 블록 번호는 #208일 수 있다.
그리고, 프로세서(130)는 생성된 블록 정보를 이용하여 접근 내역 관리 모듈(121)에 저장된 정보를 업데이트할 수 있다. 예를 들어, 도 4를 참조하면, 프로세서(130)는 사용자 BBB에 대한 최신 접근 내역에 대한 정보인 #203을 #207로 업데이트하고, 암호 키에 대한 정보인 #204를 #208로 업데이트할 수 있다.
한편, 도 4에서는 접근 내역 관리 모듈(121)에 복수의 카테고리 중 사용자에 대한 최신 접근 내역에 대한 정보만 저장된 것으로 도시되었으나, 실시 예에 따라, 데이터 파일 형식, 데이터 작성 주체, 특정 키워드 별 최신 접근 내역에 대한 정보도 저장될 수 있다.
이와 같이, 접근 내역 관리 모듈(121)에 저장된 카테고리 별 최신 접근 내역에 대한 정보를 더 추가하여 새로운 블록 정보를 생성함으로 인해, 본 개시의 블록체인 데이터에 포함된 복수의 블록은 도 5에 도시된 바와 같은 다중 연결 구조로 생성될 수 있다.
한편, 권한 관리 모듈(122)에는 사용자가 데이터에 접근할 권한이 있는지 식별하기 위한 정보가 저장될 수 있다. 구체적으로, 권한 관리 모듈(122)에는 로그인을 위한 사용자 계정 및 이에 대응되는 패스워드가 저장될 수 있다. 그리고, 권한 관리 모듈(122)에는 스마트 계약에 따라, 사용자 계정 별로 접근 권한이 있는 데이터에 대한 정보가 저장될 수 있다. 여기서, 스마트 계약은 계약 조건을 블록체인에 기록하고, 조건이 충족됐을 경우 자동으로 계약이 실행되게하는 프로그램이다. 스마트 계약에 따라 설정된 기간 동안 권한이 있는 사용자 단말 장치(400)를 통한 데이터 접근 내역이 블록체인(200)에 저장되고, 요청에 대응되는 데이터가 제공될 수 있다.
암호화 관리 모듈(123)은 암호 키 생성을 위한 데이터가 저장될 수 있다. 이때, 암호 키는 대칭 키일 수도 있고, 비대칭 키일 수도 있다. 암호화 관리 모듈(123)은 프로세서(130)의 제어에 의해 새로운 암호화 키 및 이에 대응되는 복호화 키를 생성할 수 있다.
암호화 관리 모듈(123)에는 해쉬 함수가 저장될 수 있다. 해쉬 함수란 임의의 길이를 갖는 메시지를 입력하여 고정된 길이의 해쉬값을 출력하는 함수로, 입력 메시지에 대한 변경할 수 없는 증거 값을 출력함으로써 메시지의 오류나 변조를 탐지할 수 있는 무결성을 제공할 수 있다. 긴 메시지에 대해 전자 서명을 하는 경우, 전체 메시지에 직접 서명하는 것이 아니고, 짧은 해쉬 값에 대해 서명을 함으로 써 연산량을 줄일 수 있다.
저장소 관리 모듈(124)에는 데이터 저장 서버에 저장된 데이터의 위치에 대한 정보가 저장될 수 있다. 그리고, 데이터 저장 서버가 새로운 암호 키를 이용하여 복호화된 데이터를 다른 위치에 저장하면, 저장소 관리 모듈(124)의 정보도 프로세서(130)의 제어에 의해 업데이트될 수 있다.
도 5는 본 개시의 일 실시 예에 따라 전자 장치에 저장된 카테고리 별 최신 접근 내역을 이용하여 블록을 생성하는 방식을 설명하기 위한 도면이다.
도 5를 참조하면, 우선 사용자가 사용자 단말 장치(400)를 통해 데이터 접근 요청을 위한 정보(401)를 입력하면, 전자 장치(100)는 사용자 단말 장치(400)로부터 요청에 대한 정보(401)를 수신할 수 있다. 그리고, 전자 장치(100)는 상기 수신된 요청에 대한 정보(401) 및 접근 내역 관리 모듈(121)에 기저장된 카테고리별 최신 접근 내역에 대한 블록 정보(402)를 이용하여 요청에 대한 블록 정보를 생성할 수 있다. 이때, 기저장된 카테고리별 최신 접근 내역에 대한 블록 정보(402)에는 최신 접근 내역에 대한 블록의 번호가 포함될 수 있다.
그리고, 전자 장치(100)는 블록체인(200)을 구성하는 복수의 외부 장치 중 적어도 하나에, 생성된 블록 정보를 전송할 수 있다.
이때, 전자 장치(100)로부터 블록 정보를 수신한 외부 장치는, 수신된 블록 정보를 블록체인(200)에 저장되는 블록체인 데이터의 말단 블록으로 저장할 수 있다. 이때, 새로운 암호 키에 대한 정보를 포함하는 블록도 함께 저장될 수 있다.
한편, 전자 장치(100)는 접근 내역 관리 모듈(121)에 기저장된 카테고리 별 최신 접근 내역에 대한 블록 정보(402)를 이용하여 요청에 대한 블록 정보를 생성하는 경우, 기저장된 카테고리별 최신 접근 내역에 대한 블록 정보(402)를 요청에 대한 블록 정보를 반영한 카테고리 별 최신 접근 내역에 대한 블록 정보(403)로 업데이트할 수 있다.
예를 들어, 사용자 BBB가 데이터 접근 요청을 입력한 경우, 전자 장치(100)는 접근 내역 관리 모듈(121)에 기저장된 사용자 BBB의 최신 접근 내역에 대한 블록 정보(402)를 이용하여 데이터 접근 요청에 대한 블록 정보를 생성할 수 있다. 도 5에서는 기저장된 사용자 BBB의 최신 접근 내역에 대한 블록 정보(402)는 사용자 BBB가 마지막으로 한 데이터 접근 내역에 대한 블록 번호(#203)가 포함될 수 있으며, 전자 장치(100)는 블록 번호(#203)에 대한 정보를 반영하여 사용자 BBB의 데이터 접근 요청에 대한 블록 정보를 생성하고, 생성된 블록 정보를 블록체인(200)을 공유하는 복수의 외부 장치 중 적어도 하나에 전송할 수 있다. 전송된 블록 정보는 블록체인(200)에 저장되는 블록체인 데이터의 말단인 #207 블록으로 저장될 수 있다.그리고, 사용자 BBB의 데이터 접근 요청에 따라 전자 장치(100)는 #206 블록의 암호키를 사용하여 사용자 BBB에 데이터를 제공하고, 새로운 암호키를 생성하여 #208 블록에 저장할 수 있다.
그리고, 전자 장치(100)는 기저장된 사용자 BBB의 최신 접근 내역에 대한 블록 정보(402)를 생성된 블록 정보를 반영한 사용자 BBB의 최신 접근 내역에 대한 블록 정보(403)로 업데이트할 수 있다. 예를 들어, 전자 장치(100)는 기저장된 사용자 BBB의 최신 접근 내역에 대한 블록 정보(402)를 사용자 BBB의 데이터 요청에 대해 생성된 #207 블록에 대한 정보를 반영하여 사용자 BBB의 최신 접근 내역에 대한 블록 정보(403)로 업데이트할 수 있다. 이때, 전자 장치(100)는 암호키에 대한 #208 블록에 대한 정보를 더 반영하여 사용자 BBB의 최신 접근 내역에 대한 블록 정보(403)로 업데이트할 수 있다.한편, 블록체인(200)에 저장된 블록체인 데이터는 다중 연결 구조를 가질 수 있다. 구체적으로, 블록체인 데이터에 포함된 복수의 블록은 각각 직전 블록에 대한 정보를 포함할 수 있다. 예를 들어, 블록 번호가 #n인 블록은 #n-1 블록에 대한 정보를 포함할 수 있다.
그리고, 본 개시의 블록체인 데이터에 포함된 복수의 블록은 직전 블록에 대한 정보에 추가적으로 직전 블록 이외의 블록 정보를 더 포함할 수 있다. 이때, 추가적으로 포함되는 블록 정보는 직전 블록보다 더 이전에 저장된 블록 중 적어도 하나의 정보일 수 있다.
구체적으로, 추가적으로 포함되는 블록 정보는 카테고리 별 최신 접근 내역에 대한 블록의 정보일 수 있다. 여기서, 카테고리는 사용자, 데이터 파일 형식, 데이터 작성 주체, 특정 키워드 중 적어도 하나일 수 있다.
이때, 추가적으로 포함되는 블록 정보는, 당해 블록의 접근 요청에 대한 정보와 관련된 것일 수 있다. 구체적으로, 당해 블록의 접근 요청에 포함된 사용자 정보, 데이터 파일 형식, 데이터 작성 주체, 특정 키워드 중 적어도 하나와 동일한 정보를 포함하는 최근 블록에 대한 정보일 수 있다. 예를 들어, 도 5의 #207 블록은, 직전 블록 정보인 #206 블록에 대한 정보 및 #207 블록에 저장된 데이터 접근 내역의 사용자인 BBB의 직전 데이터 접근 내역이 저장된 #203 블록에 대한 정보를 포함할 수 있다. 이에 따라, 블록체인 데이터에서 모든 블록을 검색하지 않아도 사용자 BBB의 접근 내역이 저장된 블록에 대해서만 검색이 가능하게 된다.
한편, 블록체인 데이터의 복수의 블록 정보에 포함된 직전 블록에 대한 정보 및 카테고리 별 최신 접근 내역에 대한 블록 정보는 해쉬 값 형태일 수 있다.
구체적으로, 블록체인 데이터의 복수의 블록 정보는 직전 블록에 대한 정보와 관련된 해쉬 값(current block hash) 및 카테고리 별 최신 접근 내역에 대한 블록 정보와 관련된 해쉬 값(prov. Block hash)을 포함할 수 있다. 이때, 사용자의 데이터 접근 요청에 따라 블록 정보가 새로 생성되는 경우, 생성되는 블록 정보에는 블록체인 데이터에 기저장된 말단 블록에 대한 정보가 제1 해쉬 값(current block hash)으로 포함되고, 요청과 관련된 카테고리 별 최신 접근 내역에 대한 블록 정보와 관련된 제2 해쉬 값(prov. Block hash)으로 포함될 수 있다.
구체적으로, 제1 해쉬 값(current block hash)은 직전 블록의 해쉬 값을 포함하는 현재 블록의 블록 헤더를 해쉬하여 얻은 값일 수 있다. 여기서, 직전 블록의 해쉬 값을 포함하는 현재 블록의 블록 헤더는 현재 블록의 paylod 해쉬 값, 블록 생성 시간, Nonce(Number used ONCE)를 더 포함할 수 있다.
한편, 제2 해쉬 값(prov. Block hash)은 현재 블록의 생성 전 동일 카테고리 상에서 최신 블록의 해쉬 값을 포함하는 현재 블록의 블록 헤더를 해쉬하여 얻은 해쉬 값일 수 있다.
한편, 도 5에서는 설명의 편의를 위하여 당해 블록에 '사용자'에 대한 최신 접근 내역에 대한 정보를 더 포함하는 것으로 도시하고 설명하였지만, 실제 구현시에는 다양한 카테고리 중 2 이상의 카테고리 별 최신 접근 내역에 대한 정보를 더 포함할 수 있다.
이와 같이 2 이상의 카테고리 별 최신 접근 내역에 대한 정보를 더 포함하는 경우, 블록체인(200)은 다중 구조 형태일 수 있다.
도 6은 본 개시의 일 실시 예에 따른 전자 장치의 데이터 관리 방법을 설명하기 위한 흐름도이다.
도 6을 참조하면, 우선 전자 장치는 인증된 사용자로부터 데이터에 접근하기 위한 요청을 수신할 수 있다(S610). 이때, 전자 장치는 사용자 단말 장치로부터 데이터 접근 요청을 수신할 수 있다. 또는, 전자 장치가 사용자 단말 장치인 경우, 사용자로부터의 데이터 접근 요청을 직접 수신할 수 있다. 이때, 인증된 사용자라 함은 사용자 계정 및 이에 대응되는 패스워드를 미리 저장해둔 복수의 사용자들 중, 사용자 계정 및 패스워드를 입력하여 로그인에 성공한 사용자를 의미할 수 있다.
그리고, 전자 장치는 요청에 대한 정보를 포함하여 요청에 대한 블록 정보를 생성할 수 있다(S620). 구체적으로, 전자 장치는 블록체인 데이터의 최신 블록 정보 및 블록체인 데이터의 최신 블록과는 구별되는 카테고리 별 최신 접근 내역에 대한 블록 정보를 포함하여 요청에 대한 블록 정보를 생성할 수 있다. 이때, 추가되는 블록 정보는 전자 장치에 저장된 블록 정보의 일부일 수 있다. 구체적으로, 추가되는 블록 정보는 전자 장치에 저장된 복수의 블록 정보 중 입력된 사용자의 요청에 포함된 적어도 하나의 카테고리 별 최신 접근 내역에 대한 블록 정보일 수 있다.
그리고, 추가되는 카테고리 별 최신 접근 내역에 대한 블록 정보는 적어도 하나의 블록에 대한 정보일 수 있다. 구체적으로, 추가되는 블록 정보는 사용자의 요청에 포함된 카테고리 별 정보 중 적어도 하나와 동일한 정보를 포함하는 최근 블록에 대한 정보일 수 있다. 이때, 전자 장치는 해쉬 함수를 이용하여 사용자 요청에 대한 정보에 대한 해쉬 값 및 추가되는 카테고리 별 최신 접근 내역에 대한 블록 정보에 대한 해쉬 값을 획득할 수 있다. 그리고, 획득된 해쉬 값을 이용하여 사용자의 요청에 대한 블록 정보를 생성할 수 있다.
그리고, 블록체인을 구성하는 복수의 외부 장치 중 적어도 하나에 생성된 블록 정보를 전송할 수 있다(S630). 전자 장치는 생성된 블록 정보가 블록체인 데이터로 저장되도록 블록체인을 구성하는 복수의 외부 장치 중 적어도 하나에 생성된 블록 정보를 전송할 수 있다. 그리고, 전자 장치는 블록체인을 구성하는 복수의 외부 장치 중 적어도 하나의 외부 장치로부터 데이터를 복호화하기 위한 복호화 키를 수신할 수 있다. 전자 장치는 수신된 복호화 키를 이용하여 데이터 저장 서버에 저장된 데이터를 제공받을 수 있다.
한편, 도 6에 도시되지는 않았지만, 전자 장치는 사용자의 데이터 접근 요청에 대한 블록 정보를 생성하면, 생성된 블록 정보를 이용하여 전자 장치에 기저장된 최신 접근 내역에 대한 블록 정보를 업데이트할 수 있다.
도 7은 본 개시의 일 실시 예에 따라 데이터 저장 서버에 기저장된 데이터를 읽는 과정을 설명하기 위한 도면이다.
도 7을 참조하면, 사용자 BBB는 사용자 단말 장치(400)를 통해 데이터 접근 요청을 입력할 수 있다. 일 실시 예로, 사용자 BBB는 저장된 데이터 조회를 위한 요청을 입력할 수 있다.
전자 장치(100)는 사용자 단말 장치(400)로부터 데이터 접근 요청을 수신하면, 요청에 대한 블록 정보를 생성하고, 블록체인(200)을 구성하는 적어도 하나의 외부 장치에 전송하여 BBB 사용자의 접근 요청에 대한 내역(①)을 저장할 수 있다.
그리고, 전자 장치(100)는 사용자 접근 요청에 대한 블록 정보 직전의 블록 정보에 저장된 암호 키를 수신할 수 있다. 여기서, 수신되는 암호 키는 복호화 키일 수 있으며, 대칭 키 또는 비대칭 키일 수 있다. 그리고, 전자 장치(100)는 수신된 블록의 복호화 키를 데이터 저장 서버(300)에 전송할 수 있다. 그리고, 전자 장치(100)는 데이터 저장 서버(300)로부터 복호화 키를 이용하여 복호화된 데이터를 수신할 수 있다. 이때, 데이터 저장 서버(300)는 복호화된 데이터를 새로운 암호화 키(②)로 암호화하여 새로운 위치에 저장할 수 있다. 그리고, 전자 장치(100)는 새로운 암호화 키에 대응되는 복호화 키가 블록체인 데이터에 포함되도록 블록체인(200)을 구성하는 적어도 하나의 외부 장치에 새로운 복호화 키를 전송할 수 있다.
그리고, 전자 장치(100)는 데이터 저장 서버(100)로부터 수신된 복호화된 데이터를 사용자 단말 장치(400)에 전송하여 사용자에게 제공할 수 있다. 이때, 전자 장치(100)와 사용자 단말 장치(400)가 동일한 장치라면, 전자 장치(100)는 구비된 디스플레이를 통해 복호화된 데이터를 표시하는 형태로 사용자에게 제공할 수 있다. 이와 같이 사용자가 데이터 접근 요청할 때마다 새로운 암호화 키 및 복호화 키를 생성함으로써, 보안이 향상되는 효과가 있다.
도 8은 본 개시의 일 실시 예에 따라 새로운 데이터를 데이터 저장 서버에 쓰는 과정을 설명하기 위한 도면이다. 구체적으로, 도 8은 사용자 단말 장치(400)로부터 사용자 BBB의 데이터 수정 요청(①)이 입력됨에 따라, 전자 장치(100)는 블록체인(200)에 데이터 접근 내역 ①이 저장되도록 대한 블록 정보를 생성 및 전송하고, 도 7의 동작을 통해 복호화된 데이터를 사용자에게 제공한 상태 이후의 동작을 설명하기 위한 도면이다.
도 8을 참조하면, 사용자가 표시된 데이터를 수정하면, 전자 장치(100)는 사용자 단말 장치(400)로부터 수정된 데이터를 수신할 수 있다. 그리고, 전자 장치(100)는 수정된 데이터를 저장하기 위한 새로운 암호 키를 생성할 수 있다. 전자 장치(100)는 생성된 새로운 암호 키와 수정된 데이터를 데이터 저장 서버(300)에 전송할 수 있다. 데이터 저장 서버(300)는 수신된 데이터를 수신된 새로운 암호 키를 이용하여 새로운 위치에 저장할 수 있다.
이때, 수정된 데이터에 대한 저장이 완료되지 않은 상태에서 사용자 AAA의 데이터 접근 요청(②)이 수신되면, 전자 장치(100)는 블록체인(200)에 데이터 접근 내역 ②이 저장되도록 대한 블록 정보를 생성 및 전송하고, 블록체인(200)으로부터 기존 암호 키를 수신할 수 있다. 그리고, 전자 장치(100)는 수신된 기존 암호 키를 데이터 저장 서버(300)에 전송하여, 데이터 저장 서버(300)가 기존 데이터를 수신된 기존 암호 키로 복호화하여 사용자 AAA에게 제공하도록 할 수 있다. 도 8에서는 도시되지 않았지만, 전자 장치(100)가 데이터 저장 서버(300)로부터 복호화된 데이터를 수신하여, 사용자 AAA 에게 제공할 수 있다.
그리고, 데이터 수정 요청(①)에 의해 수정된 데이터가 데이터 저장 서버(300)에 저장이 완료되면, 전자 장치(100)는 새로운 암호 키가 블록체인(200)에 저장되도록 새로운 암호 키를 전송할 수 있으며, 이후에는 기존 암호 키는 사용할 수 없게 된다.
도 9는 본 개시의 일 실시 예에 따른 데이터 관리 방법을 설명하기 위한 시퀀스도이다.
도 9를 참조하면, 우선 전자 장치(100)는 사용자 단말 장치(400)로부터 로그인(S901), 데이터 접근 요청(S902)을 수신할 수 있다. 그리고, 전자 장치(100)는 수신된 로그인 정보로 사용자 계정을 식별하고, 요청된 데이터에 접근 권한이 있는지 확인할 수 있다(S903).
그리고, 전자 장치(100)는 사용자 데이터 접근 요청에 대한 상세 내역을 블록체인(200)에 기록할 수 있다(S904). 구체적으로, 전자 장치(100)는 사용자 데이터 접근 요청에 대한 블록 정보를 생성하고, 블록체인(200)을 구성하는 복수의 외부 장치 중 적어도 하나에 생성된 블록 정보를 전송할 수 있다. 이때, 생성된 블록 정보는 블록체인 데이터 내 마지막으로 저장된 블록에 대한 정보와, 이와 구별되는 카테고리 별 최신 접근 내역이 저장된 블록에 대한 정보를 포함할 수 있다. 이에 따라, 블록체인(200)은 다중 연결 구조를 가질 수 있다.
요청 내역을 기록한 후, 전자 장치(100)는 블록체인(200)에 저장된 마지막 블록에 포함된 정보인 저장소의 위치 및 요청에 맞는 복호화 키를 전송받을 수 있다(S905). 이때, 복호화 키는 대칭 키 및 비대칭 키 중 적어도 하나일 수 있다.
그리고, 전자 장치(100)는 데이터 저장 서버(300)에 접근 및 요청 동작을 수행할 수 있다(S906). 구체적으로, 전자 장치(100)는 수신된 복호화 키를 데이터 저장 서버(300)에 전송하고, 요청된 데이터를 전송해줄 것을 요청할 수 있다. 그리고, 전자 장치(100)는 데이터 저장 서버(300)가 데이터 위치 변경 및 재 암호화를 수행하도록 새로운 암호 키를 생성하여 전송할 수 있다(S907). 데이터 저장 서버(300)는 수신된 새로운 암호 키를 이용하여 복호화된 데이터를 다른 위치에 다시 암호화하여 저장할 수 있다.
그리고, 전자 장치(100)는 생성된 새로운 암호 키를 블록체인(200)에 저장할 수 있다. 이때, 블록체인(200)에 저장되는 암호 키는 복호화 키일 수 있다.
데이터 저장 서버(300)는 데이터 복호화가 완료되면, 복호화된 데이터를 전자 장치(100)에 전송하고 완료 알림을 전송할 수 있다(S909). 그리고, 전자 장치(100)는 수신된 복호화 데이터를 사용자 단말 장치(400)에 전송하여 사용자에게 제공하고, 요청 동작이 완료되었음을 알릴 수 있다(S910).
한편, 도 9에서는 전자 장치(100), 블록체인(200) 및 데이터 저장 서버(300)가 각각 별개의 장치인 것으로 도시되었으나, 전자 장치(100), 블록체인(200) 및 데이터 저장 서버(300)의 기능을 수행할 수 있는 적어도 하나의 장치로 구현될 수도 있다.이상에 기재한 다양한 실시 예에 따라, 카테고리 별 최신 접근 내역에 대한 블록 정보를 더 추가하여 블록 정보를 생성함으로써, 블록체인 데이터가 다중 연결 구조가 되고, 이에 따라 블록체인 데이터로 저장된 접근 내역에 대한 검색이 보다 용이해진다. 또한, 사용자가 데이터 접근 요청할 때마다 새로운 암호화 키 및 복호화 키를 생성함으로써, 보안이 향상되는 효과가 있다.
한편, 이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합된 것을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다. 하드웨어적인 구현에 의하면, 본 개시에서 설명되는 실시 예들은 ASICs(Application Specific Integrated Circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서(processors), 제어기(controllers), 마이크로 컨트롤러(micro-controllers), 마이크로 프로세서(microprocessors), 기타 기능 수행을 위한 전기적인 유닛(unit) 중 적어도 하나를 이용하여 구현될 수 있다. 일부의 경우에 본 명세서에서 설명되는 실시 예들이 프로세서 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 상기 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 작동을 수행할 수 있다.
한편, 상술한 본 개시의 다양한 실시 예들에 따른 방법은 비일시적 판독 가능 매체(non-transitory readable medium) 에 저장될 수 있다. 이러한 비일시적 판독 가능 매체는 다양한 장치에 탑재되어 사용될 수 있다.
비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 방법을 수행하기 위한 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
일 실시 예에 따르면, 본 문서에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
또한, 이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시가 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.
100 : 전자 장치 110 : 통신부
120 : 메모리 130 : 프로세서
200 : 블록체인 300 : 데이터 저장 서버
400 : 사용자 단말 장치

Claims (17)

  1. 블록체인 기반으로 데이터를 관리하는 전자 장치에 있어서,
    통신부;
    메모리; 및
    인증된 사용자로부터 데이터에 접근하기 위한 요청을 수신하고, 상기 요청에 대한 정보를 포함하여 상기 요청에 대한 제1 블록 정보를 생성하고, 블록체인을 구성하는 복수의 외부 장치 중 적어도 하나에 상기 생성된 제1 블록 정보를 전송하는 프로세서;를 포함하고,
    상기 프로세서는,
    상기 메모리에 저장된 복수의 제2 블록 정보 중 상기 요청과 관련된 적어도 하나의 제2 블록 정보를 더 포함하여 상기 제1 블록 정보를 생성하고,
    상기 생성된 제1 블록 정보에 기초하여 상기 메모리에 저장된 복수의 제2 블록 정보를 업데이트하고,
    상기 메모리에 저장된 복수의 제2 블록 정보는,
    상기 복수의 외부 장치가 공유하는 블록체인 데이터에 포함된 복수의 블록 중, 카테고리 별 최신 접근 내역에 대한 블록의 정보인, 블록체인 기반으로 데이터를 관리하는 전자 장치.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 복수의 제2 블록 정보 중, 상기 요청에 대한 정보에 포함된 적어도 하나의 카테고리의 최신 접근 내역에 대한 블록 정보를 상기 제1 블록 정보에 포함시키는, 블록체인 기반으로 데이터를 관리하는 전자 장치.
  3. 제1항에 있어서,
    상기 카테고리는,
    사용자, 데이터 파일 형식, 데이터 작성 주체 및 특정 키워드 중 적어도 하나를 포함하는, 블록체인 기반으로 데이터를 관리하는 전자 장치.
  4. 제1항에 있어서,
    상기 카테고리 별 최신 접근 내역에 대한 블록의 정보는,
    상기 카테고리 별 최신 접근 내역이 저장된 블록 번호 및 상기 카테고리 별 최신 접근 내역에 대한 복호화 키가 저장된 블록 번호 중 적어도 하나를 포함하는, 블록체인 기반으로 데이터를 관리하는 전자 장치.
  5. 제1항에 있어서,
    상기 제1 블록 정보는,
    상기 블록체인 데이터에 기저장된 말단 블록 정보와 관련된 제1 해쉬 값, 및
    상기 메모리에 저장된 상기 제2 블록 정보 중 상기 요청과 관련된 카테고리 별 최신 접근 내역에 대한 블록 정보와 관련된 제2 해쉬 값을 포함하는, 블록체인 기반으로 데이터를 관리하는 전자 장치.
  6. 제1항에 있어서,
    상기 프로세서는,
    상기 생성된 블록 정보를 전송 후 상기 복수의 외부 장치 중 하나로부터 수신된 복호화 키를 데이터 저장 서버에 전송하고,
    상기 데이터 저장 서버로부터 상기 복호화 키에 기초하여 복호화된 데이터를 수신하고,
    상기 복호화된 데이터를 사용자 단말 장치로 전송하는, 블록체인 기반으로 데이터를 관리하는 전자 장치.
  7. 제6항에 있어서,
    상기 프로세서는,
    상기 복수의 외부 장치 중 하나로부터 복호화 키를 수신 후 새로운 암호화 키 및 상기 새로운 암호화 키에 대응되는 새로운 복호화 키를 생성하고,
    상기 복호화된 데이터가 상기 새로운 암호화 키로 암호화되어 상기 데이터 저장 서버에 저장되도록 상기 새로운 암호화 키를 상기 데이터 저장 서버에 전송하고,
    상기 새로운 복호화 키를 상기 블록체인 데이터를 공유하는 상기 복수의 외부 장치 중 적어도 하나에 전송하는, 블록체인 기반으로 데이터를 관리하는 전자 장치.
  8. 제1항에 있어서,
    상기 전송된 제1 블록 정보는,
    상기 생성된 제1 블록 정보의 공유에 대하여 상기 복수의 외부 장치 중 기설정된 적어도 하나의 외부 장치가 승인하면, 상기 복수의 외부 장치에 블록체인 데이터로서 공유되는, 블록체인 기반으로 데이터를 관리하는 전자 장치.
  9. 블록체인을 기반으로 데이터를 관리하는 방법에 있어서,
    인증된 사용자로부터 데이터에 접근하기 위한 요청을 수신하는 단계;
    상기 요청에 대한 정보를 포함하여 상기 요청에 대한 제1 블록 정보를 생성하는 단계; 및
    블록체인을 구성하는 복수의 외부 장치 중 적어도 하나에 상기 생성된 제1 블록 정보를 전송하는 단계;를 포함하고,
    상기 생성하는 단계는,
    메모리에 저장된 복수의 제2 블록 정보 중 상기 요청과 관련된 적어도 하나의 제2 블록 정보를 더 포함하여 상기 제1 블록 정보를 생성하고, 상기 생성된 제1 블록 정보에 기초하여 상기 메모리에 저장된 복수의 제2 블록 정보를 업데이트하고,
    상기 메모리에 저장된 복수의 제2 블록 정보는,
    상기 복수의 외부 장치가 공유하는 블록체인 데이터에 포함된 복수의 블록 중, 카테고리 별 최신 접근 내역에 대한 블록의 정보인, 블록체인을 기반으로 데이터를 관리하는 방법.
  10. 제9항에 있어서,
    상기 제1 블록 정보를 생성하는 단계는,
    상기 복수의 제2 블록 정보 중, 상기 요청에 대한 정보에 포함된 적어도 하나의 카테고리의 최신 접근 내역에 대한 블록 정보를 상기 제1 블록 정보에 포함시키는, 블록체인을 기반으로 데이터를 관리하는 방법.
  11. 제9항에 있어서,
    상기 카테고리는,
    사용자, 데이터 파일 형식, 데이터 작성 주체 및 특정 키워드 중 적어도 하나를 포함하는, 블록체인을 기반으로 데이터를 관리하는 방법.
  12. 제9항에 있어서,
    상기 카테고리 별 최신 접근 내역에 대한 블록의 정보는,
    상기 카테고리 별 최신 접근 내역이 저장된 블록 번호 및 상기 카테고리 별 최신 접근 내역에 대한 복호화 키가 저장된 블록 번호 중 적어도 하나를 포함하는, 블록체인을 기반으로 데이터를 관리하는 방법.
  13. 제9항에 있어서,
    제1 블록 정보는,
    상기 블록체인 데이터에 기저장된 말단 블록 정보와 관련된 제1 해쉬 값, 및
    상기 메모리에 저장된 상기 제2 블록 정보 중 상기 요청과 관련된 카테고리 별 최신 접근 내역에 대한 블록 정보와 관련된 제2 해쉬 값을 포함하는, 블록체인을 기반으로 데이터를 관리하는 방법.
  14. 제9항에 있어서,
    상기 생성된 블록 정보를 전송 후 상기 복수의 외부 장치중 하나로부터 수신된 복호화 키를 데이터 저장 서버에 전송하는 단계;
    상기 데이터 저장 서버로부터 상기 복호화 키에 기초하여 복호화된 데이터를 수신하는 단계; 및
    상기 복호화된 데이터를 사용자 단말 장치로 전송하는 단계;를 더 포함하는, 블록체인을 기반으로 데이터를 관리하는 방법.
  15. 제14항에 있어서,
    상기 복수의 외부 장치 중 하나로부터 복호화 키를 수신 후 새로운 암호화 키 및 상기 새로운 암호화 키에 대응되는 새로운 복호화 키를 생성하는 단계;
    상기 복호화된 데이터가 상기 새로운 암호화 키로 암호화되어 상기 데이터 저장 서버에 저장되도록 상기 새로운 암호화 키를 상기 데이터 저장 서버에 전송하는 단계; 및
    상기 새로운 복호화 키를 상기 블록체인 데이터를 공유하는 상기 복수의 외부 장치 중 적어도 하나에 전송하는 단계;를 더 포함하는, 블록체인을 기반으로 데이터를 관리하는 방법.
  16. 제10항에 있어서,
    상기 전송된 블록 정보는,
    상기 생성된 블록 정보 공유에 대하여 상기 복수의 외부 장치 중 기설정된 적어도 하나의 외부 장치가 승인하면, 상기 복수의 외부 장치에 블록체인 데이터로서 공유되는, 블록체인을 기반으로 데이터를 관리하는 방법.
  17. 블록체인을 기반으로 데이터를 관리하는 방법을 실행하기 위한 프로그램을 포함하는 컴퓨터 판독가능 기록 매체에 있어서,
    상기 블록체인을 기반으로 데이터를 관리하는 방법은,
    인증된 사용자로부터 데이터에 접근하기 위한 요청이 입력되면, 상기 요청에 대한 정보를 포함하여 상기 요청에 대한 제1 블록 정보를 생성하는 단계; 및
    블록체인을 구성하는 복수의 외부 장치 중 적어도 하나에 상기 생성된 제1 블록 정보를 전송하는 단계;를 포함하고,
    상기 생성하는 단계는,
    메모리에 저장된 복수의 제2 블록 정보 중 상기 요청과 관련된 적어도 하나의 제2 블록 정보를 더 포함하여 상기 제1 블록 정보를 생성하고, 상기 생성된 제1 블록 정보에 기초하여 상기 메모리에 저장된 복수의 제2 블록 정보를 업데이트하고,
    상기 메모리에 저장된 복수의 제2 블록 정보는,
    상기 복수의 외부 장치가 공유하는 블록체인 데이터에 포함된 복수의 블록 중, 카테고리 별 최신 접근 내역에 대한 블록의 정보인, 블록체인 기반으로 데이터를 관리하는 컴퓨터 판독가능 기록 매체.
KR1020190001211A 2019-01-04 2019-01-04 블록체인 기반으로 데이터를 관리하는 전자 장치 및 데이터 관리 방법 KR20200085095A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020190001211A KR20200085095A (ko) 2019-01-04 2019-01-04 블록체인 기반으로 데이터를 관리하는 전자 장치 및 데이터 관리 방법
US16/398,949 US11265146B2 (en) 2019-01-04 2019-04-30 Electronic apparatus managing data based on block chain and method for managing data
PCT/KR2019/005790 WO2020141660A1 (en) 2019-01-04 2019-05-14 Electronic apparatus managing data based on block chain and method for managing data
EP19907558.1A EP3850521B1 (en) 2019-01-04 2019-05-14 Electronic apparatus managing data based on block chain and method for managing data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190001211A KR20200085095A (ko) 2019-01-04 2019-01-04 블록체인 기반으로 데이터를 관리하는 전자 장치 및 데이터 관리 방법

Publications (1)

Publication Number Publication Date
KR20200085095A true KR20200085095A (ko) 2020-07-14

Family

ID=71405321

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190001211A KR20200085095A (ko) 2019-01-04 2019-01-04 블록체인 기반으로 데이터를 관리하는 전자 장치 및 데이터 관리 방법

Country Status (4)

Country Link
US (1) US11265146B2 (ko)
EP (1) EP3850521B1 (ko)
KR (1) KR20200085095A (ko)
WO (1) WO2020141660A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220048346A (ko) * 2020-10-12 2022-04-19 가톨릭대학교 산학협력단 블록체인 기반의 헬스케어 데이터 제공 방법, 서비스 서버 및 시스템

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113114728B (zh) * 2021-03-22 2022-04-01 南京航空航天大学 一种基于可编辑区块链的体域网身份认证方法及系统
EP4068919B1 (en) 2021-03-29 2023-10-11 ABB Schweiz AG Subrack and module assembly comprising the subrack
WO2024026321A1 (en) * 2022-07-25 2024-02-01 Visa International Service Association Fast sync blockchain system and method
CN115914249B (zh) * 2022-12-05 2023-09-29 淮阴工学院 基于区块链块分类的冷链数据存储与查询方法及装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7428306B2 (en) * 2006-04-18 2008-09-23 International Business Machines Corporation Encryption apparatus and method for providing an encrypted file system
US8635295B2 (en) * 2010-11-29 2014-01-21 Workshare Technology, Inc. Methods and systems for monitoring documents exchanged over email applications
EP3955146A1 (en) 2015-05-05 2022-02-16 Ping Identity Corporation Identity management service using a block chain
US10089489B2 (en) 2015-06-02 2018-10-02 ALTR Solutions, Inc. Transparent client application to arbitrate data storage between mutable and immutable data repositories
US10114970B2 (en) 2015-06-02 2018-10-30 ALTR Solutions, Inc. Immutable logging of access requests to distributed file systems
US10785033B2 (en) * 2015-09-04 2020-09-22 Nec Corporation Method for storing an object on a plurality of storage nodes
US10178105B2 (en) 2016-02-22 2019-01-08 Bank Of America Corporation System for providing levels of security access to a process data network
US11829998B2 (en) 2016-06-07 2023-11-28 Cornell University Authenticated data feed for blockchains
CN116910785A (zh) 2016-09-09 2023-10-20 微软技术许可有限责任公司 跨不同方来跟踪对象
WO2018057829A1 (en) * 2016-09-22 2018-03-29 Google Llc Methods and systems of performing tamper-evident logging using block lattices
KR101908712B1 (ko) 2016-10-05 2018-10-16 한전케이디엔주식회사 블록체인을 이용한 스마트 그리드 시스템의 보안 방법
JP6533771B2 (ja) * 2016-11-15 2019-06-19 富士通株式会社 通信方法、装置、及びプログラム
WO2018112038A1 (en) 2016-12-14 2018-06-21 Wal-Mart Stores, Inc. Controlling access to a locked space using cryptographic keys stored on a blockchain
KR101829730B1 (ko) 2016-12-30 2018-03-29 주식회사 코인플러그 블록체인 데이터베이스를 통해 모바일 아이디를 이용하여 사용자를 인증하는 방법, 단말 및 이를 이용한 서버
JP6268624B1 (ja) 2017-02-17 2018-01-31 株式会社Kompath データ管理システム
JP2018136626A (ja) 2017-02-20 2018-08-30 Kddi株式会社 アクセス制御装置、アクセス制御方法及びアクセス制御プログラム
CN108694189B (zh) 2017-04-07 2022-01-21 微软技术许可有限责任公司 共同所有权的数据库系统的管理
US10380366B2 (en) 2017-04-25 2019-08-13 Sap Se Tracking privacy budget with distributed ledger
JP7005102B2 (ja) 2017-12-28 2022-01-21 高歩 中村 Bcn(ブロックチェーンネットワーク)を使用したデータ利用方法、システムおよびそのプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220048346A (ko) * 2020-10-12 2022-04-19 가톨릭대학교 산학협력단 블록체인 기반의 헬스케어 데이터 제공 방법, 서비스 서버 및 시스템
WO2022080827A1 (ko) * 2020-10-12 2022-04-21 가톨릭대학교 산학협력단 블록체인 기반의 헬스케어 데이터 제공 방법, 서비스 서버 및 시스템

Also Published As

Publication number Publication date
EP3850521B1 (en) 2023-11-29
EP3850521A4 (en) 2021-10-20
EP3850521A1 (en) 2021-07-21
US20200220712A1 (en) 2020-07-09
WO2020141660A1 (en) 2020-07-09
US11265146B2 (en) 2022-03-01

Similar Documents

Publication Publication Date Title
TWI672648B (zh) 業務處理方法、裝置、資料共享系統及儲存介質
US10121018B2 (en) Secure data synchronization
US10079880B2 (en) Automatic identification of invalid participants in a secure synchronization system
KR20200085095A (ko) 블록체인 기반으로 데이터를 관리하는 전자 장치 및 데이터 관리 방법
US9537918B2 (en) File sharing with client side encryption
US8707404B2 (en) System and method for transparently authenticating a user to a digital rights management entity
US20200084045A1 (en) Establishing provenance of digital assets using blockchain system
US10084790B2 (en) Peer to peer enterprise file sharing
US9767300B2 (en) Managing restricted tagged content elements within a published message
US20120109830A1 (en) Apparatus, system and method for a decentralized social network system and decentralized payment network system
US10454910B2 (en) Management apparatus, computer program product, system, device, method, information processing apparatus, and server
US10116442B2 (en) Data storage apparatus, data updating system, data processing method, and computer readable medium
JP2015529892A (ja) メディア・セキュリティ・コントローラを使用したメディア・アイテムの保護
CN113261024A (zh) 用于利用区块链技术路由到网状网络内容的方法
US8972732B2 (en) Offline data access using trusted hardware
CN111132150A (zh) 一种保护数据的方法、装置、存储介质和电子设备
KR102447797B1 (ko) Ipfs 기반의 문서 관리 시스템 및 그 방법
AU2014203538A1 (en) Method and system for digital rights enforcement
CN107425959A (zh) 一种实现加密处理的方法、系统、客户端及服务端
JP2022548583A (ja) ブロックチェーンのトランザクションを介するデータの共有
CN111130788B (zh) 数据处理方法和系统、数据读取方法和iSCSI服务器
JP6542401B2 (ja) メッセージ終端間暗号化のためのキーチェーン管理方法およびシステム
US20160147999A1 (en) Method And Apparatus For Applying A Customer Owned Encryption
JP6919484B2 (ja) 暗号通信方法、暗号通信システム、鍵発行装置、プログラム
CN117097526A (zh) 一种基于区块链的数据安全共享方法及装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal