KR20200112055A - 블록체인 환경에서의 데이터 공유 방법 및 이를 위한 장치 - Google Patents

블록체인 환경에서의 데이터 공유 방법 및 이를 위한 장치 Download PDF

Info

Publication number
KR20200112055A
KR20200112055A KR1020190031923A KR20190031923A KR20200112055A KR 20200112055 A KR20200112055 A KR 20200112055A KR 1020190031923 A KR1020190031923 A KR 1020190031923A KR 20190031923 A KR20190031923 A KR 20190031923A KR 20200112055 A KR20200112055 A KR 20200112055A
Authority
KR
South Korea
Prior art keywords
data
user
communication terminal
domain name
data sharing
Prior art date
Application number
KR1020190031923A
Other languages
English (en)
Other versions
KR102720693B1 (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 KR1020190031923A priority Critical patent/KR102720693B1/ko
Priority claimed from KR1020190031923A external-priority patent/KR102720693B1/ko
Publication of KR20200112055A publication Critical patent/KR20200112055A/ko
Application granted granted Critical
Publication of KR102720693B1 publication Critical patent/KR102720693B1/ko

Links

Images

Classifications

    • 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
    • H04L63/0442Network 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 wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/30Managing network names, e.g. use of aliases or nicknames
    • H04L61/3015Name registration, generation or assignment
    • H04L61/3025Domain name generation or assignment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L67/16
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • H04L2209/608Watermarking

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

본 발명은 블록체인에 저장된 데이터를 안전하게 보관하고 타 사용자와 공유하는 데이터 공유 방법 및 이를 위한 장치에 관한 것이다. 본 발명의 실시예에 따른 데이터 공유 서버가 복수의 통신 단말 및 블록체인 네트워크와 통신하여 데이터를 공유하는 방법은, 상기 데이터 공유 서버가, 상기 복수의 통신 단말 각각에 대한 사용자의 속성 정보를 확인하고, 상기 복수의 통신 단말 각각의 사용자의 속성 정보를 이용하여 각 사용자의 복호키를 생성하는 단계; 상기 데이터 공유 서버가, 각 사용자의 개인 도메인 네임과 상기 복호키를 상기 블록체인 네트워크에 전송하는 단계; 상기 데이터 공유 서버가, 데이터 소유주의 통신 단말로부터 암호화된 데이터를 수신하고, 상기 암호화된 데이터에 고유하게 대응하는 데이터 도메인 네임을 생성하여 상기 암호화된 데이터와 함께 상기 블록체인 네트워크에 전송하는 단계; 상기 데이터 공유 서버가, 데이터 공유 대상자의 통신 단말로부터 상기 데이터 도메인 네임을 포함하는 데이터 요청을 수신하는 단계; 상기 데이터 공유 서버가, 수신된 데이터 도메인 네임에 대응하는 암호화된 데이터를 상기 블록체인 네트워크로부터 수신하여 상기 데이터 공유 대상자의 통신 단말로 전송하는 단계; 및 상기 데이터 공유 서버가, 상기 데이터 공유 대상자의 통신 단말로부터 수신되는 개인 도메인 네임에 기초하여 상기 블록체인 네트워크로부터 상기 데이터 공유 대상자의 복호키를 수신하고 상기 데이터 공유 대상자의 통신 단말로 전송하는 단계를 포함한다.

Description

블록체인 환경에서의 데이터 공유 방법 및 이를 위한 장치{Method for sharing data in block chain environment and apparatus}
본 발명은 데이터 공유 기술에 관한 것으로서, 더욱 상세하게는 블록체인에 저장된 데이터를 안전하게 보관하고 타 사용자와 공유하는 데이터 공유 방법 및 이를 위한 장치에 관한 것이다.
블록체인 기술은 트랜잭션이 포함된 블록이 블록체인에 저장되고, 다수의 노드들이 상기 블록체인을 서로 공유하는 형태로서, 기존의 중앙 집중식 데이터 저장 방식과 비교하여, 데이터의 위변조에 대한 보안을 향상시키는 장점이 있다. 이러한 블록체인은 그 형태가 더욱 다양해져, 전력 데이터, 의료 데이터, 계약 데이터 등을 블록체인에 저장하고 이용하는 기술개발이 진행되고 있다. 아래의 특허문헌은 블록체인을 이용한 선불형 전력 판매 및 전력 사용 방법에 대해서 개시한다.
그런데 블록체인에 사용자 정보를 저장하게 되면, 사용자 정보가 타인에게 노출될 수 있는 문제점이 있다. 즉, 블록체인은 불특정 다수가 접근할 수 있는 일종의 오픈된 데이터베이스로서, 불특정 다수가 블록체인에 접근하여 사용자 정보를 획득할 수 있는 문제점을 내재하고 있다. 예를 들어, 기존의 블록체인에서는, 블록의 트랜잭션 조회를 통해 개인의 거래내역 또는 의료내역 등을 추적할 수 있고 이를 통해 개인의 사생활을 유출할 수 있다.
따라서, 블록체인에 저장된 개인정보에 대한 보안을 향상시키고, 허락된 사용자에게만 데이터를 제공하는 방법이 요구되고 있다.
한국등록특허 제10-1848896호(2018.04.09)
본 발명은 이러한 종래의 문제점을 해결하기 위하여 제안된 것으로, 허락된 타 사용자 또는 기관에게만 블록체인에 저장된 사용자 데이터가 이용되게 하여, 블록체인의 데이터에 대한 보안성을 향상시키고 데이터 소유주의 권익을 보장하는 데이터 공유 방법 및 시스템을 제공하는데 그 목적이 있다.
본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기 목적을 달성하기 위한 본 발명의 제1측면에 따른, 데이터 공유 서버가 복수의 통신 단말 및 블록체인 네트워크와 통신하여 데이터를 공유하는 방법은, 상기 데이터 공유 서버가, 상기 복수의 통신 단말 각각에 대한 사용자의 속성 정보를 확인하고, 상기 복수의 통신 단말 각각의 사용자의 속성 정보를 이용하여 각 사용자의 복호키를 생성하는 단계; 상기 데이터 공유 서버가, 각 사용자의 개인 도메인 네임과 상기 복호키를 상기 블록체인 네트워크에 전송하는 단계; 상기 데이터 공유 서버가, 데이터 소유주의 통신 단말로부터 암호화된 데이터를 수신하고, 상기 암호화된 데이터에 고유하게 대응하는 데이터 도메인 네임을 생성하여 상기 암호화된 데이터와 함께 상기 블록체인 네트워크에 전송하는 단계; 상기 데이터 공유 서버가, 데이터 공유 대상자의 통신 단말로부터 상기 데이터 도메인 네임을 포함하는 데이터 요청을 수신하는 단계; 상기 데이터 공유 서버가, 수신된 데이터 도메인 네임에 대응하는 암호화된 데이터를 상기 블록체인 네트워크로부터 수신하여 상기 데이터 공유 대상자의 통신 단말로 전송하는 단계; 및 상기 데이터 공유 서버가, 상기 데이터 공유 대상자의 통신 단말로부터 수신되는 개인 도메인 네임에 기초하여 상기 블록체인 네트워크로부터 상기 데이터 공유 대상자의 복호키를 수신하고 상기 데이터 공유 대상자의 통신 단말로 전송하는 단계를 포함한다.
각 사용자의 개인 도메인 네임과 상기 복호키를 상기 블록체인 네트워크에 전송하는 단계는, 상기 데이터 공유 서버가, 통신 단말의 고유 식별정보와 사용자가 입력한 도메인 네임을 토대로 통신 단말에서 생성된 개인 도메인 네임을 상기 복수의 통신 단말 각각으로부터 수신하고, 상기 수신한 개인 도메인 네임과 상기 복호키를 상기 블록체인 네트워크에 전송할 수 있다.
상기 공유 대상자의 복호키를 수신하고 상기 데이터 공유 대상자의 통신 단말로 전송하는 단계는, 상기 데이터 공유 대상자의 통신 단말로부터 수신된 개인 도메인 네임을 기 저장된 개인 도메인 네임과 비교하여 인증하고, 인증 성공시에 개인 도메인 네임에 기초하여 상기 블록체인 네트워크로부터 상기 데이터 공유 대상자의 복호키를 수신할 수 있다.
상기 데이터 소유주의 통신 단말로부터 암호화된 데이터를 수신하는 것은, 상기 데이터 공유 서버가, 상기 데이터 소유주의 통신 단말로부터, 상기 데이터 소유주가 지정한 적어도 하나의 데이터 공유 대상자의 속성 정보의 액세스 트리에 기초하여 암호화된 데이터를 수신할 수 있다.
상기 방법은, 상기 데이터 공유 서버가, 상기 암호화된 데이터에 접근 권한이 없는 사용자의 통신 단말로부터 데이터 도메인 네임을 수신하는 단계; 상기 데이터 공유 서버가, 상기 데이터 소유주의 통신 단말로 상기 접근 권한이 없는 사용자에 대한 접근 허가 요청을 전송하는 단계; 상기 데이터 공유 서버가, 상기 접근 권한이 없는 사용자의 속성 정보의 액세스 트리에 기초하여 암호화된 데이터를 상기 데이터 소유주의 통신 단말로부터 수신하여 상기 접근 권한이 없는 사용자의 통신 단말로 전송하는 단계; 및 상기 데이터 공유 서버가, 상기 접근 권한이 없는 사용자의 통신 단말로부터 수신되는 개인 도메인 네임에 기초하여 상기 블록체인 네트워크로부터 해당 사용자의 복호키를 수신하고 해당 사용자의 통신 단말로 전송하는 단계를 포함할 수 있다.
상기 접근 권한이 없는 사용자의 속성 정보의 액세스 트리에 기초하여 암호화된 데이터는, 상기 접근 권한이 없는 사용자의 개인 도메인 네임이 워터마크로서 삽입될 수 있다.
상기 목적을 달성하기 위한 본 발명의 제2측면에 따른, 복수의 통신 단말 및 블록체인 네트워크와 통신하여 데이터를 공유하는 장치는, 상기 복수의 통신 단말 각각에 대한 사용자의 속성 정보를 확인하고, 상기 복수의 통신 단말 각각의 사용자의 속성 정보를 이용하여 각 사용자의 복호키를 생성하는 키 관리부; 각 사용자의 개인 도메인 네임과 상기 키 관리부에서 생성한 각 사용자의 복호키를 상기 블록체인 네트워크에 전송하며, 데이터 소유주의 통신 단말로부터 암호화된 데이터를 수신하고 상기 암호화된 데이터에 고유하게 대응하는 데이터 도메인 네임을 생성하여 상기 암호화된 데이터와 함께 상기 블록체인 네트워크에 전송하는 도메인 관리부; 및 데이터 공유 대상자의 통신 단말로부터 상기 데이터 도메인 네임을 포함하는 데이터 요청을 수신하여, 상기 수신한 데이터 도메인 네임에 대응하는 암호화된 데이터를 상기 블록체인 네트워크로부터 획득하여 상기 데이터 공유 대상자의 통신 단말로 전송하는 데이터 제공부를 포함한다.
상기 키 관리부는, 상기 데이터 공유 대상자의 통신 단말로부터 수신되는 개인 도메인 네임에 기초하여 상기 블록체인 네트워크로부터 상기 데이터 공유 대상자의 복호키를 수신하고 상기 데이터 공유 대상자의 통신 단말로 전송한다.
본 발명은 사용자 데이터를 암호화하여 블록체인에 저장하되, 사용자 데이터의 열람이 허락된 기관 또는 타 사용자에게 암호화된 데이터를 복호화할 수 있는 복호키를 제공함으로써, 블록체인에 저장된 데이터의 보안성을 향상시키는 장점이 있다.
또한, 본 발명은 주소창에 도메인 네임을 입력하는 것에 의해, 사용자 데이터가 블록체인에 업로드 되거나 블록체인에서 사용자 데이터가 획득되게 함으로써, 데이터 업로드/다운로드에 있어서의 편의성을 향상시키는 장점이 있다.
게다가, 본 발명은 개인 도메인 네임을 워터마크 형태로 사용자 데이터에 기록함으로써, 데이터 불법 유출지를 추적할 수 있는 효과도 있다.
본 명세서에 첨부되는 다음의 도면들은 본 발명의 바람직한 실시예를 예시하는 것이며, 발명을 실시하기 위한 구체적인 내용과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되어서는 아니 된다.
도 1은 본 발명의 일 실시예에 따른, 데이터 공유 시스템을 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른, 개인 도메인 네임을 블록체인에 저장하는 방법을 설명하는 흐름도이다.
도 3은 액세스 트리를 예시하는 도면이다.
도 4는 본 발명의 일 실시예에 따른, 암호화된 데이터를 블록체인에 저장하는 방법을 설명하는 흐름도이다.
도 5는 본 발명의 일 실시예에 따른, 통신 단말에서 복호키를 획득하는 방법을 설명하는 흐름도이다.
도 6은 본 발명의 일 실시예에 따른, 통신 단말에서 사용자 데이터를 획득하는 방법을 설명하는 흐름도이다.
도 7은 본 발명의 다른 실시예에 따른, 통신 단말에서 사용자 데이터를 획득하는 방법을 설명하는 흐름도이다.
도 8은 본 발명의 일 실시예에 따른, 데이터 공유 서버의 구성을 나타내는 도면이다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른, 데이터 공유 시스템을 나타내는 도면이다.
도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 데이터 공유 시스템은 복수의 통신 단말(100, 200), 데이터 공유 서버(300) 및 블록체인 네트워크(400)를 포함하여, 이러한 구성요소들은 통신망(500)을 통해서 서로 통신한다. 상기 통신망(500)은 유선 인터넷망과 이동통신망을 포함한다.
블록체인 네트워크(400)는 복수의 노드들이 연결되어 있으며, 트랜잭션 처리를 수행한다. 또한, 블록체인 네트워크(400)에 속하는 각 노드들은 트랜잭션이 발생하면, 이 트랜잭션에 대한 검증하고 트랜잭션이 포함된 블록을 블록체인에 저장한다. 블록체인 네트워크(400)에 포함된 각 노드들은 트랜잭션이 기록되며 블록 간에 연결 구조를 가지는 블록체인을 서로 공유한다. 상기 트랜잭션은 개인 도메인 네임이 등록/삭제/변경되거나, 데이터가 저장되거나 데이터가 제공될 때에 발생된다. 또한, 상기 블록에는 사용자의 공개키, 개인 도메인 네임 및 복호키가 포함될 수 있다. 또한, 블록에는 데이터 도메인 네임 및 암호화된 사용자 데이터가 포함될 수 있다. 상기 블록체인은 데이터 체인을 더 포함할 수 있으며, 이 경우, 암호화된 데이터는 상기 데이터 체인에 저장될 수 있다.
여기서, 개인 도메인 네임은 사용자를 식별하기 위한 고유의 식별정보로서 이용되고, 데이터 도메인 네임은 사용자의 데이터를 식별하기 위한 고유의 식별정보로서 이용된다.
블록체인을 구성하는 블록은 블록 헤더와 트랜잭션으로 구성된다. 블록 헤더는 이전 블록 해시값, 머클루트(Merkle Root), 난스(Nonce), 타임스탬프를 포함한다. 상기 이전 블록 해시는 블록체인 구조에서 이전 블록(즉, 부모 블록)에 대한 해시 참조값을 나타낸다. 머클루트는 머클 트리 루트에 대한 해시(hash)이다. 타임 스탬프는 블록의 생성시간이 기록된다. 트랜잭션에는, 사용자의 공개키, 개인 도메인 네임 및 복호키가 포함될 수 있다. 또한, 트랜잭션에는 데이터 도메인 네임과 암호화된 사용자 데이터가 포함될 수 있다.
통신 단말(100, 200)은 스마트폰, 태블릿 컴퓨터, 개인용 컴퓨터, 서버 등과 같은 통신 장치로서, 상기 통신 단말(100, 200)에는 데이터 공유를 위한 애플리케이션이 설치되어, 본 발명의 데이터 공유 서비스를 지원한다. 상기 통신 단말(100, 200)은 사용자 전용의 개인키와 공개키를 생성하여 저장한다. 각각의 사용자는 상기 통신 단말(100, 200)에 설치된 상기 애플리케이션을 이용하여 개인 도메인 네임을 등록할 수 있다. 또한, 통신 단말(100, 200)은 각 그룹의 속성 정보가 정의된 액세스 트리(도 3을 참조)를 저장한다. 상기 속성 정보는 각 그룹 또는 개인에게 부여된 문자열 또는 숫자열이거나 문자와 숫자가 조합된 데이터일 수 있다. 상기 액세스 트리는 사전에 설정되어, 본 서비스에 적용되는 데이터 공유 서버(300)와 복수의 통신 단말(100, 200) 각각에 저장될 수 있다. 또한, 통신 단말(100, 200)은 타 사용자의 데이터를 데이터 공유 서버(300)로부터 획득하여, 이 획득한 데이터를 복호키로 복호화할 수 있다.
또한, 통신 단말(100, 200)은 사용자 데이터를 타 사용자와 공유하고자 하는 경우, 저장중인 액세스 트리에서 공유하고자 하는 하나 이상의 그룹을 사용자로부터 선택받고, 선택한 각 그룹의 속성 정보와 해당 그룹의 상위 노드의 속성 정보를 이용하여 사용자 데이터를 속성 기반으로 암호화하고, 상기 속성 기반으로 암호화된 사용자 데이터를 데이터 공유 서버(300)로 전송한다. 이때, 통신 단말(100, 200)은 IEEE에서 공지한 CP-ABE(Ciphertext-Policy Attribute-Based Encryption)를 이용하여, 사용자 데이터를 속성 기반으로 암호화한다. IEEE에서 "2007 IEEE Symposium on Security and Privacy(SP'07), Print ISBN: 0-7695-2848-1"으로 발행한 "Ciphertext-Policy Attribute-Based Encryption"에서 속성 기반으로 데이터를 암호화하는 방식과 속성 기반으로 복호키를 생성하는 방법이 자세하게 기술되어 있다. 따라서, 이하에서는 속성 정보를 이용하여 복호키를 생성하는 방법과 데이터를 암호화하는 방법에 대한 자세한 설명은 생략한다.
데이터 공유 서버(300)는 속성 기반으로 생성되는 복호키와 속성 기반으로 암호화된 사용자 데이터를 블록체인 네트워크(400)에 저장하고, 더불어 개인 도메인 네임과 데이터 도메인 네임을 관리하는 기능을 수행한다. 또한, 데이터 공유 서버(300)는 데이터 공유를 위한 기초 자료를 저장한다. 즉, 데이터 공유 서버(300)는 액세스 트리에 정의된 각 그룹의 속성 정보를 저장하고, 더불어 'AND' or 'OR'로서 정의되는 중간 노드 또는 상위 노드에 대한 속정 정보를 저장할 수 있다. 또한, 데이터 공유 서버(300)는 회원 정보를 저장한다. 상기 회원 정보에는 사용자의 로그인 아이디, 패스워드, 사용자에게 부여한 속성 정보 등의 회원 정보가 포함된다. 여기서, 사용자에게 부여된 속성 정보는 사용자가 소속된 그룹의 속성 정보와 동일할 수 있다. 예를 들어, 사용자가 신경외과에 소속되는 경우, 사용자에게 신경외과에 해당하는 속성 정보가 부여될 수 있다.
상기 데이터 공유 서버(300)는 사용자의 속성 정보를 기반으로 복호키를 생성하고, 상기 사용자의 개인 도메인 네임, 사용자 공개키 및 상기 생성한 복호키를 블록체인에 함께 저장한다. 또한, 데이터 공유 서버(300)는 사용자가 암호화된 데이터의 업로드를 요청하면, 이 암호화된 데이터 전용의 데이터 도메인 네임을 생성하고, 이 데이터 도메인 네임과 암호화된 데이터를 블록체인에 저장한다.
또한, 데이터 공유 서버(300)는 접속한 통신 단말(100, 200)을 로그인 인증을 수행할 수 있으며, 더불어 복호키를 요청한 통신 단말(100, 200)을 개인 도메인을 이용하여 인증할 수도 있다.
이하, 도 2 내지 도 7을 참조한 설명에서, 데이터를 공유하는 공유자(즉, 제1사용자)가 소유한 통신 단말을 제1통신 단말(100)인 것으로, 상기 공유자의 데이터를 요청하는 요청자(즉, 제2사용자)의 통신 단말이 제2통신 단말(200)인 것으로 지칭하여 설명한다. 또한, 제1사용자와 제2사용자가 데이터 공유 서버(300)에 이미 회원 등록된 사용자인 것으로 설명한다.
도 2는 본 발명의 일 실시예에 따른, 개인 도메인 네임을 블록체인에 저장하는 방법을 설명하는 흐름도이다.
도 2를 참조하면, 제2통신 단말(200)은 데이터 공유 서버(300)로 로그인에 성공한 후, 사용자 전용의 개인키와 공개키를 생성한다(S201). 다음으로, 제2통신 단말(200)은 제2사용자로부터 도메인 네임을 입력받아, 상기 입력받은 도메인을 토대로 개인 도메인 네임을 생성한다(S203). 상기 제2통신 단말(200)은 제2사용자로부터 도메인 네임을 입력받으면, 도메인 네임 뒤에 개인 도메인 식별코드(예컨대, kt.tin)를 덧붙일 수 있다. 예컨대, 제2사용자가 'mycamera'라는 도메인 네임을 입력하는 경우, 제2통신 단말(100)은 상기 'mycaemra' 뒤에 개인 도메인 코드인 'kt.tin'를 덧붙여, 'mycaemra.kt.tin'이라는 개인 도메인 네임을 생성할 수 있다. 또한, 제2통신 단말(200)은 제2사용자로부터 입력받은 도메인 네임과 자신의 고유 식별정보를 결합하여 개인 도메인 네임을 생성할 수 있다. 다른 실시형태로서, 데이터 공유 서버(300)가 제2통신 단말(200)로부터 도메인 네임을 수신한 후, 상기 도메인 네임에 상기 개인 도메인 식별코드를 덧붙이거나 상기 제2통신 단말(200)의 식별정보를 결합하여 개인 도메인 네임을 생성할 수도 있다.
이어서, 제2통신 단말(200)은 상기 개인 도메인 네임 및 사용자 공개키를 포함하는 도메인 등록 요청 메시지를 데이터 공유 서버(300)로 전송한다(S205).
그러면, 데이터 공유 서버(300)는 상기 제2사용자의 로그인 아이디를 확인하고, 이 로그인 아이디로 토대로 상기 제2사용자에게 부여된 속성 정보를 회원 정보에서 확인한다(S207). 다음으로, 데이터 공유 서버(300)는 제2사용자의 속성 정보를 시드(seed)로서 이용하여 속성 기반의 복호키를 생성한다(S209). 상기 복호키는 일종의 비밀키로서, 속성 집합이 만족된 암호화된 데이터(즉, 타 사용자가 이용을 허락하여 속성 기반으로 암호화시킨 데이터)를 정상적으로 복호화할 수 있다.
도 3은 사용자가 데이터를 공유하도록 허락한 그룹에 대한 액세스 트리를 예시하는 도면으로서, 도 3에 예시된 바와 같이, 액세스 트리의 리프 노드(leaf node)는 특정 그룹으로 정의될 수 있다. 각각의 리프 노드에 대응되는 그룹은 사용자가 선택하여 변경할 수 있다. 또한, 각각의 리프 노드의 그룹에는 서로 다른 속성 정보가 할당될 수 있다. 더불어 리프 노드의 관계를 연결하는 상위 노드는 OR 노드 또는 AND 노드로 정의될 수 있으며, 상위 노드에 대한 속성 정보가 액세스 트리에 기록된다. 이러한 액세스 트리는, 데이터 공유 서버(300)와 각 통신 단말(100, 200) 간에 공유되고, 사용자는 액세스 트리의 리프 노드에 해당하는 그룹을 공유 그룹으로서 선택하여 변경할 수 있다.
다음으로, 데이터 공유 서버(300)는 상기 생성한 복호키, 상기 사용자 공개키 및 상기 개인 도메인 네임을 포함하는 도메인 등록 트랜잭션을 블록체인 네트워크(400)로 발생시킨다(S211). 이때, 데이터 공유 서버(300)는 자신의 개인키로 전자 서명한 전자 서명값을 상기 도메인 등록 트랜잭션에 포함시킬 수 있다.
그러면, 블록체인 네트워크(400)에 포함된 각 노드들은 상기 도메인 등록 트랜잭션에 포함된 전자 서명의 진위를 검증하여 검증에 성공하면, 각 노드들은 상기 개인 도메인 네임과 상기 사용자 공개키 모두를 포함하는 블록이 블록체인에 저장되어 사용중인지 여부를 확인함으로써, 개인 도메인 네임에 대한 중복 체크를 수행한다(S213). 여기서, 블록체인 네트워크(400)는 개인 도메인 네임만을 중복 체크하는 것이 아니라 사용자 공개키와 개인 도메인 네임을 모두 가지고 있는 블록이 존재하는지 여부를 체크한다. 부연하면, 개인 도메인 네임은 동일하더라도 사용자 공개키가 다르면, 본 서비스에서 사용될 수 있다. 즉, 본 발명에서는 사용자가 서로 상이하여 사용자 공개키가 서로 다른 경우에는, 동일한 개인 도메인이 사용자들 간에 사용될 수 있다.
다음으로, 상기 중복 체크 결과, 사용자 공개키와 개인 도메인 네임 모두를 가지는 블록이 블록체인에 존재하여 이미 사용중에 있으면, 블록체인 네트워크(400)는 개인 도메인 네임이 중복됨을 데이터 공유 서버(300)로 알리고, 데이터 공유 서버(300)는 개인 도메인 네임의 재설정을 제2통신 단말(200)로 요구한다.
반면에, 블록체인 네트워크(400)는 중복 체크 결과, 사용자 공개키와 개인 도메인 네임 모두를 가지는 블록이 블록체인에 존재하지 않으면, 상기 도메인 등록 트랜잭션을 가지는 블록을 생성하고, 이 생성한 블록을 기존 블록과 연결함으로써, 개인 도메인 네임과 사용자 공개키를 블록체인에 저장한다(S215). 그리고 블록체인 네트워크(400)는 도메인 등록 성공을 데이터 공유 서버(300)로 알린다(S217).
그러면, 데이터 공유 서버(300)는 상기 제2사용자의 회원 정보와 연관하여 상기 제2사용자의 개인 도메인 네임을 저장하고, 도메인 등록 성공 응답을 제2통신 단말(200)로 통보한다(S219). 이때, 데이터 공유 서버(300)는 S209 단계에서 생성한 복호키를 폐기하여, 복호키가 블록체인에만 저장되도록 관리할 수 있다.
개인 도메인 네임이 등록되면, 제2사용자는 제2통신 단말(200)을 이용하여, 개인 도메인 네임을 수정하거나 삭제할 수 있다. 개인 도메인 네임이 변경되면, 도 2와 유사한 절차를 통해서, 데이터 공유 서버(300)는 사용자 개인키로 서명된 전자 서명, 사용자 공개키 및 변경된 개인 도메인 네임을 포함하는 도메인 변경 트랜잭션으로 블록체인 네트워크(400)로 발생시킨다. 그러면, 블록체인 네트워크(400)에서 전자 서명 검증에 성공하면, 상기 도메인 변경 트랜잭션에 포함된 개인 도메인 네임으로 기존의 개인 도메인 네임을 변경하는 블록을 생성하고, 이 블록과 기존의 블록을 연결하여 블록체인을 확장한다.
한편, 제2사용자가 제2통신 단말(200)을 이용하여 개인 도메인 네임을 삭제하면, 데이터 공유 서버(300)는 사용자 개인키로 서명된 전자 서명 및 사용자 공개키를 포함하는 도메인 삭제 트랜잭션을 블록체인 네트워크(400)로 발생시키고, 블록체인 네트워크(400)는 전자 서명을 검증한 후에 전자 서명에 성공하면, 제2사용자의 개인 도메인 네임을 삭제하는 블록을 생성하고 기존의 블록과 연결하여 블록체인에 저장한다.
도 2와 같은 절차를 통해서, 제2사용자 뿐만 아니라, 타 사용자의 속성 정보를 기반으로 생성된 복호키가 타 사용자의 개인 도메인 네임과 블록체인 네트워크(400)에 저장된다. 즉, 도 2와 같은 절차를 통해서, 각 사용자의 복호키와 개인 도메인 네임이 블록체인 네트워크(400)에 저장된다. 예를 들어, 제1사용자의 복호키와 해당 제1사용자의 개인 도메인 네임이 매핑되어 블록체인 네트워크(400)에 저장되고, 또한 제2사용자의 복호키와 해당 제2사용자의 개인 도메인 네임이 매핑되어 블록체인 네트워크(400)에 저장된다. 이하에서 설명하는 바와 같이, 각 사용자는 자신의 개인 도메인 네임을 통신 단말에 입력하여 데이터 공유 서버(300)로 자신의 복호키를 요청하여 수신한 후, 타 사용자가 공유하는 속성 기반으로 암호화된 데이터를 복호화할 수 있다.
도 4는 본 발명의 일 실시예에 따른, 암호화된 데이터를 블록체인에 저장하는 방법을 설명하는 흐름도이다.
도 4를 참조하면, 제1통신 단말(100)은 공유되는 대상인 제1사용자 데이터를 선택받고, 더불어 제1사용자 데이터가 공유되는 그룹을 액세스 트리에서 선택받는다(S401).
도 3을 다시 참조하면, 제1통신 단말(100)은 액세스 트리에서 리프 노드(즉, 그룹)을 선택할 수 있는 사용자 인터페이스를 화면에 출력하고, 이 사용자 인터페이스에서 제1사용자로부터 하나 이상의 공유 그룹을 선택받을 수 있다. 상기 사용자 인터페이스에서는 상위 그룹으로 병원을 선택할 수 있는 입력 선택지 및 하위 그룹으로서 복수의 분과를 선택할 수 입력 선택지를 포함할 수 있다. 또한, 상기 사용자 인터페이스에는 또 다른 상위 그룹으로서 보험 회사를 선택할 있는 입력 선택지 및 하위 그룹으로서 보험 회사의 부서를 선택할 수 있는 입력 선택지를 포함할 수 있다. 도 3는, 제1사용자가 병원 그룹으로서 'A 병원'을 선택하고 분과로서 '신경 외과'와 '정형 외과'를 모두 선택한 것으로 예시한다. 또한, 도 3은 제1사용가 보험 회사 그룹으로서 'A 보험사'를 선택하고, 더불어 보험회사 부서로서 'B 부서'를 선택한 것으로 예시한다. 즉, 제1사용자의 암호화된 데이터는 A 병원의 신경 외과 또는 정형 외과에서 복호화할 수 있고, 또는 A 보험사의 B 부서에서 복호화할 수 있도록 설정하는 것이다.
다시 도 4를 참조하면, 제1통신 단말(100)은 상기 선택받은 각 그룹(즉, 공유 허락된 그룹)의 속성 정보와 리프 노드(즉, 그룹 노드)를 연결하는 상위 노드(즉, OR 또는 AND)의 속성 정보를 확인하고(S403), 각각의 속성 정보를 시드로서 이용하여 상기 제1사용자의 데이터를 속성 기반으로 암호화한다(S405). 즉, 제1통신 단말(100)은 공유 허락된 그룹에서 보유할 수 있는 복호키(즉, 속성 기반의 복호키)가, 제1사용자 데이터의 속성 집합을 만족하여 상기 제1사용자 데이터를 정상적으로 복호화할 수 있도록, 상기 제1사용자 데이터를 속성 기반으로 암호화한다. 제1사용자 공유 그룹으로서 선택한 그룹이 도 3과 같으면, 제1통신 단말(100)은 A 병원의 신경외과, A 병원의 정형외과, A 보험사의 B 부서 중 어느 하나의 소속된 타 사용자가 제1사용자의 데이터를 열람할 수 있도록, 상기 제1사용자 데이터를 속성 기반으로 암호화한다.
다음으로, 제1통신 단말(100)은 상기 암호화한 제1사용자 데이터가 포함된 데이터 업로드 요청 메시지를 데이터 공유 서버(300)로 전송한다(S407).
그러면, 데이터 공유 서버(300)는 상기 제1사용자의 로그인 아이디를 토대로 제1사용자를 식별하고, 업로드 요청된 데이터를 식별하기 위한 데이터 도메인 네임을 생성한다(S409). 이때, 데이터 공유 서버(300)는 현재 일시와 상기 데이터명(즉, 파일명)을 조합하여, 상기 데이터 도메인 네임을 생성할 수 있다. 다음으로, 데이터 공유 서버(300)는 상기 로그인 아이디와 연관하여, 상기 생성한 데이터 도메인 네임을 저장한다. 그리고 데이터 공유 서버(300)는 상기 데이터 도메인 네임 및 암호화된 제1사용자 데이터를 포함하는 데이터 업로드 트랜잭션을 블록체인 네트워크(400)로 발생시킨다(S411). 이때, 데이터 공유 서버(300)는 자신의 개인키로 전자 서명한 전자 서명값을 상기 데이터 업로드 트랜잭션에 포함시킬 수 있다.
그러면, 블록체인 네트워크(400)에 포함된 각 노드들은 상기 데이터 업로드 트랜잭션에 포함된 전자 서명을 검증하고 검증에 성공하면, 각 노드들은 상기 데이터 업로드 트랜잭션을 가지는 블록을 생성하고, 이 생성한 블록을 기존 블록과 연결함으로써, 데이터 도메인 네임과 속성 기반으로 암호화된 제1사용자의 데이터를 블록체인에 저장한다(S413). 이에 따라, 제1통신 단말(100)에서 속성 기반으로 암호화한 제1사용자의 데이터는 데이터 도메인 네임과 함께 블록체인에 저장된다.
데이터 공유 서버(300)는 암호화된 제1사용자 데이터가 정상적으로 블록체인에 저장되면, 상기 데이터 도메인 네임을 상기 제1사용자의 로그인 아이디와 연관하여 자체적으로 저장하고, 상기 암호화된 제1사용자 데이터를 폐기한다. 또한, 데이터 공유 서버(300)는 상기 상기 생성한 데이터 도메인 네임을 제1통신 단말(100)로 전송하여, 상기 데이터 도메인 네임을 제1사용자에게 알린다.
도 4와 같은 절차를 통해서, 제1사용자는 공유하고자 하는 자신의 데이터를 속성 기반으로 암호화하여 이 암호화된 데이터를 블록체인에 저장한다.
제2통신 단말(200)이 제1사용자 데이터를 획득하여 복호화하는 과정이 도 5 및 도 6을 통해서 후술된다.
도 5는 본 발명의 일 실시예에 따른, 통신 단말에서 복호키를 획득하는 방법을 설명하는 흐름도이다.
도 5를 참조하면, 제2사용자는 속성 기반의 복호키를 획득하기 위하여, 제2통신 단말(200)의 브라우저의 주소창에 상기 제2사용자의 도메인 네임을 입력한다(S501). 그러면, 제2통신 단말(200)은 상기 도메인 네임을 토대로 개인 도메인 네임을 생성한다. 이때, 제2통신 단말(200)은 제2사용자로부터 입력받은 도메인 네임에 자신의 고유 식별정보, 개인 도메인 식별코드 중 하나 이상을 결합하여 개인 도메인 네임을 생성할 수 있다.
이어서, 제2통신 단말(200)은 저장중인 제2사용자의 공개키를 추출하고, 상기 개인 도메인 네임과 상기 제2사용자의 공개키가 포함된 복호키 요청 메시지를 데이터 공유 서버(300)로 전송한다(S503).
다음으로, 데이터 공유 서버(300)는 상기 복호키 요청 메시지에 포함된 제2사용자의 공개키와 개인 도메인 네임을 확인한 후, 상기 개인 도메인 네임을 토대로 사용자를 인증한다. 이때, 상기 데이터 공유 서버(300)는 상기 제2통신 단말(200)의 로그인 아이디를 토대로, 사전에 저장중인 제2통신 단말(200)의 개인 도메인 네임을 확인하고, 이렇게 확인한 개인 도메인 네임과 제2통신 단말(200)로부터 수신한 개인 도메인 네임이 일치하는지 여부를 인증할 수 있다.
데이터 공유 서버(300)는 개인 도메인 네임을 토대로 수행한 사용자 인증에 실패하면, 복호키를 제공하지 않고 제2통신 단말(200)로 인증 실패 메시지를 전송한다.
반면에, 데이터 공유 서버(300)는 개인 도메인 네임을 토대로 수행한 사용자 인증에 성공하면, 상기 제2사용자의 개인 도메인 네임과 공개키를 포함하는 복호키 요청 트랜잭션을 블록체인 네트워크(400)로 발생시킨다(S505). 상기 데이터 공유 서버(300)는 자신의 개인키로 전자 서명한 전자 서명값을 상기 복호키 요청 트랜잭션에 포함시킬 수 있다.
그러면, 블록체인 네트워크(400)에 포함된 각 노드들은 상기 복호키 요청 트랜잭션에 포함된 전자 서명의 진위를 검증하고 검증에 성공하면, 각 노드들은 상기 복호키 요청 트랜잭션을 가지는 블록을 생성하고, 이 생성한 블록을 기존 블록과 연결함으로써, 상기 복호키 요청에 대한 기록을 블록체인에 남긴다. 그리고 블록체인 네트워크(400)는 상기 제2사용자의 개인 도메인 네임 및 상기 제2사용자의 공개키를 포함하는 블록을 블록체인에서 확인하고, 상기 블록에서 복호키를 추출한다. 이어서, 블록체인 네트워크(400)는 상기 추출한 복호키를 데이터 공유 서버(300)로 전송한다(S507).
그러면, 데이터 공유 서버(300)는 제2통신 단말(200)의 공개키를 암호키로서 설정하여, 상기 수신한 복호키를 암호화한다(S509). 이어서, 데이터 공유 서버(300)는 상기 암호화된 복호키를 제2통신 단말(200)로 전송한다(S511).
다음으로, 제2통신 단말(200)은 데이터 공유 서버(300)로부터 수신한 암호화된 복호키를 자신의 개인키를 이용하여 복호화하고, 이 복호화된 복호키를 저장하다(S513).
도 5과 같은 절차를 통해서, 제2통신 단말(200)은 제1사용자 데이터를 복호화할 수 있는 속성 기반의 복호키를 획득할 수 있다.
도 6은 본 발명의 일 실시예에 따른, 통신 단말에서 사용자 데이터를 획득하는 방법을 설명하는 흐름도이다.
도 6을 참조하면, 제2사용자는 데이터 제공자(즉, 제1사용자)로부터 데이터 도메인 네임을 전달받고, 제2통신 단말(200)의 브라우저의 주소창에 상기 데이터 도메인 네임을 입력한다(S601). 그러면, 제2통신 단말(200)은 상기 데이터 도메인 네임이 포함된 데이터 요청 메시지를 데이터 공유 서버(300)로 전송한다(S603).
다음으로, 데이터 공유 서버(300)는 블록체인에서 제1사용자 데이터를 획득하기 위해, 자신의 개인키로 전자 서명을 수행하고 상기 전자 서명값 및 상기 데이터 도메인 네임을 포함하는 데이터 요청 트랜잭션을 블록체인 네트워크(400)로 발생시킨다(S605).
그러면, 블록체인 네트워크(400)에 포함된 각 노드들은 상기 전자 서명에 대한 진위를 검증하고 검증에 성공하면, 상기 데이터 요청 트랜잭션을 포함하는 신규 블록을 생성하고, 이 신규 블록을 기존의 블록과 연결함으로써, 블록체인에 상기 정보 요청 트랜잭션을 저장한다. 그리고 블록체인 네트워크(400)는 상기 데이터 요청 트랜잭션에 포함된 데이터 도메인 네임을 확인하고, 이 데이터 도메인 네임을 포함하는 블록을 블록체인에서 추출하고, 이 블록에서 속성 기반으로 암호화된 제1사용자 데이터를 추출한다. 그리고 블록체인 네트워크(400)는 상기 암호화된 제1사용자 데이터를 데이터 공유 서버(300)로 전송한다(S607).
이어서, 데이터 공유 서버(300)는 블록체인 네트워크(400)로부터 수신한 속성 기반으로 암호화된 제1사용자 데이터를 제2통신 단말(200)로 전송한다(S609).
그러면, 제2통신 단말(200)은 도 5의 S513 단계에서 획득하여 복호화한 복호키를 이용하여, 상기 속성 기반으로 암호화된 제1사용자 데이터를 복호화를 시도한다(S611). 상기 제2통신 단말(200)는 상기 복호키가 상기 속성 기반으로 암호화된 제1사용자 데이터의 속성 집합에 만족되면, 상기 제1사용자 데이터를 정상적으로 복호화할 수 있다. 즉, 제1통신 단말(100)이 제1사용자 데이터를 암호화할 때, 상기 제2사용자의 속성 정보를 공유 허락하는 정보로서 설정하여(즉, 제2사용자가 소속된 단체를 공유 허락 단체로서 선택하여) 상기 제1사용자 데이터를 속성 기반으로 암호화한 경우, 상기 제1통신 단말(100)은 상기 속성 정보를 기반으로 생성된 상기 복호키를 이용하여 상기 제1사용자 데이터를 정상적으로 복호화할 수 있다.
이러한 과정을 통해서, 제2통신 단말(200)은 속성 기반으로 암호화된 제1사용자 데이터를 획득하여 복호화를 시도한 후, 이 복호화에 성공하면 제1사용자 데이터를 이용할 수 있다.
한편, 제2통신 단말(200)은 접근이 허락되지 않은 제1사용자 데이터를 제1사용자의 허락에 따라 선택적으로 복호화할 수도 있다.
도 7은 본 발명의 다른 실시예에 따른, 통신 단말에서 사용자 데이터를 획득하는 방법을 설명하는 흐름도이다.
도 7을 참조하면, 제2통신 단말(200)은 자신이 보유하는 복호키로 제1사용자 데이터를 복호화할 수 없는 경우, 제1사용자 단말(100)로 데이터의 접근을 요청할 수 있다. 이때, 제2통신 단말(200)은 제1사용자의 데이터 도메인 네임을 제2사용자로부터 입력받고(S701), 상기 데이터 도메인 네임이 포함된 데이터 접근 요청 메시지를 데이터 공유 서버(300)로 전송한다(S703).
그러면, 데이터 공유 서버(300)는 데이터 접근 요청 메시지가 수신됨에 따라, 상기 데이터 접근 요청 메시지에 포함된 데이터 도메인 네임을 확인하고, 사전에 저장중인 회원 정보에서 상기 데이터 도메인 네임과 관련된 데이터의 실소유자를 확인한다(S705). 도 7에서는 상기 데이터 도메인 네임과 관련된 데이터의 실소유주가 제1사용자인 것으로 설명된다.
다음으로, 데이터 공유 서버(300)는 제2통신 단말(200)로 데이터 접근을 허락할 것인지를 문의하는 메시지를 제1통신 단말(100)로 전송한다(S707). 이때, 데이터 공유 서버(300)는 상기 제1통신 단말(100)로 상기 데이터 도메인 네임을 전달할 수 있다.
그러면, 제1통신 단말(100)은 제2통신 단말(200)이 상기 데이터 도메인 네임을 가지는 데이터로의 접근을 요구하였음 나타내는 메시지를 화면에 출력하고, 제1사용자로부터 접근 승인 또는 접근 불승인을 입력받는다.
제1통신 단말(100)은 제1사용자로부터 접근 불승인을 입력받은 경우, 데이터 공유 서버(300)로 데이터 접근 불가 메시지를 전송한다. 그러면, 데이터 공유 서버(300)는 제2통신 단말(200)이 요구한 제1사용자 데이터를 제공하지 않고, 제1사용자의 데이터로 접근이 불가능함을 통보한다.
반면에, 제1통신 단말(100)은 제1사용자로부터 접근 승인을 입력받은 경우, 제1통신 단말(100)은 상기 제2사용자의 개인 도메인 네임과 속성 정보를 질의하고, 데이터 공유 서버(300)는 제2사용자의 로그인 아이디와 관련된 개인 도메인 네임과 속성 정보를 확인하여 이 제2사용자의 개인 도메인 네임과 속성 정보를 제1통신 단말(100)로 전송한다(S709, S711).
이어서, 제1통신 단말(100)은 상기 데이터 도메인 네임과 대응하며, 제2통신 단말(200)이 요구한 제1사용자 데이터를 확인하고, 상기 제1사용자 데이터에 상기 제2사용자의 개인 도메인 네임을 워터마크로 삽입한다. 이어서, 제1통신 단말(100)은 제2사용자의 속성 정보를 시드(seed)로서 이용하여 상기 제1사용자의 데이터를 속성 기반으로 암호화한다(S713). 즉, 제1통신 단말(100)은 상기 제2사용자가 보유한 속성 기반의 복호키가, 제1사용자 데이터의 속성 집합을 만족하여 상기 제1사용자 데이터의 정상적으로 복호화할 수 있도록, 상기 제1사용자 데이터를 속성 기반으로 암호화한다.
이어서, 제1통신 단말(100)은 상기 속성 기반으로 암호화된 제1사용자 데이터를 데이터 공유 서버(300)로 전송하고(S715), 데이터 공유 서버(300)는 상기 암호화된 제1사용자 데이터를 제2통신 단말(200)로 전송한다(S717).
그러면, 제2통신 단말(200)은 도 5의 S513 단계에서 획득하여 복호화한 복호키를 이용하여, 상기 속성 기반으로 암호화된 제1사용자 데이터를 정상적으로 복호화한다(S719).
이러한 과정을 통해서, 제2통신 단말(200)은 접근이 불가능한 제1사용자 데이터를 제1통신 단말(100)의 허락에 따라 획득하여 복호화한 후 이용할 수 있다.
상기 제2통신 단말(200)는 복호키를 사용하여 제1사용자 데이터를 복호화한 경우, 상기 복호키가 유출되지 않도록 폐기할 수 있다. 즉, 제2통신 단말(200)는 복호키가 사용되면 이 복호키를 폐기하고, 복호키가 다시 필요한 경우 도 5와 같은 절차를 통해서 복호키를 다시 획득할 수 있다.
한편, 제1통신 단말(100)은 데이터 공유중인 제1사용자 데이터를 공유를 중단할 수 있다. 이 경우, 제1통신 단말(100)은 제1사용자 데이터에 부여된 데이터 도메인 네임을 제1사용자로부터 입력받고, 상기 데이터 도메인 네임이 포함된 공유 중단 메시지를 데이터 공유 서버(300)로 전송한다. 그러면, 데이터 공유 서버(300)는 상기 데이터 도메인 네임을 가지는 제1사용자 데이터를 공유를 중단 처리하고, 이후에 타 통신 단말로부터 상기 데이터 도메인 네임이 포함된 데이터 요청 메시지가 수신되더라도 블록체인 네트워크(400)에서 제1사용자 데이터를 획득하지 않고 데이터 제공이 불가함을 타 통신 단말로 알릴 수 있다.
도 8은 본 발명의 일 실시예에 따른, 데이터 공유 서버의 구성을 나타내는 도면이다.
도 8에 따른 데이터 공유 서버(300)는 데이터 공유 장치로서, 도 1 내지 도 7을 참조하여 설명한 데이터 공유 서버(300)의 기능을 수행한다.
도 8을 참조하면, 데이터 공유 서버(300)는 도메인 관리부(310), 키 관리부(320), 저장부(330) 및 데이터 제공부(340)를 포함하고, 이러한 구성요소들은 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합을 통해서 구현될 수 있다.
또한, 데이터 공유 서버(300)는 하나 이상의 메모리와 프로세서를 포함할 수 있으며, 도메인 관리부(310), 키 관리부(320),및 데이터 제공부(340)는 상기 프로세서의 의해서 실행하는 프로그램 형태로 상기 메모리에 탑재될 수 있다.
저장부(330)는 메모리, 디스크 장치 등과 같은 저장수단으로서 각각의 사용자 정의한 액세스 트리를 저장한다. 또한, 저장부(330)는 사용자의 로그인 아이디, 패스워드, 사용자에게 부여한 속성 정보 등이 기록되는 회원 정보를 저장한다. 또한, 저장부(330)는 각 사용자의 개인 도메인 네임과 데이터 도메인 네임을 저장한다.
도메인 관리부(310)는 개인 도메인 네임, 데이터 도메인 네임을 각각 관리하는 기능을 수행한다. 구체적으로, 도메인 관리부(310)는 통신 단말(100, 200)로부터 개인 도메인 네임 및 사용자 공개키를 포함하는 도메인 등록 요청 메시지를 수신하여 정상적으로 개인 도메인 네임이 블록체인에 저장되면, 상기 개인 도메인 네임과 사용자의 로그인 아이디를 연관시켜 저장부(330)에 저장한다. 또한, 도메인 관리부(310)는 키 관리부(320)에서 생성한 복호키, 상기 사용자 공개키 및 상기 개인 도메인 네임을 포함하는 도메인 등록 트랜잭션을 블록체인 네트워크(400)로 발생시켜, 상기 개인 도메인 네임 및 사용자 공개키를 연관시켜 상기 복호키를 블록체인에 저장시킨다.
도메인 관리부(310)는 암호화된 데이터 업로드를 통신 단말(100, 200)로부터 요청받으면, 데이터를 식별할 수 있는 데이터 도메인 네임을 생성한 후, 상기 데이터 도메인 네임을 해당 사용자의 로그인 아이디와 연관하여 저장부(330)에 저장한다. 또한, 상기 도메인 관리부(310)는 데이터 도메인 네임이 생성되면, 상기 데이터 도메인 네임 및 속성 기반으로 암호화된 사용자 데이터를 포함하는 데이터 업로드 트랜잭션을 블록체인 네트워크(400)로 발생시켜, 상기 데이터 도메인 네임과 함께 암호화된 데이터가 블록체인에 저장되게 한다.
키 관리부(320)는 각 그룹의 복호키를 생성하는 기능을 수행한다. 키 관리부(320)는 통신 단말(100, 200)로부터 도메인 등록 요청 메시지가 수신되면, 사용자의 속성 정보를 저장부(330)에서 확인하고, 이 속성 정보를 이용하여 속성 기반의 복호키를 생성한다.
또한, 키 관리부(320)는 통신 단말(100, 200)로부터 복호키 요청 메시지를 수신하면, 상기 복호키 요청 메시지에 포함된 사용자 공개키와 개인 도메인 네임을 확인한 후, 상기 사용자 공개키 및 개인 도메인 네임을 포함하는 복호키 요청 트랜잭션을 블록체인 네트워크(400)로 발생시킨다. 또한, 키 관리부(320)는 상기 복호키 요청 트랜잭션에 대한 응답으로, 상기 사용자 공개키 및 개인 도메인 네임과 함께 저장된 복호키를 블록체인에서 획득하고, 이 획득한 복호키를 상기 통신 단말(100, 200)로 전송한다. 이때, 키 관리부(320)는 통신 단말(100, 200)의 로그인 아이디를 토대로 저장부(300)에 저장된 해당 사용자의 개인 도메인 네임을 확인하고, 저장부(330)에 저장된 개인 도메인 네임이 상기 복호키 요청 메시지에 포함된 개인 도메인 네임과 일치하는 여부를 인증하여 인증에 성공한 경우에 상기 블록체인에서 상기 복호키를 획득할 수 있다.
데이터 제공부(340)는 데이터 요청 메시지를 통신 단말(100, 200)로부터 수신하면, 상기 데이터 요청 메시지에 포함된 데이터 도메인 네임을 확인하고, 상기 데이터 도메인 네임을 포함하는 데이터 요청 트랜잭션을 블록체인 네트워크(400)로 발생시켜, 블록체인에서 암호화된 타 사용자 데이터를 획득하고, 이 획득한 타 사용자 데이터를 통신 단말(100, 200)로 제공한다.
또한, 데이터 제공부(340)는 암호화된 데이터로의 접근 권한이 없는 통신 단말(100, 200)로부터 데이터 접근 요청 메시지를 수신하면 데이터 접근 요청 메시지에 포함된 데이터 도메인 네임을 확인하고, 이 데이터 도메인 네임에 해당하는 데이터의 소유자의 통신 단말(100, 200)로 데이터 접근 허락을 요청하는 메시지를 전송한다. 데이터 제공부(340)는 해당 데이터의 소유자가 데이터의 접근을 승낙한 경우, 데이터 요청자의 개인 도메인 네임이 워터마크로 삽입되고 데이터 요청자의 액세스 트리에 기초하여 암호화된 데이터를 상기 소유자의 통신 단말(100, 200)로부터 수신하여, 데이터의 접근을 요청한 통신 단말(100, 200)로 전송한다.
본 명세서는 많은 특징을 포함하는 반면, 그러한 특징은 본 발명의 범위 또는 특허청구범위를 제한하는 것으로 해석되어서는 안 된다. 또한, 본 명세서에서 개별적인 실시예에서 설명된 특징들은 단일 실시예에서 결합되어 구현될 수 있다. 반대로, 본 명세서에서 단일 실시예에서 설명된 다양한 특징들은 개별적으로 다양한 실시예에서 구현되거나, 적절히 결합되어 구현될 수 있다.
도면에서 동작들이 특정한 순서로 설명되었으나, 그러한 동작들이 도시된 바와 같은 특정한 순서로 수행되는 것으로, 또는 일련의 연속된 순서, 또는 원하는 결과를 얻기 위해 모든 설명된 동작이 수행되는 것으로 이해되어서는 안 된다. 특정 환경에서 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 아울러, 상술한 실시예에서 다양한 시스템 구성요소의 구분은 모든 실시예에서 그러한 구분을 요구하지 않는 것으로 이해되어야 한다. 상술한 프로그램 구성요소 및 시스템은 일반적으로 단일 소프트웨어 제품 또는 멀티플 소프트웨어 제품에 패키지로 구현될 수 있다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(시디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
100 : 제1통신 단말 200 : 제2통신 단말
300 : 데이터 공유 서버 310 : 도메인 관리부
320 : 키 관리부 330 : 저장부
340 : 데이터 제공부 400 : 블록체인 네트워크

Claims (12)

  1. 데이터 공유 서버가 복수의 통신 단말 및 블록체인 네트워크와 통신하여 데이터를 공유하는 방법에 있어서,
    상기 데이터 공유 서버가, 상기 복수의 통신 단말 각각에 대한 사용자의 속성 정보를 확인하고, 상기 복수의 통신 단말 각각의 사용자의 속성 정보를 이용하여 각 사용자의 복호키를 생성하는 단계;
    상기 데이터 공유 서버가, 각 사용자의 개인 도메인 네임과 상기 복호키를 상기 블록체인 네트워크에 전송하는 단계;
    상기 데이터 공유 서버가, 데이터 소유주의 통신 단말로부터 암호화된 데이터를 수신하고, 상기 암호화된 데이터에 고유하게 대응하는 데이터 도메인 네임을 생성하여 상기 암호화된 데이터와 함께 상기 블록체인 네트워크에 전송하는 단계;
    상기 데이터 공유 서버가, 데이터 공유 대상자의 통신 단말로부터 상기 데이터 도메인 네임을 포함하는 데이터 요청을 수신하는 단계;
    상기 데이터 공유 서버가, 수신된 데이터 도메인 네임에 대응하는 암호화된 데이터를 상기 블록체인 네트워크로부터 수신하여 상기 데이터 공유 대상자의 통신 단말로 전송하는 단계; 및
    상기 데이터 공유 서버가, 상기 데이터 공유 대상자의 통신 단말로부터 수신되는 개인 도메인 네임에 기초하여 상기 블록체인 네트워크로부터 상기 데이터 공유 대상자의 복호키를 수신하고 상기 데이터 공유 대상자의 통신 단말로 전송하는 단계;를 포함하는 방법.
  2. 제 1 항에 있어서,
    각 사용자의 개인 도메인 네임과 상기 복호키를 상기 블록체인 네트워크에 전송하는 단계는,
    상기 데이터 공유 서버가, 통신 단말의 고유 식별정보와 사용자가 입력한 도메인 네임을 토대로 각 통신 단말에서 생성된 개인 도메인 네임을 상기 복수의 통신 단말 각각으로부터 수신하고, 상기 수신한 개인 도메인 네임과 상기 복호키를 상기 블록체인 네트워크에 전송하는 것을 특징으로 하는 방법.
  3. 제 2 항에 있어서,
    상기 공유 대상자의 복호키를 수신하고 상기 데이터 공유 대상자의 통신 단말로 전송하는 단계는,
    상기 데이터 공유 대상자의 통신 단말로부터 수신된 개인 도메인 네임을 기 저장된 개인 도메인 네임과 비교하여 인증하고, 인증 성공시에 개인 도메인 네임에 기초하여 상기 블록체인 네트워크로부터 상기 데이터 공유 대상자의 복호키를 수신하는 것을 특징으로 하는 방법.
  4. 제 1 항에 있어서,
    상기 데이터 소유주의 통신 단말로부터 암호화된 데이터를 수신하는 것은,
    상기 데이터 공유 서버가, 상기 데이터 소유주의 통신 단말로부터, 상기 데이터 소유주가 지정한 적어도 하나의 데이터 공유 대상자의 속성 정보의 액세스 트리에 기초하여 암호화된 데이터를 수신하는 것을 특징으로 하는 방법.
  5. 제 4 항에 있어서,
    상기 데이터 공유 서버가, 상기 암호화된 데이터에 접근 권한이 없는 사용자의 통신 단말로부터 데이터 도메인 네임을 수신하는 단계;
    상기 데이터 공유 서버가, 상기 데이터 소유주의 통신 단말로 상기 접근 권한이 없는 사용자에 대한 접근 허가 요청을 전송하는 단계;
    상기 데이터 공유 서버가, 상기 접근 권한이 없는 사용자의 속성 정보의 액세스 트리에 기초하여 암호화된 데이터를 상기 데이터 소유주의 통신 단말로부터 수신하여 상기 접근 권한이 없는 사용자의 통신 단말로 전송하는 단계; 및
    상기 데이터 공유 서버가, 상기 접근 권한이 없는 사용자의 통신 단말로부터 수신되는 개인 도메인 네임에 기초하여 상기 블록체인 네트워크로부터 해당 사용자의 복호키를 수신하고 해당 사용자의 통신 단말로 전송하는 단계;를 포함하는 방법.
  6. 제 5 항에 있어서,
    상기 접근 권한이 없는 사용자의 속성 정보의 액세스 트리에 기초하여 암호화된 데이터는,
    상기 접근 권한이 없는 사용자의 개인 도메인 네임이 워터마크로서 삽입되는 것을 특징으로 하는 방법.
  7. 복수의 통신 단말 및 블록체인 네트워크와 통신하여 데이터를 공유하는 장치에 있어서,
    상기 복수의 통신 단말 각각에 대한 사용자의 속성 정보를 확인하고, 상기 복수의 통신 단말 각각의 사용자의 속성 정보를 이용하여 각 사용자의 복호키를 생성하는 키 관리부;
    각 사용자의 개인 도메인 네임과 상기 키 관리부에서 생성한 각 사용자의 복호키를 상기 블록체인 네트워크에 전송하며, 데이터 소유주의 통신 단말로부터 암호화된 데이터를 수신하고 상기 암호화된 데이터에 고유하게 대응하는 데이터 도메인 네임을 생성하여 상기 암호화된 데이터와 함께 상기 블록체인 네트워크에 전송하는 도메인 관리부; 및
    데이터 공유 대상자의 통신 단말로부터 상기 데이터 도메인 네임을 포함하는 데이터 요청을 수신하여, 상기 수신한 데이터 도메인 네임에 대응하는 암호화된 데이터를 상기 블록체인 네트워크로부터 획득하여 상기 데이터 공유 대상자의 통신 단말로 전송하는 데이터 제공부;를 포함하고,
    상기 키 관리부는, 상기 데이터 공유 대상자의 통신 단말로부터 수신되는 개인 도메인 네임에 기초하여 상기 블록체인 네트워크로부터 상기 데이터 공유 대상자의 복호키를 수신하고 상기 데이터 공유 대상자의 통신 단말로 전송하는 것을 특징으로 하는 장치.
  8. 제 7 항에 있어서,
    상기 도메인 관리부는,
    통신 단말의 고유 식별정보와 사용자가 입력한 도메인 네임을 토대로 각 통신 단말에서 생성된 개인 도메인 네임을 상기 복수의 통신 단말 각각으로부터 수신하고, 상기 수신한 개인 도메인 네임과 상기 복호키를 상기 블록체인 네트워크에 전송하는 것을 특징으로 하는 장치.
  9. 제 8 항에 있어서,
    상기 키 관리부는,
    상기 데이터 공유 대상자의 통신 단말로부터 수신된 개인 도메인 네임을 기 저장된 개인 도메인 네임과 비교하여 인증하고, 인증 성공시에 개인 도메인 네임에 기초하여 상기 블록체인 네트워크로부터 상기 데이터 공유 대상자의 복호키를 수신하는 것을 특징으로 하는 장치.
  10. 제 7 항에 있어서,
    상기 데이터 소유주의 통신 단말로부터 암호화된 데이터를 수신하는 것은,
    상기 데이터 소유주의 통신 단말로부터, 상기 데이터 소유주가 지정한 적어도 하나의 데이터 공유 대상자의 속성 정보의 액세스 트리에 기초하여 암호화된 데이터를 수신하는 것을 특징으로 하는 장치.
  11. 제 10 항에 있어서,
    상기 데이터 제공부는, 상기 암호화된 데이터에 접근 권한이 없는 사용자의 통신 단말로부터 데이터 도메인 네임을 수신하면, 상기 데이터 소유주의 통신 단말로 상기 접근 권한이 없는 사용자에 대한 접근 허가 요청을 전송하고, 상기 접근 권한이 없는 사용자의 속성 정보의 액세스 트리에 기초하여 암호화된 데이터를 상기 데이터 소유주의 통신 단말로부터 수신하여 상기 접근 권한이 없는 사용자의 통신 단말로 전송하고,
    상기 키 관리부는, 상기 접근 권한이 없는 사용자의 통신 단말로부터 수신되는 개인 도메인 네임에 기초하여 상기 블록체인 네트워크로부터 해당 사용자의 복호키를 수신하고 해당 사용자의 통신 단말로 전송하는 것을 특징으로 하는 장치.
  12. 제 11 항에 있어서,
    상기 접근 권한이 없는 사용자의 속성 정보의 액세스 트리에 기초하여 암호화된 데이터는,
    상기 접근 권한이 없는 사용자의 개인 도메인 네임이 워터마크로서 삽입되는 것을 특징으로 하는 장치.
KR1020190031923A 2019-03-20 블록체인 환경에서의 데이터 공유 방법 및 이를 위한 장치 KR102720693B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190031923A KR102720693B1 (ko) 2019-03-20 블록체인 환경에서의 데이터 공유 방법 및 이를 위한 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190031923A KR102720693B1 (ko) 2019-03-20 블록체인 환경에서의 데이터 공유 방법 및 이를 위한 장치

Publications (2)

Publication Number Publication Date
KR20200112055A true KR20200112055A (ko) 2020-10-05
KR102720693B1 KR102720693B1 (ko) 2024-10-21

Family

ID=

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113239403A (zh) * 2021-06-03 2021-08-10 光大科技有限公司 一种数据共享方法及装置
CN113761058A (zh) * 2021-07-26 2021-12-07 上海中通吉网络技术有限公司 一种基于区块链的劳务工档案管理系统及方法
CN113836222A (zh) * 2021-08-24 2021-12-24 北京理工大学 一种基于区块链的可隐藏策略和属性的访问控制方法
CN113837729A (zh) * 2021-10-09 2021-12-24 上海边界智能科技有限公司 项目信息共享系统
CN114598903A (zh) * 2022-01-26 2022-06-07 杭州设维信息技术有限公司 实现多视频监控平台资源调度方法和系统
KR20220125567A (ko) * 2021-03-05 2022-09-14 순천향대학교 산학협력단 의료 클라우드 환경에서 환자의 의료 데이터 공유 시스템 및 방법
KR20220162609A (ko) * 2021-06-01 2022-12-08 플렉손 피티이. 엘티디. 저장 디바이스와 호스트 디바이스 사이의 데이터 전송을 인증하는 모듈 및 방법
CN118368154A (zh) * 2024-06-20 2024-07-19 宁波梦创信息科技有限公司 基于区块链的项目云数据共享方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101848896B1 (ko) 2016-10-19 2018-04-13 한전케이디엔 주식회사 블록체인을 이용한 선불형 전력 판매 및 전력 사용 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101848896B1 (ko) 2016-10-19 2018-04-13 한전케이디엔 주식회사 블록체인을 이용한 선불형 전력 판매 및 전력 사용 방법

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220125567A (ko) * 2021-03-05 2022-09-14 순천향대학교 산학협력단 의료 클라우드 환경에서 환자의 의료 데이터 공유 시스템 및 방법
KR20220162609A (ko) * 2021-06-01 2022-12-08 플렉손 피티이. 엘티디. 저장 디바이스와 호스트 디바이스 사이의 데이터 전송을 인증하는 모듈 및 방법
CN113239403A (zh) * 2021-06-03 2021-08-10 光大科技有限公司 一种数据共享方法及装置
CN113761058A (zh) * 2021-07-26 2021-12-07 上海中通吉网络技术有限公司 一种基于区块链的劳务工档案管理系统及方法
CN113836222A (zh) * 2021-08-24 2021-12-24 北京理工大学 一种基于区块链的可隐藏策略和属性的访问控制方法
CN113836222B (zh) * 2021-08-24 2022-06-21 北京理工大学 一种基于区块链的可隐藏策略和属性的访问控制方法
CN113837729A (zh) * 2021-10-09 2021-12-24 上海边界智能科技有限公司 项目信息共享系统
CN114598903A (zh) * 2022-01-26 2022-06-07 杭州设维信息技术有限公司 实现多视频监控平台资源调度方法和系统
CN118368154A (zh) * 2024-06-20 2024-07-19 宁波梦创信息科技有限公司 基于区块链的项目云数据共享方法

Similar Documents

Publication Publication Date Title
US11240251B2 (en) Methods and systems for virtual file storage and encryption
KR102025409B1 (ko) 블록체인을 기반으로 한 데이터 접근 관리 시스템 및 데이터 접근 관리 방법
US11093643B2 (en) Method and system for accessing anonymized data
US11314891B2 (en) Method and system for managing access to personal data by means of a smart contract
US9031876B2 (en) Managing keys for encrypted shared documents
CN102483792B (zh) 用于共享文档的方法和装置
CN103561034B (zh) 一种安全文件共享系统
US11943350B2 (en) Systems and methods for re-using cold storage keys
US9698974B2 (en) Method for creating asymmetrical cryptographic key pairs
KR20190138389A (ko) 일회용 비밀번호를 적용한 신원관리가 포함된 블록체인
CN105103488A (zh) 借助相关联的数据的策略施行
US10949556B2 (en) Method for encrypting data and a method for decrypting data
CN108632385B (zh) 基于时间序列的多叉树数据索引结构云存储隐私保护方法
JP3662828B2 (ja) ファイル暗号化システム
US20230185767A1 (en) Validity management system for digital file and method for operating the same
Guo et al. Using blockchain to control access to cloud data
US9436849B2 (en) Systems and methods for trading of text based data representation
CN114762291A (zh) 共享用户的用户特定数据的方法、计算机程序和数据共享系统
Suthar et al. EncryScation: A novel framework for cloud iaas, daas security using encryption and obfuscation techniques
KR102720693B1 (ko) 블록체인 환경에서의 데이터 공유 방법 및 이를 위한 장치
Ghutugade et al. Privacy preserving auditing for shared data in cloud
JP2008217300A (ja) 生体情報付きファイル暗号化システム及び復号化システム、並びにその方法
KR20200112055A (ko) 블록체인 환경에서의 데이터 공유 방법 및 이를 위한 장치
Maragathavalli et al. Cloud data security model using modified decoy technique in fog computing for E-healthcare
US20220174067A1 (en) Securing data and tracking actions upon data

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