KR20200032412A - Method of data sharing based on blockchain, cloud server for performing the method and data sharing system including the cloud server - Google Patents

Method of data sharing based on blockchain, cloud server for performing the method and data sharing system including the cloud server Download PDF

Info

Publication number
KR20200032412A
KR20200032412A KR1020180111415A KR20180111415A KR20200032412A KR 20200032412 A KR20200032412 A KR 20200032412A KR 1020180111415 A KR1020180111415 A KR 1020180111415A KR 20180111415 A KR20180111415 A KR 20180111415A KR 20200032412 A KR20200032412 A KR 20200032412A
Authority
KR
South Korea
Prior art keywords
user information
encryption key
blockchain
participant
user
Prior art date
Application number
KR1020180111415A
Other languages
Korean (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 KR1020180111415A priority Critical patent/KR20200032412A/en
Publication of KR20200032412A publication Critical patent/KR20200032412A/en

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/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/0825Key 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 asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • H04L9/0844Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
    • 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

Disclosed are a block chain-based data sharing method, a cloud server for performing the same, and a block chain-based data sharing system including the same. According to the present invention, the block chain-based data sharing method comprises the steps of: generating an encryption key using an encryption key generation source shared with other participants who participate in a block chain; encrypting user information with the encryption key to store the same in the block chain when the user information is received from a user terminal; and generating a re-encryption key for converting the encryption key, which is a cryptogram of the user information stored in the block chain, into an encryption key generated by the other participants when a user information reading request is received from the other participants who participate in the block chain and re-encoding the user information stored in the block chain with the re-encryption key to transmit the same to the other participants.

Description

블록체인 기반의 데이터 공유 방법, 이를 수행하기 위한 클라우드 서버 및 이를 포함하는 데이터 공유 시스템{METHOD OF DATA SHARING BASED ON BLOCKCHAIN, CLOUD SERVER FOR PERFORMING THE METHOD AND DATA SHARING SYSTEM INCLUDING THE CLOUD SERVER}A blockchain-based data sharing method, a cloud server for performing the same, and a data sharing system including the same.

본 발명은 블록체인 기반의 데이터 공유 방법, 이를 수행하기 위한 클라우드 서버 및 이를 포함하는 데이터 공유 시스템에 관한 것으로서, 더욱 상세하게는 블록체인에 저장되는 사용자 정보를 블록체인 참여자 간에 안전하게 공유하기 위한 블록체인 기반의 데이터 공유 방법, 이를 수행하기 위한 클라우드 서버 및 이를 포함하는 데이터 공유 시스템에 관한 것이다.The present invention relates to a blockchain-based data sharing method, a cloud server for performing the same, and a data sharing system including the same, and more specifically, a blockchain for safely sharing user information stored in the blockchain among blockchain participants. The present invention relates to a data sharing method, a cloud server for performing the same, and a data sharing system including the same.

최근 스마트 기기를 통해 다양한 건강관리 서비스가 보편화되면서 누구나 시간 및 장소에 구애 받지 않고 자신의 건강상태를 측정하여 기록 및 점검할 수 있다. 나아가 스마트 기기를 통해 수집한 데이터는 전문가에게 정밀한 진단 및 조언을 받을 수 있는 데이터로 활용될 수 있다.Recently, as various health care services have become common through smart devices, anyone can measure and record their health status regardless of time and place. Furthermore, the data collected through smart devices can be used as data to receive precise diagnosis and advice from experts.

이러한 의료 전문가가 아닌 일반 사용자들이 스스로 만들어내는 의료 데이터를 환자 유래의 의료 데이터(PGHD: Patients Generated Health Data)라 하는데, 예를 들면, 건강에 대한 이력, 치료 이력, 생체 데이터, 각종 증상 및 생활 습관 등이 포함될 수 있다.The medical data generated by non-medical users by themselves is called PGHD (Patients Generated Health Data). For example, health history, treatment history, bio data, various symptoms and lifestyles And the like.

한편, 환자 유래의 의료 데이터는 환자를 진료한 개별 의료기관 중심으로 관리가 되고 있다. 또한, 진료한 의료 기관 이외의 다른 의료기관과의 정보교환은 환자 본인이 요청한 경우를 제외하고는 허용되지 않기 때문에, 의료 데이터 파편화를 초래함으로써 데이터의 활용이 어렵다.On the other hand, medical data derived from patients are managed mainly by individual medical institutions that have treated patients. In addition, since exchange of information with other medical institutions other than the medical institution in question is not permitted except when requested by the patient himself, it is difficult to utilize the data by causing fragmentation of medical data.

즉, 환자 유래의 의료 데이터의 관리는 전형적인 분절적 중앙 집중형 관리체계로 이루어져 있어 보안과 접근성 및 가용성에 취약한 단일실패접점(SPoF: Single Point of Failure)으로 작동하게 될 우려가 증가하고 있다.In other words, the management of patient-derived medical data consists of a typical segmented centralized management system, and there is increasing concern that it will operate as a single point of failure (SPoF) vulnerable to security, accessibility, and availability.

이에 따라, 블록체인 기반의 의료 데이터 관리 플랫폼이 각광받고 있다. 블록체인은 분산 데이터베이스와 유사한 형태로 데이터를 저장하는 구조체 리스트이며, 네트워크 참여자들이 데이터를 저장 및 검증하므로 임의조작이 어렵도록 설계되어있다. 블록체인은 탈중개성, 보안성, 신속성, 확장성, 투명성 등을 보장해 줄 수 있는 장점을 가지고 있다.Accordingly, a blockchain-based medical data management platform is in the spotlight. Blockchain is a structure list that stores data in a form similar to a distributed database, and it is designed to make random manipulation difficult because network participants store and verify data. Blockchain has the advantage of ensuring de-intermediary, security, promptness, scalability, and transparency.

그러나, 블록체인에 악의적인 참여자가 존재하는 경우, 데이터 노출의 가능성이 존재하며, 특히 의료 데이터가 노출되는 경우, 환자에게 치명적인 피해를 입힐 수 있다.However, if a malicious participant exists on the blockchain, there is a possibility of data exposure, and in particular, when medical data is exposed, it can cause fatal damage to the patient.

본 발명의 일측면은 블록체인에 저장된 사용자 정보의 열람을 요청하는 경우, 암호화 된 사용자 정보의 암호화 키를 변환시켜 제공하는 블록체인 기반의 데이터 공유 방법, 이를 수행하기 위한 클라우드 서버 및 이를 포함하는 블록체인 기반의 데이터 공유 시스템을 제공한다.In one aspect of the present invention, when requesting to view user information stored in a blockchain, a blockchain-based data sharing method provided by converting an encryption key of encrypted user information, a cloud server for performing the same, and a block including the same It provides a chain-based data sharing system.

상기 과제를 해결하기 위한 본 발명의 블록체인 기반의 데이터 공유 방법은, 사용자 정보를 블록체인에 저장하고, 상기 블록체인에 참여하는 다른 참여자들과 상기 블록체인에 저장된 상기 사용자 정보가 공유될 수 있도록 제어하는 클라우드 서버에서의 데이터 공유 방법에 관한 것으로, 상기 블록체인에 참여하는 다른 참여자들과 공유하는 암호화키 생성 소스를 이용하여 암호화키를 생성하는 단계, 상기 사용자 단말로부터 상기 사용자 정보를 수신하는 경우, 상기 사용자 정보를 상기 암호화키로 암호화하여 상기 블록체인에 저장하는 단계 및 상기 블록체인에 참여하는 다른 참여자로부터 상기 사용자 정보 열람 요청을 수신하는 경우, 상기 블록체인에 저장된 상기 사용자 정보의 암호문인 상기 암호화키를 상기 다른 참여자가 생성하는 암호화키로 변환시키는 재암호화키를 생성하고, 상기 재암호화키로 상기 블록체인에 저장된 상기 사용자 정보를 재암호화하여 상기 다른 참여자에게 전송하는 단계를 포함한다.The blockchain-based data sharing method of the present invention for solving the above problem is to store user information in a blockchain, so that the user information stored in the blockchain can be shared with other participants participating in the blockchain. Regarding a method of sharing data in a controlled cloud server, generating an encryption key using an encryption key generation source shared with other participants participating in the blockchain, when receiving the user information from the user terminal , Encrypting the user information with the encryption key and storing it in the blockchain and receiving the request for viewing the user information from another participant participating in the blockchain, the encryption which is a ciphertext of the user information stored in the blockchain Encryption key generated by the other participant And generating a re-encryption key for converting to, and re-encrypting the user information stored in the blockchain with the re-encryption key and transmitting it to the other participants.

또한, 상기 블록체인에 참여하는 다른 참여자들과 공유하는 암호화키 생성 소스를 이용하여 암호화키를 생성하는 단계는, 엘가말(ElGamal) 암호화 알고리즘을 이용하여 공개키 및 비밀키 쌍의 상기 암호화키를 생성하는 단계를 포함할 수 있다.In addition, the step of generating an encryption key using an encryption key generation source shared with other participants participating in the block chain, the encryption key of the public and secret key pair using the ElGamal encryption algorithm And generating.

또한, 상기 사용자 단말로부터 상기 사용자 정보를 수신하는 경우, 상기 사용자 정보를 상기 암호화키로 암호화하여 상기 블록체인에 저장하는 단계는, 상기 사용자 단말의 인증 여부를 확인하는 단계 및 상기 사용자 단말이 인증된 단말로 확인되는 경우, 상기 사용자 정보를 상기 암호화키로 암호화하여 상기 블록체인에 저장하는 단계를 포함할 수 있다.In addition, when receiving the user information from the user terminal, the step of encrypting the user information with the encryption key and storing it in the blockchain includes: checking whether the user terminal is authenticated, and the user terminal is authenticated terminal If it is confirmed, it may include the step of encrypting the user information with the encryption key and storing it in the blockchain.

또한, 상기 블록체인에 참여하는 다른 참여자로부터 상기 사용자 정보 열람 요청을 수신하는 경우, 상기 블록체인에 저장된 상기 사용자 정보의 암호문인 상기 암호화키를 상기 다른 참여자가 생성하는 암호화키로 변환시키는 재암호화키를 생성하고, 상기 재암호화키로 상기 블록체인에 저장된 상기 사용자 정보를 재암호화하여 상기 다른 참여자에게 전송하는 단계는, 상기 사용자 단말로 상기 다른 참여자의 상기 사용자 정보 열람 요청 알림을 전송하는 단계 및 상기 사용자 단말로부터 상기 다른 참여자의 상기 사용자 정보 열람 허가 알림을 수신하는 경우, 상기 재암호화키를 생성하는 단계를 포함할 수 있다.In addition, when receiving the request to view the user information from another participant participating in the blockchain, a re-encryption key that converts the encryption key, which is the cipher text of the user information stored in the blockchain, into an encryption key generated by the other participants. Generating and re-encrypting the user information stored in the blockchain with the re-encryption key to transmit to the other participant comprises: transmitting a notification requesting the user information of the other participant to the user terminal and the user terminal When receiving the notification of permission to view the user information of the other participant from, may include generating the re-encryption key.

한편, 본 발명의 클라우드 서버는 사용자 정보를 블록체인에 저장하고, 상기 블록체인에 참여하는 다른 참여자들과 상기 블록체인에 저장된 상기 사용자 정보가 공유될 수 있도록 제어하는 클라우드 서버에 관한 것으로, 상기 블록체인에 참여하는 다른 참여자들과 공유하는 암호화키 생성 소스를 이용하여 암호화키를 생성하는 암호화키 생성부, 상기 사용자 단말로부터 상기 사용자 정보를 수신하는 경우, 상기 사용자 정보를 상기 암호화키로 암호화하여 상기 블록체인에 저장하는 암호화부 및 상기 블록체인에 참여하는 다른 참여자로부터 상기 사용자 정보 열람 요청을 수신하는 경우, 상기 블록체인에 저장된 상기 사용자 정보의 암호문인 상기 암호화키를 상기 다른 참여자가 생성하는 암호화키로 변환시키는 재암호화키를 생성하고, 상기 재암호화키로 상기 블록체인에 저장된 상기 사용자 정보를 재암호화하여 상기 다른 참여자에게 전송하는 재암호화키 생성부를 포함한다.On the other hand, the cloud server of the present invention relates to a cloud server that stores user information in a blockchain and controls the user information stored in the blockchain to be shared with other participants participating in the blockchain. An encryption key generator that generates an encryption key using an encryption key generation source shared with other participants participating in the chain. When receiving the user information from the user terminal, the user information is encrypted with the encryption key to block the block. When receiving the request to view the user information from the encryption unit stored in the chain and other participants participating in the blockchain, the encryption key, which is a cipher text of the user information stored in the blockchain, is converted into an encryption key generated by the other participants. To generate a re-encryption key, and the re-encryption Chemistry keys include call re-encryption key generation to be sent to the other participants to re-encrypt the user information stored in the block chain.

또한, 상기 암호화키 생성부는, 엘가말(ElGamal) 암호화 알고리즘을 이용하여 공개키 및 비밀키 쌍의 상기 암호화키를 생성할 수 있다.In addition, the encryption key generation unit may generate the encryption key of a public key and a secret key pair using an ElGamal encryption algorithm.

또한, 상기 암호화부는, 상기 사용자 단말의 인증 여부를 확인하여 상기 사용자 단말이 인증된 단말로 확인되는 경우, 상기 사용자 정보를 상기 암호화키로 암호화하여 상기 블록체인에 저장할 수 있다.In addition, the encryption unit may check whether the user terminal is authenticated, and when the user terminal is identified as an authenticated terminal, the user information may be encrypted with the encryption key and stored in the blockchain.

또한, 상기 재암호화키 생성부는, 상기 사용자 단말로 상기 다른 참여자의 상기 사용자 정보 열람 요청 알림을 전송하고, 상기 사용자 단말로부터 상기 다른 참여자의 상기 사용자 정보 열람 허가 알림을 수신하는 경우, 상기 재암호화키를 생성할 수 있다.In addition, the re-encryption key generation unit, when transmitting the user information viewing request notification of the other participant to the user terminal, receiving the user information access permission notification of the other participant from the user terminal, the re-encryption key Can generate

한편, 본 발명의 블록체인 기반의 데이터 공유 시스템은 사용자 정보를 수집하는 사용자 단말, 상기 사용자 정보를 저장하는 블록체인, 상기 블록체인에 참여하며, 상기 블록체인에 저장된 상기 사용자 정보의 열람을 요청하는 적어도 하나의 참여자 및 상기 사용자 단말로부터 상기 사용자 정보를 수신하는 경우, 상기 사용자 정보를 상기 블록체인에 저장하되, 상기 적어도 하나의 참여자와 공유하는 암호화키 생성 소스를 이용하여 암호화키를 생성하고, 상기 사용자 정보를 상기 암호화키로 암호화하여 상기 블록체인에 저장하며, 상기 적어도 하나의 참여자 중 어느 하나의 참여자로부터 상기 사용자 정보 열람 요청을 수신하는 경우, 상기 블록체인에 저장된 상기 사용자 정보의 암호문인 상기 암호화키를 상기 사용자 정보의 열람을 요청한 참여자가 생성하는 암호화키로 변환시키는 재암호화키를 생성하고, 상기 재암호화키로 상기 블록체인에 저장된 상기 사용자 정보를 재암호화하여 상기 사용자 정보의 열람을 요청한 참여자에게 전송하는 클라우드 서버를 포함한다.On the other hand, the blockchain-based data sharing system of the present invention is a user terminal that collects user information, a blockchain that stores the user information, participates in the blockchain, and requests access to the user information stored in the blockchain. When receiving the user information from at least one participant and the user terminal, the user information is stored in the blockchain, but an encryption key is generated using an encryption key generation source shared with the at least one participant, and the When the user information is encrypted with the encryption key and stored in the blockchain, and when receiving a request to view the user information from any one of the at least one participant, the encryption key, which is a cipher text of the user information stored in the blockchain Participants who requested access to the user information Generating a re-encryption key as the encryption key for converting to produce, and includes a cloud server to the re-encryption key to re-encrypt the user information stored in the block chain sent to the partner requested the reading of the user information.

또한, 상기 적어도 하나의 참여자는, 각각 상기 암호화키 생성 소스를 이용하여 암호화키를 생성하고, 상기 블록체인으로부터 상기 재암호화키에 의해 암호화 된 상기 사용자 정보를 수신하는 경우, 상기 암호화키 생성 소스를 이용하여 생성한 암호화키로 상기 재암호화키에 의해 암호화 된 상기 사용자 정보를 복호화하여 열람할 수 있다.In addition, the at least one participant generates an encryption key using the encryption key generation source, respectively, and receives the encryption key generation source when receiving the user information encrypted by the re-encryption key from the blockchain. The user information encrypted by the re-encryption key can be decrypted and viewed using the encryption key generated.

본 발명에 따르면, 사용자 정보를 암호화하여 블록체인에 저장함으로써 데이터의 기밀성을 보장할 수 있으며, 변조가 불가능하기 때문에 무결성 또한 보장할 수 있다. 아울러, 사용자 정보 관리의 탈중앙화를 도모하여 보안과 접근성 및 가용성에 취약한 단일실패접점을 방지할 수 있다.According to the present invention, it is possible to guarantee the confidentiality of data by encrypting user information and storing it in a blockchain, and also integrity because it is impossible to tamper. In addition, by decentralizing user information management, it is possible to prevent a single failure contact vulnerable to security, accessibility, and availability.

또한, 암호화된 사용자 정보를 해당 사용자 정보의 열람 요청자에게 전달하는 경우, 사용자 정보를 복호화한 뒤 요청자의 공개키로 다시 암호화하는 방식 대신 재암호화키를 이용하여 암호화된 사용자 정보의 공개키를 변환시켜 요청자에게 전달하는 방식을 채택함으로써, 사용자 정보의 복호화 단계를 생략할 수 있다. 이에, 악의적인 사용자에 의한 정보 노출을 방지할 수 있다. In addition, when the encrypted user information is delivered to the requestor of the corresponding user information, the user information is decrypted and then encrypted again with the requestor's public key. Instead, the public key of the encrypted user information is converted using the re-encryption key. By adopting a method of delivering to, it is possible to omit the decoding step of the user information. Accordingly, it is possible to prevent information exposure by a malicious user.

또한, 사용자가 생성하는 사용자 정보의 공유가 사용자의 관리 하에 이루어지도록 함으로써, 데이터의 통합에 유리하다.In addition, by sharing the user information generated by the user under the management of the user, it is advantageous for data integration.

도 1은 본 발명의 일 실시예에 따른 블록체인 기반의 데이터 공유 시스템의 개념도이다.
도 2는 도 1에 도시된 데이터 공유 시스템에서의 암호문 생성 및 데이터 공유의 흐름도이다.
도 3은 도 1에 도시된 클라우드 서버의 블록도이다.
도 4는 본 발명의 일 실시예에 따른 블록체인 기반의 데이터 공유 방법의 순서도이다.
1 is a conceptual diagram of a blockchain-based data sharing system according to an embodiment of the present invention.
FIG. 2 is a flowchart of cipher text generation and data sharing in the data sharing system shown in FIG. 1.
3 is a block diagram of the cloud server shown in FIG. 1.
4 is a flowchart of a blockchain-based data sharing method according to an embodiment of the present invention.

후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예와 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.For a detailed description of the present invention, which will be described later, reference is made to the accompanying drawings that illustrate, by way of example, specific embodiments in which the present invention may be practiced. These examples are described in detail enough to enable those skilled in the art to practice the present invention. It should be understood that the various embodiments of the present invention are different, but need not be mutually exclusive. For example, certain shapes, structures, and properties described herein may be implemented in other embodiments without departing from the spirit and scope of the invention in connection with one embodiment. In addition, it should be understood that the location or placement of individual components within each disclosed embodiment can be changed without departing from the spirit and scope of the invention. Therefore, the following detailed description is not intended to be taken in a limiting sense, and the scope of the present invention, if appropriately described, is limited only by the appended claims, along with all ranges equivalent to those claimed. In the drawings, similar reference numerals refer to the same or similar functions across various aspects.

이하, 도면들을 참조하여 본 발명의 바람직한 실시예들을 보다 상세하게 설명하기로 한다.Hereinafter, preferred embodiments of the present invention will be described in more detail with reference to the drawings.

도 1은 본 발명의 일 실시예에 따른 블록체인 기반의 데이터 공유 시스템의 개념도이다. 1 is a conceptual diagram of a blockchain-based data sharing system according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 블록체인 기반의 데이터 공유 시스템(1000)은 사용자가 직접 생성하거나 수집하는 사용자 정보가 블록체인(500)에 참여하는 참여자 간에 공유되도록 제어할 수 있다. The blockchain-based data sharing system 1000 according to an embodiment of the present invention may control user information generated or collected by a user to be shared among participants participating in the blockchain 500.

본 발명의 일 실시예에 따른 블록체인 기반의 데이터 공유 시스템(1000)은 사용자 정보의 공유를 제어하는 주체를 사용자 정보를 생성하는 사용자에게 두어, 사용자 정보를 다른 외부자들과 공유하는 다양한 환경에 적용되기에 적합하다.The blockchain-based data sharing system 1000 according to an embodiment of the present invention places a subject that controls the sharing of user information to a user who generates user information, in various environments where user information is shared with other outsiders. It is suitable to be applied.

예를 들면, 본 발명의 일 실시예에 따른 블록체인 기반의 데이터 공유 시스템(1000)은 의료 정보 공유 시스템에 적용될 수 있다. 의료 정보 공유 시스템은 환자가 치료이력, 생체 데이터, 증상 등의 의료 정보를 직접 수집하고, 환자를 진료하는 의료기관뿐만 아니라 다른 의료기관에서도 의료 정보가 공유될 수 있도록 하여 환자의 의료 정보를 통합 관리하는 시스템이다. 종래의 의료 정보 공유 시스템에 따르면 의료 정보는 환자를 진료하는 의료기관을 중심으로 관리되므로, 데이터의 파편화를 초래할 수 있으며, 보안성이 취약하다. 본 발명의 일 실시예에 따른 블록체인 기반의 데이터 공유 시스템(1000)은 의료 정보를 수집하는 환자가 데이터 관리의 중심이 되게 함으로써 데이터 통합이 유리하며, 의료 정보 유출에 따른 피해를 예방할 수 있다.For example, the blockchain-based data sharing system 1000 according to an embodiment of the present invention may be applied to a medical information sharing system. The medical information sharing system integrates and manages the patient's medical information by allowing the patient to directly collect medical information such as treatment history, biometric data, and symptoms, and to share the medical information with other medical institutions as well as medical institutions that treat patients. to be. According to the conventional medical information sharing system, since medical information is managed centering on a medical institution that treats patients, it may cause fragmentation of data, and security is weak. The blockchain-based data sharing system 1000 according to an embodiment of the present invention is advantageous in data integration by allowing a patient who collects medical information to become a central point of data management, and can prevent damage caused by leakage of medical information.

도 1을 참조하면, 본 발명의 일 실시예에 따른 블록체인 기반의 데이터 공유 시스템(1000)은 클라우드 서버(300) 및 적어도 하나의 참여자(700)에 의해 구축되는 블록체인(500), 사용자 정보를 생성하는 센서 장치(10) 및 사용자 정보를 클라우드 서버(300)로 전송하여 블록체인(500)에 저장되게 하는 사용자 단말(100)을 포함할 수 있다.Referring to FIG. 1, a blockchain-based data sharing system 1000 according to an embodiment of the present invention is a blockchain 500 built by a cloud server 300 and at least one participant 700, and user information It may include a sensor device 10 for generating and the user terminal 100 to transmit the user information to the cloud server 300 to be stored in the blockchain 500.

센서 장치(10)는 사용자 정보를 생성 또는 수집할 수 있다. 사용자는 센서 장치(10)를 이용하여 다른 사용자와 공유하고자 하는 데이터를 생성할 수 있다.The sensor device 10 may generate or collect user information. The user may generate data to be shared with other users using the sensor device 10.

예를 들면, 센서 장치(10)는 사용자의 신체에 장착되어 생체 데이터, 각종 증상 또는 생활습관 등을 포함하는 사용자 정보를 생성하는 웨어러블 디바이스일 수 있다.For example, the sensor device 10 may be a wearable device mounted on a user's body to generate user information including biometric data, various symptoms, or lifestyle.

사용자 단말(100)은 센서 장치(10)에서 생성하는 사용자 정보를 수집하여 클라우드 서버(300)로 전송할 수 있다. 즉, 사용자는 사용자 단말(100)을 매개로 하여 센서 장치(10)에서 생성하는 사용자 정보를 클라우드 서버(300)로 전송할 수 있다. The user terminal 100 may collect user information generated by the sensor device 10 and transmit it to the cloud server 300. That is, the user may transmit user information generated by the sensor device 10 to the cloud server 300 through the user terminal 100.

이를 위해, 사용자 단말(100)은 통신이 가능하고 정보의 입출력이 가능한 장치로, 예를 들면, PC, 스마트폰, 테블릿 등으로 구현될 수 있다.To this end, the user terminal 100 is a device capable of communication and input / output of information, and may be implemented as, for example, a PC, a smart phone, or a tablet.

블록체인(500)은 분산 데이터베이스와 유사한 형태로 데이터를 저장하는 구조체 리스트로, 본 실시예에서는 클라우드 서버(300) 및 적어도 하나의 참여자(700)에 의해 구축될 수 있다. 클라우드 서버(300) 및 적어도 하나의 참여자(700)는 블록체인(500)에 정보의 저장 또는 열람이 가능하다. Blockchain 500 is a list of structures that store data in a form similar to a distributed database, and in this embodiment, it can be constructed by a cloud server 300 and at least one participant 700. The cloud server 300 and at least one participant 700 can store or view information in the blockchain 500.

클라우드 서버(300)는 클라이언트의 접속요청에 응답하여 소정의 정보를 제공하는 일반적인 형태의 서버로, 본 실시예에서 블록체인(500)에 참여하는 네트워크 중 하나일 수 있다. The cloud server 300 is a general type of server that provides predetermined information in response to a client's access request, and may be one of the networks participating in the blockchain 500 in this embodiment.

클라우드 서버(300)는 사용자 단말(100)로부터 수신하는 사용자 정보를 암호화하여 블록체인(500)에 저장할 수 있다. 클라우드 서버(300)는 블록체인(500)에 참여하는 다른 참여자(700)가 사용자 정보의 열람을 요청하는 경우, 이를 사용자 단말(100)을 통해 사용자에게 알리고, 사용자의 통제 하에서 다른 참여자(700)의 사용자 정보 열람을 가능하게 한다. The cloud server 300 may encrypt user information received from the user terminal 100 and store it in the blockchain 500. The cloud server 300 notifies the user through the user terminal 100 when another participant 700 participating in the blockchain 500 requests to view the user information, and the other participant 700 under the control of the user Enables user information to be viewed.

여기에서, 클라우드 서버(300)는 프록시 재암호화(Proxy Re-Encryption) 기법을 적용할 수 있다. 프록시 재암호화 기법은 프록시 개체(Entity)가 기본 메시지에 대해 아무것도 알지 않고도 하나의 공개키에서 다른 공개키로 암호문을 변환할 수 있게 해주는 일종의 공개키 암호화 기법이다. 이와 관련하여 도 2를 참조하여 구체적으로 설명한다.Here, the cloud server 300 may apply a proxy re-encryption technique. The proxy re-encryption technique is a kind of public-key encryption technique that allows a proxy entity to convert ciphertext from one public key to another without knowing anything about the underlying message. This will be described in detail with reference to FIG. 2.

도 2는 도 1에 도시된 데이터 공유 시스템에서의 암호문 생성 및 데이터 공유의 흐름도이다.FIG. 2 is a flowchart of cipher text generation and data sharing in the data sharing system shown in FIG. 1.

본 발명의 일 실시예에 따른 블록체인 기반의 데이터 공유 시스템(1000)이 의료 정보 공유 시스템에 적용된 것을 예로 들어 설명하면, 사용자 단말(100)은 환자 또는 보호자와 같이 의료 전문가가 아닌 일반 사용자가 소지하고 있는 단말일 수 있으며, 적어도 하나의 참여자(700)는 병원, 약국, 연구센터, 보험사 등과 같이 의료 전문가들로 구성되는 네트워크 서버일 수 있다.For example, when the blockchain-based data sharing system 1000 according to an embodiment of the present invention is applied to a medical information sharing system, the user terminal 100 is possessed by a general user who is not a medical expert, such as a patient or a guardian. It may be a terminal that is being performed, and at least one participant 700 may be a network server composed of medical experts, such as a hospital, a pharmacy, a research center, and an insurance company.

도 2를 참조하면, 클라우드 서버(300) 및 적어도 하나의 참여자(700)는 블록체인(500)을 구축하는데, 각각 암호화키를 생성하여 저장할 수 있다. 암호화키는 사용자 정보의 암호문인 공개키(pkA, pkB) 및 암호화된 사용자 정보를 복호화 하는 데 사용되는 비밀키(skA, skB)의 쌍으로 구성될 수 있다.Referring to FIG. 2, the cloud server 300 and at least one participant 700 construct the blockchain 500, and each may generate and store an encryption key. The encryption key may be composed of a pair of a public key (pk A , pk B ), which is an encryption text of user information, and a secret key (sk A , sk B ) used to decrypt the encrypted user information.

사용자 단말(100)은 사용자 정보(data)를 수집하여 클라우드 서버(300)로 전송할 수 있다.The user terminal 100 may collect user information (data) and transmit it to the cloud server 300.

클라우드 서버(300)는 사용자 단말(100)이 인증된 단말인지를 확인하고, 사용자 단말(100)이 인증된 단말로 확인되는 경우, 사용자 단말(100)로부터 수신하는 사용자 정보(data)를 공개키(pkA)로 암호화하여 블록체인(500)에 저장할 수 있다.The cloud server 300 checks whether the user terminal 100 is an authenticated terminal, and when the user terminal 100 is identified as an authenticated terminal, the user information data received from the user terminal 100 is public key. It can be encrypted with (pk A ) and stored in the blockchain 500.

클라우드 서버(300)는 공개키(pkA)에 의해 암호화 된 사용자 정보(CA)를 저장할 수 있다.The cloud server 300 may store user information C A encrypted by the public key pk A.

클라우드 서버(300)는 참여자(700)로부터 사용자 정보(data) 열람 요청을 수신하는 경우, 사용자 단말(100)로 해당 참여자(700)의 사용자 정보 열람 요청 알림을 전송할 수 있다.When receiving a request to view user information (data) from the participant 700, the cloud server 300 may transmit a notification requesting the user information to be viewed by the participant 700 to the user terminal 100.

사용자 단말(100)은 참여자(700)의 사용자 정보(data) 열람 요청 알림을 출력하여 사용자로부터 참여자(700)의 사용자 정보(data) 열람 허가 또는 차단을 선택 받고, 그 결과를 클라우드 서버(300)로 전송할 수 있다.The user terminal 100 outputs a request for viewing the user information (data) of the participant 700, selects permission or block to view the user information (data) of the participant 700 from the user, and displays the result of the cloud server 300 Can be transferred to.

클라우드 서버(300)는 사용자 단말(100)로부터 참여자(700)의 사용자 정보(data) 열람 허가 신호를 수신하는 경우, 재암호화키(rkA→B)를 생성할 수 있다. 재암호화키(rkA→B)는 블록체인(500)에 저장된 사용자 정보(CA)의 암호문인 클라우드 서버(300)가 생성한 공개키(pkA)를 참여자(700)가 생성한 공개키(pkB)로 변환시키는 암호문이다.The cloud server 300 may generate a re-encryption key (rk A → B ) when the user terminal 100 receives a permission signal to view the user data of the participant 700. The re-encryption key (rk A → B ) is the public key generated by the cloud server 300 which is the cipher text of the user information (C A ) stored in the blockchain 500 (pk A ), and the public key generated by the participant 700 It is a cryptographic text that converts to (pk B ).

클라우드 서버(300)는 재암호화키(rkA→B)를 이용하여 사용자 정보(CA)를 재암호화하고, 이를 참여자(700)에게 전송할 수 있다.The cloud server 300 may re-encrypt the user information C A using the re-encryption key (rk A → B ) and transmit it to the participant 700.

참여자(700)는 클라우드 서버(300)로부터 재암호화키(rkA→B)에 의해 재암호화 된 사용자 정보(CB)를 수신하는 경우, 비밀키(skB)로 복호화하여 사용자 정보(data)를 열람할 수 있다.When the participant 700 receives the re-encrypted user information (C B ) by the re-encryption key (rk A → B ) from the cloud server 300, it decrypts the user information (data) by decrypting it with the secret key (sk B ). Can be read.

이와 같이, 본 발명의 일 실시예에 따른 블록체인 기반의 데이터 공유 시스템(1000)은 사용자 정보를 암호화하여 블록체인(500)에 저장함으로써 데이터의 기밀성을 보장할 수 있으며, 변조가 불가능하기 때문에 무결성 또한 보장할 수 있다.As described above, the blockchain-based data sharing system 1000 according to an embodiment of the present invention can ensure the confidentiality of data by encrypting user information and storing it in the blockchain 500, and integrity because it cannot be tampered with. It can also be guaranteed.

또한, 본 발명의 일 실시예에 따른 블록체인 기반의 데이터 공유 시스템(1000)은 암호화된 사용자 정보를 해당 사용자 정보의 열람 요청자에게 전달하는 경우, 사용자 정보를 복호화한 뒤 요청자의 공개키로 다시 암호화하는 방식 대신 재암호화키를 이용하여 암호화된 사용자 정보의 공개키를 변환시켜 요청자에게 전달하는 방식을 채택함으로써, 사용자 정보의 복호화 단계를 생략할 수 있다. 이에, 악의적인 사용자에 의한 정보 노출을 방지할 수 있다. In addition, the blockchain-based data sharing system 1000 according to an embodiment of the present invention decrypts user information and then re-encrypts it with the public key of the requester when the encrypted user information is delivered to the requestor for viewing the corresponding user information. By adopting a method of converting the public key of the encrypted user information using the re-encryption key and passing it to the requester, the decryption step of the user information can be omitted. Accordingly, it is possible to prevent information exposure by a malicious user.

또한, 본 발명의 일 실시예에 따른 블록체인 기반의 데이터 공유 시스템(1000)은 사용자가 생성하는 사용자 정보의 공유가 사용자의 관리 하에 이루어지도록 함으로써, 데이터의 통합에 유리하다.In addition, the blockchain-based data sharing system 1000 according to an embodiment of the present invention is advantageous in integrating data by allowing user information generated by a user to be shared under user management.

도 3은 도 1에 도시된 클라우드 서버의 블록도이다.3 is a block diagram of the cloud server shown in FIG. 1.

도 3을 참조하면, 클라우드 서버(300)는 암호화키 생성부(310), 암호화부(330) 및 재암호화키 생성부(350)를 포함할 수 있다.Referring to FIG. 3, the cloud server 300 may include an encryption key generation unit 310, an encryption unit 330, and a re-encryption key generation unit 350.

클라우드 서버(300)는 상술한 바와 같이 사용자 단말(100)로부터 사용자 정보를 수집하고, 사용자 정보를 암호화하여 블록체인(500)에 저장할 수 있다.The cloud server 300 may collect user information from the user terminal 100 as described above, and encrypt the user information and store it in the blockchain 500.

또한, 클라우드 서버(300)는 블록체인(500)의 다른 참여자(700)로부터 사용자 정보의 열람 요청 신호를 수신하는 경우, 암호화 된 사용자 정보의 암호문을 변환시키는 재암호화키를 생성하고, 재암호화키로 암호화 된 사용자 정보를 재암호화하여 사용자 정보를 요청한 참여자(700)에게 전송할 수 있으며, 참여자(700)는 재암호화 된 사용자 정보를 복호화하여 열람할 수 있다.In addition, the cloud server 300 generates a re-encryption key that converts the encrypted text of the encrypted user information when receiving a request signal to view user information from another participant 700 of the blockchain 500, and uses the re-encryption key. The encrypted user information may be re-encrypted to transmit the user information to the requesting participant 700, and the participant 700 may decrypt and view the re-encrypted user information.

이하, 도 3에 도시된 클라우드 서버(300)의 각 구성에 대하여 구체적으로 설명한다.Hereinafter, each configuration of the cloud server 300 illustrated in FIG. 3 will be described in detail.

암호화키 생성부(310)는 사용자 정보를 암호화 또는 복호화 하는 데 사용되는 암호화키를 생성하여 저장할 수 있다.The encryption key generator 310 may generate and store an encryption key used to encrypt or decrypt user information.

암호화키는 사용자 단말(100)로부터 수신하는 사용자 정보를 암호화하는 암호문인 공개키 및 공개키에 의해 암호화 된 사용자 정보를 복호화하는 복호문인 비밀키의 쌍으로 이루어질 수 있다. The encryption key may consist of a pair of a public key, which is an encryption text for encrypting user information received from the user terminal 100, and a secret key, which is a decryption text for decrypting user information encrypted by the public key.

암호화키 생성부(310)는 블록체인(500)에 참여하는 적어도 하나의 참여자(700)와 공유하는 암호화키 생성 소스를 이용하여 암호화키를 생성할 수 있다.The encryption key generation unit 310 may generate an encryption key using an encryption key generation source shared with at least one participant 700 participating in the blockchain 500.

예를 들면, 암호화키 생성부(310)는 블록체인(500)에 참여하는 적어도 하나의 참여자(700)와 공유하는 암호화키 생성 소스를 엘가말(ElGamal) 암호화 알고리즘에 적용하여 아래 수학식 1과 같이 공개키(pk) 및 비밀키(sk) 쌍의 암호화키를 생성할 수 있다. 이때, 블록체인(500)에 참여하는 적어도 하나의 참여자(700)와 공유하는 암호화키 생성 소스는 그룹 G의 큰 소수q 및 생성자 g를 포함할 수 있다.For example, the encryption key generation unit 310 applies the encryption key generation source shared with at least one participant 700 participating in the blockchain 500 to the ElGamal encryption algorithm, and the following Equation 1 and Similarly, an encryption key of a public key (pk) and a secret key (sk) pair can be generated. At this time, the encryption key generation source shared with at least one participant 700 participating in the blockchain 500 may include a large prime number q and a generator g of the group G.

Figure pat00001
Figure pat00001

한편, 도 1에 도시된 적어도 하나의 참여자(700)는 각각 위와 같은 방식으로 블록체인(500)에 참여하는 적어도 하나의 참여자(700)와 공유하는 암호화키 생성 소스를 이용하여 공개키 및 비밀키 쌍의 암호화키를 생성하여 저장할 수 있다.Meanwhile, at least one participant 700 illustrated in FIG. 1 uses a public key and a secret key using an encryption key generation source shared with at least one participant 700 participating in the blockchain 500 in the same manner as above. A pair of encryption keys can be generated and stored.

암호화부(330)는 사용자 단말(100)로부터 수신하는 사용자 정보를 암호화할 수 있다.The encryption unit 330 may encrypt user information received from the user terminal 100.

암호화부(330)는 사용자 단말(100)로부터 사용자 정보를 수신하는 경우, 사용자 단말(100)의 인증 여부를 확인할 수 있다.When receiving user information from the user terminal 100, the encryption unit 330 may check whether the user terminal 100 is authenticated.

예를 들면, 암호화부(330)는 사용자 단말(100)로부터 사용자 정보를 수신하는 경우, 해당 사용자 단말(100)의 식별 정보와 미리 저장된 인증된 사용자 단말 목록을 비교하여 해당 사용자 단말(100)의 인증 여부를 확인할 수 있다.For example, when receiving user information from the user terminal 100, the encryption unit 330 compares the identification information of the user terminal 100 with a list of previously stored authenticated user terminals, and displays the user terminal 100. You can check whether it is authenticated.

암호화부(330)는 사용자 단말(100)이 인증된 단말로 확인되는 경우, 사용자 정보를 암호화키로 암호화하여 블록체인(500)에 저장할 수 있다. When the user terminal 100 is identified as an authenticated terminal, the encryption unit 330 may encrypt user information with an encryption key and store it in the blockchain 500.

Figure pat00002
Figure pat00002

즉, 블록체인(500)에는 클라우드 서버(300)에서 생성하는 공개키(pkA)에 의해 암호화 된 상태의 사용자 정보(CA)가 저장될 수 있다. That is, the user information C A in the state encrypted by the public key pk A generated by the cloud server 300 may be stored in the blockchain 500.

이처럼, 암호화부(330)는 인증된 사용자 단말(100)로부터 수신하는 사용자 정보에 한하여 블록체인(500)에 저장하며, 아울러, 사용자 정보를 암호화하여 저장함으로써, 데이터의 기밀성을 보장할 수 있다.As described above, the encryption unit 330 stores only the user information received from the authenticated user terminal 100 in the blockchain 500, and also encrypts and stores the user information to ensure confidentiality of data.

재암호화키 생성부(350)는 블록체인(500)에 저장된 사용자 정보(CA)의 암호문인 암호화키(pkA)를 다른 암호화키로 변환시키는 재암호화키를 생성할 수 있다.The re-encryption key generation unit 350 may generate a re-encryption key that converts the encryption key (pk A ), which is the cipher text of the user information (C A ) stored in the blockchain 500, to another encryption key.

재암호화키 생성부(350)는 블록체인(500)에 참여하는 다른 참여자(700)로부터 블록체인(500)에 저장된 사용자 정보의 열람 요청을 수신할 수 있다.The re-encryption key generation unit 350 may receive a request for viewing user information stored in the blockchain 500 from other participants 700 participating in the blockchain 500.

재암호화키 생성부(350)는 블록체인(500)에 참여하는 다른 참여자(700)로부터 사용자 정보의 열람 요청을 수신하는 경우, 사용자 단말(100)로 다른 참여자(700)의 사용자 정보 열람 요청 알림을 전송할 수 있다.When the re-encryption key generation unit 350 receives a request for viewing user information from another participant 700 participating in the blockchain 500, the user terminal 100 notifies the user terminal 100 of the request for viewing user information by another participant 700 Can send.

이와 같은 경우, 사용자 단말(100)은 사용자 정보 열람 요청 알림을 출력하여 참여자(700)의 열람 요청 허가 또는 불허를 사용자로부터 선택 받을 수 있으며, 그 결과를 클라우드 서버(300)로 전송할 수 있다.In this case, the user terminal 100 may output a user information viewing request notification to receive permission or disallowion of the viewing request of the participant 700 from the user, and transmit the result to the cloud server 300.

재암호화키 생성부(350)는 사용자 단말(100)로부터 다른 참여자(700)의 사용자 정보 열람 허가 신호를 수신하는 경우, 재암호화키를 생성할 수 있다.The re-encryption key generation unit 350 may generate a re-encryption key when a user information viewing permission signal of another participant 700 is received from the user terminal 100.

재암호화키는 블록체인(500)에 저장된 사용자 정보(CA)의 암호문인 암호화키(pkA)를 해당 사용자 정보(CA)를 요청한 참여자(700)가 생성하는 암호화키(pkB)로 변환시킬 수 있는 암호문으로, 아래 수학식 3과 같이 나타낼 수 있다.The re-encryption key is an encryption key (pk A ) that is an encryption text of the user information (C A ) stored in the blockchain 500 as an encryption key (pk B ) generated by the participant 700 requesting the user information (C A ). As a ciphertext that can be converted, it can be expressed as Equation 3 below.

Figure pat00003
Figure pat00003

재암호화키 생성부(350)는 공지된 Atomic proxy cryptography(BBS98) 기법을 이용하여 재암호화키를 생성할 수 있다. Atomic proxy cryptography(BBS98) 기법은 프록시 재암호화 기법에서 널리 사용되는 프록시 키 생성 기법으로, 구체적인 설명은 "Blaze, M., Bleumer, G., Strauss, M., Divertible protocols and atomic proxy cryptography. Advances in Cryptology. EUROCRYPT'98, pp.127.144, 1998."에 개시되어 있다.The re-encryption key generation unit 350 may generate a re-encryption key using a known Atomic proxy cryptography (BBS98) technique. Atomic proxy cryptography (BBS98) is a proxy key generation technique widely used in proxy re-encryption techniques. Cryptology. EUROCRYPT'98, pp.127.144, 1998. "

재암호화키 생성부(350)가는 사용자 정보(CA)를 재암호화키(rkA→B)로 암호화하여 아래 수학식 4와 같은 사용자 정보(CB)를 생성할 수 있다. 이처럼 재암호화키(rkA→B)에 의해 암호화 된 사용자 정보(CB)는 사용자 정보를 요청한 참여자(700)가 생성하는 공개키(pkB)에 의해 암호화되는 사용자 정보에 해당한다.The re-encryption key generation unit 350 may encrypt the user information C A with the re-encryption key rk A → B to generate user information C B as shown in Equation 4 below. As described above, the user information C B encrypted by the re-encryption key rk A → B corresponds to user information encrypted by the public key pk B generated by the participant 700 requesting the user information.

Figure pat00004
Figure pat00004

재암호화키 생성부(350)는 재암호화키(rkA→B)에 의해 암호화 된 사용자 정보(CB)를 사용자 정보를 요청한 참여자(700)에게 전송할 수 있다.The re-encryption key generation unit 350 may transmit the user information C B encrypted by the re-encryption key (rk A → B ) to the participant 700 that requested the user information.

참여자(700)는 재암호화키 생성부(350)로부터 수학식 4와 같이 재암호화키(rkA→B)로 재암호화 된 사용자 정보(CB)를 수신하는 경우, 아래 수학식 5와 같이 자신이 생성한 비밀키(skB)로 복호화하여 사용자 정보(data)를 열람할 수 있다.When the participant 700 receives the re-encrypted user information C B with the re-encryption key (rk A → B ) from the re-encryption key generation unit 350 as shown in Equation 4, the participant 700 itself The generated secret key (sk B ) can be decrypted to retrieve user information (data).

Figure pat00005
Figure pat00005

이처럼, 재암호화키 생성부(350)는 사용자 정보의 암호문을 사용자 정보를 요청한 참여자(700)가 생성한 암호문으로 변환하여 참여자(700)에게 제공될 수 있도록 하는 재암호화키를 생성함으로써, 암호화되어 저장된 사용자 정보의 공유를 위해, 저장된 사용자 정보의 복호화 단계를 생략할 수 있다. 따라서, 악의적인 사용자에 의한 정보 노출을 방지할 수 있으며, 특히, BBS98 기법을 적용하는 경우 계산 오버헤드를 줄이고, 이산대수 계산에 따른 안전성을 보장할 수 있다.As such, the re-encryption key generator 350 is encrypted by generating a re-encryption key that converts the ciphertext of the user information into a ciphertext generated by the participant 700 that requested the user information and provides it to the participant 700 In order to share the stored user information, the decoding step of the stored user information may be omitted. Therefore, it is possible to prevent information exposure by a malicious user, and in particular, in the case of applying the BBS98 technique, it is possible to reduce the computational overhead and ensure the safety according to the discrete logarithm calculation.

아울러, 재암호화키 생성부(350)는 사용자에 의해 다른 참여자(700)의 사용자 정보 열람이 허용된 경우에만 재암호화키를 생성함으로써, 사용자 중심의 데이터 공유 서비스를 가능하게 한다.In addition, the re-encryption key generation unit 350 enables a user-oriented data sharing service by generating a re-encryption key only when a user is allowed to view user information of another participant 700.

이하에서는, 도 4를 참조하여, 도 3에 도시된 클라우드 서버에서의 데이터 공유 방법에 대하여 설명한다.Hereinafter, a method of sharing data in the cloud server illustrated in FIG. 3 will be described with reference to FIG. 4.

도 4는 본 발명의 일 실시예에 따른 블록체인 기반의 데이터 공유 방법의 순서도이다.4 is a flowchart of a blockchain-based data sharing method according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 블록체인 기반의 데이터 공유 방법은 도 1에 도시된 클라우드 서버(300)와 실질적으로 동일한 구성에서 진행될 수 있다. 따라서, 도 1의 데이터 공유 시스템(1000)과 동일한 구성요소는 동일한 도면부호를 부여하고, 반복되는 설명은 생략한다.The blockchain-based data sharing method according to an embodiment of the present invention may be performed in substantially the same configuration as the cloud server 300 shown in FIG. 1. Therefore, the same components as the data sharing system 1000 of FIG. 1 are given the same reference numerals, and repeated descriptions are omitted.

도 4를 참조하면, 클라우드 서버(300)는 암호화키(pkA, skA)를 생성할 수 있다(S10).Referring to FIG. 4, the cloud server 300 may generate encryption keys (pk A , sk A ) (S10).

암호화키는 사용자 단말(100)로부터 수신하는 사용자 정보를 암호화하는 암호문인 공개키(pkA) 및 공개키에 의해 암호화 된 사용자 정보를 복호화하는 복호문인 비밀키(skA)의 쌍으로 이루어질 수 있다. The encryption key may consist of a pair of a public key (pk A ), which is an encryption text that encrypts user information received from the user terminal 100, and a secret key (sk A ), which is a decryption text that decrypts user information encrypted by the public key. .

클라우드 서버(300)는 블록체인(500)의 참여자 중 하나로, 는 블록체인(500)에 참여하는 다른 참여자(700)들과 공유하는 암호화키 생성 소스를 이용하여 암호화키를 생성할 수 있다. The cloud server 300 is one of the participants of the blockchain 500, and may generate an encryption key by using an encryption key generation source shared with other participants 700 participating in the blockchain 500.

예를 들면, 클라우드 서버(300)는 블록체인(500)에 참여하는 적어도 하나의 참여자(700)와 공유하는 암호화키 생성 소스를 엘가말(ElGamal) 암호화 알고리즘에 적용하여 상기 수학식 1과 같이 암호화키를 생성할 수 있다. 이때, 블록체인(500)에 참여하는 적어도 하나의 참여자(700)와 공유하는 암호화키 생성 소스는 그룹 G의 큰 소수q 및 생성자 g를 포함할 수 있다.For example, the cloud server 300 applies an encryption key generation source shared with at least one participant 700 participating in the blockchain 500 to an ElGamal encryption algorithm to encrypt as shown in Equation 1 above. You can generate keys. At this time, the encryption key generation source shared with at least one participant 700 participating in the blockchain 500 may include a large prime number q and a generator g of the group G.

한편, 도 1에 도시된 적어도 하나의 참여자(700)는 각각 클라우드 서버(300)와 동일한 방식으로 공개키 및 비밀키 쌍의 암호화키를 생성하여 저장할 수 있다.Meanwhile, at least one participant 700 illustrated in FIG. 1 may generate and store encryption keys of a public key and a secret key pair in the same manner as the cloud server 300, respectively.

클라우드 서버(300)는 사용자 단말(100)로부터 사용자 정보를 수신하는 경우(S20), 사용자 단말(100)이 인증된 사용자 단말인지를 확인할 수 있다(S30).When receiving user information from the user terminal 100, the cloud server 300 may check whether the user terminal 100 is an authenticated user terminal (S30).

사용자 단말(100)은 센서 장치(10)에서 생성하는 사용자 정보를 수집하여 클라우드 서버(300)로 전송할 수 있다. 즉, 사용자는 사용자 단말(100)을 매개로 하여 센서 장치(10)에서 생성하는 사용자 정보를 클라우드 서버(300)로 전송할 수 있다.The user terminal 100 may collect user information generated by the sensor device 10 and transmit it to the cloud server 300. That is, the user may transmit user information generated by the sensor device 10 to the cloud server 300 through the user terminal 100.

클라우드 서버(300)는 사용자 단말(100)로부터 사용자 정보를 수신하는 경우, 해당 사용자 단말(100)의 식별 정보와 미리 저장된 인증된 사용자 단말 목록을 비교하여 해당 사용자 단말(100)의 인증 여부를 확인할 수 있다.When receiving the user information from the user terminal 100, the cloud server 300 compares the identification information of the user terminal 100 with a list of previously stored authenticated user terminals to check whether the user terminal 100 is authenticated or not. You can.

클라우드 서버(300)는 사용자 단말(100)이 인증된 단말인 것으로 확인되는 경우(S30), 암호화키(pkA, skA)로 사용자 정보를 암호화하여 블록체인(500)에 저장할 수 있다(S40).The cloud server 300 may encrypt the user information with the encryption keys (pk A , sk A ) and store it in the blockchain 500 when the user terminal 100 is confirmed to be an authenticated terminal (S40) (S40). ).

클라우드 서버(300)는 상기 수학식 2와 같이 공개키(pkA)를 암호문으로 하여 암호화 한 사용자 정보(CA)를 블록체인(500)에 저장할 수 있다.The cloud server 300 may store the user information C A encrypted by using the public key pk A as a ciphertext as in Equation 2 in the blockchain 500.

클라우드 서버(300)는 블록체인(500)에 참여하는 다른 참여자(700)로부터 사용자 정보 열람을 요청 받는 경우(S50), 사용자 단말(100)로 사용자 정보의 열람 요청 알림을 전달하여(S60), 이에 대한 응답으로 사용자 단말(100)로부터 사용자 정보 열람 허가 알림을 수신할 수 있다(S70).When the cloud server 300 receives a request to view user information from another participant 700 participating in the blockchain 500 (S50), the user terminal 100 transmits a notification request to view the user information (S60), In response to this, a user information viewing permission notification may be received from the user terminal 100 (S70).

여기에서, 사용자 단말(100)은 사용자 정보 열람 요청 알림을 출력하여 참여자(700)의 열람 요청 허가 또는 불허를 사용자로부터 선택 받을 수 있으며, 그 결과를 클라우드 서버(300)로 전송할 수 있다.Here, the user terminal 100 may output a user information viewing request notification to receive permission or disallow permission of the viewing request of the participant 700 from the user, and transmit the result to the cloud server 300.

클라우드 서버(300)는 사용자 단말(100)로부터 다른 참여자(700)의 사용자 정보 열람 허가 신호를 수신하는 경우(S70), 재암호화키(rkA→B)를 생성할 수 있다(S80).The cloud server 300 may generate a re-encryption key (rk A → B ) when a user information viewing permission signal of another participant 700 is received from the user terminal 100 (S70).

재암호화키는 블록체인(500)에 저장된 사용자 정보(CA)의 암호문인 암호화키(pkA)를 해당 사용자 정보(CA)를 요청한 참여자(700)가 생성하는 암호화키(pkB)로 변환시킬 수 있는 암호문으로, 상기 수학식 3과 같이 나타낼 수 있다.The re-encryption key is an encryption key (pk A ) that is an encryption text of the user information (C A ) stored in the blockchain 500 as an encryption key (pk B ) generated by the participant 700 requesting the user information (C A ). As a ciphertext that can be converted, it can be expressed as Equation 3 above.

클라우드 서버(300)는 공지된 Atomic proxy cryptography(BBS98) 기법을 이용하여 재암호화키를 생성할 수 있다. The cloud server 300 may generate a re-encryption key using a known Atomic proxy cryptography (BBS98) technique.

클라우드 서버(300)는 사용자 정보(CA)를 재암호화키(rkA→B)로 암호화하여 사용자 정보 열람을 요청한 다른 참여자(700)에게 전송할 수 있다(S90).The cloud server 300 may encrypt the user information C A with a re-encryption key (rk A → B ) and transmit it to another participant 700 requesting access to the user information (S90).

클라우드 서버(300)는 사용자 정보(CA)를 재암호화키(rkA→B)로 암호화하여 상기 수학식 4와 같은 사용자 정보(CB)를 생성할 수 있다. 이처럼 재암호화키(rkA→B)에 의해 암호화 된 사용자 정보(CB)는 사용자 정보를 요청한 참여자(700)가 생성하는 공개키(pkB)에 의해 암호화되는 사용자 정보에 해당한다.The cloud server 300 may generate the user information C B as in Equation 4 by encrypting the user information C A with the re-encryption key rk A → B. As described above, the user information C B encrypted by the re-encryption key rk A → B corresponds to user information encrypted by the public key pk B generated by the participant 700 requesting the user information.

사용자 정보를 요청한 참여자(700)는 클라우드 서버(300)로부터 수학식 4와 같이 재암호화키(rkA→B)로 재암호화 된 사용자 정보(CB)를 수신하는 경우, 상기 수학식 5와 같이 자신이 생성한 비밀키(skB)로 복호화하여 사용자 정보(data)를 열람할 수 있다.When the user 700 requesting user information receives the re-encrypted user information C B with the re-encryption key rk A → B from the cloud server 300 as shown in Equation 4, as shown in Equation 5 above. It can decrypt user-generated secret key (sk B ) to retrieve user information (data).

이에 따라, 본 발명의 일 실시예에 따른 클라우드 서버에서의 블록체인 기반의 데이터 공유 방법은 사용자 정보를 암호화하여 블록체인(500)에 저장함으로써 데이터의 기밀성을 보장할 수 있으며, 변조가 불가능하기 때문에 무결성 또한 보장할 수 있다.Accordingly, in the cloud server-based data sharing method in the cloud server according to an embodiment of the present invention, the user information is encrypted and stored in the blockchain 500, thereby guaranteeing confidentiality of data, and since modulation is impossible Integrity can also be guaranteed.

또한, 암호화된 사용자 정보를 해당 사용자 정보의 열람 요청자에게 전달하는 경우, 사용자 정보를 복호화한 뒤 요청자의 공개키로 다시 암호화하는 방식 대신 재암호화키를 이용하여 암호화된 사용자 정보의 공개키를 변환시켜 요청자에게 전달하는 방식을 채택함으로써, 사용자 정보의 복호화 단계를 생략할 수 있다. 이에, 악의적인 사용자에 의한 정보 노출을 방지할 수 있다. , 특히, BBS98 기법을 적용하는 경우 계산 오버헤드를 줄이고, 이산대수 계산에 따른 안전성을 보장할 수 있다.In addition, when the encrypted user information is delivered to the requestor of the corresponding user information, the user information is decrypted and then encrypted again with the requestor's public key. Instead, the public key of the encrypted user information is converted using the re-encryption key. By adopting a method of delivering to, it is possible to omit the decoding step of the user information. Accordingly, it is possible to prevent information exposure by a malicious user. In particular, in the case of applying the BBS98 technique, it is possible to reduce calculation overhead and ensure safety according to discrete algebra calculation.

또한, 재암호화키 생성부(350)는 사용자에 의해 다른 참여자(700)의 사용자 정보 열람이 허용된 경우에만 재암호화키를 생성함으로써, 사용자 중심의 데이터 공유 서비스를 가능하게 한다.In addition, the re-encryption key generation unit 350 enables a user-oriented data sharing service by generating a re-encryption key only when a user is allowed to view user information of another participant 700.

이와 같은, 블록체인 기반의 데이터 공유 방법은 애플리케이션으로 구현되거나 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.Such a blockchain-based data sharing method may be implemented as an application or implemented in the form of program instructions that can be executed through various computer components to be recorded in a computer-readable recording medium. The computer-readable recording medium may include program instructions, data files, data structures, or the like alone or in combination.

상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.The program instructions recorded on the computer-readable recording medium are specially designed and configured for the present invention, and may be known and usable by those skilled in the computer software field.

컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD 와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical recording media such as CD-ROMs, DVDs, and magneto-optical media such as floptical disks. media), and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like.

프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Examples of program instructions include not only machine language codes produced by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware device may be configured to operate as one or more software modules to perform processing according to the present invention, and vice versa.

이상에서는 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although described above with reference to embodiments, those skilled in the art understand that various modifications and changes can be made to the present invention without departing from the spirit and scope of the present invention as set forth in the claims below. Will be able to.

1000: 블록체인 기반의 데이터 공유 시스템
10: 센서 장치
100: 사용자 단말
300: 클라우드 서버
500: 블록체인
700: 참여자
1000: Blockchain based data sharing system
10: sensor device
100: user terminal
300: cloud server
500: Blockchain
700: participants

Claims (10)

사용자 정보를 블록체인에 저장하고, 상기 블록체인에 참여하는 다른 참여자들과 상기 블록체인에 저장된 상기 사용자 정보가 공유될 수 있도록 제어하는 클라우드 서버에서의 데이터 공유 방법에 있어서,
상기 블록체인에 참여하는 다른 참여자들과 공유하는 암호화키 생성 소스를 이용하여 암호화키를 생성하는 단계;
상기 사용자 단말로부터 상기 사용자 정보를 수신하는 경우, 상기 사용자 정보를 상기 암호화키로 암호화하여 상기 블록체인에 저장하는 단계; 및
상기 블록체인에 참여하는 다른 참여자로부터 상기 사용자 정보 열람 요청을 수신하는 경우, 상기 블록체인에 저장된 상기 사용자 정보의 암호문인 상기 암호화키를 상기 다른 참여자가 생성하는 암호화키로 변환시키는 재암호화키를 생성하고, 상기 재암호화키로 상기 블록체인에 저장된 상기 사용자 정보를 재암호화하여 상기 다른 참여자에게 전송하는 단계를 포함하는 블록체인 기반의 데이터 공유 방법.
In the data sharing method in the cloud server that stores the user information in the blockchain, and controls such that the user information stored in the blockchain can be shared with other participants participating in the blockchain,
Generating an encryption key using an encryption key generation source shared with other participants participating in the blockchain;
When receiving the user information from the user terminal, encrypting the user information with the encryption key and storing it in the blockchain; And
When receiving the request to view the user information from another participant participating in the blockchain, a re-encryption key is generated to convert the encryption key, which is an encryption text of the user information stored in the blockchain, into an encryption key generated by the other participant, And re-encrypting the user information stored in the blockchain with the re-encryption key and transmitting the information to the other participants.
제1항에 있어서,
상기 블록체인에 참여하는 다른 참여자들과 공유하는 암호화키 생성 소스를 이용하여 암호화키를 생성하는 단계는,
엘가말(ElGamal) 암호화 알고리즘을 이용하여 공개키 및 비밀키 쌍의 상기 암호화키를 생성하는 단계를 포함하는 블록체인 기반의 데이터 공유 방법.
According to claim 1,
Generating an encryption key using an encryption key generation source shared with other participants participating in the blockchain,
Blockchain-based data sharing method comprising the step of generating the encryption key of a public key and a secret key pair using an ElGamal encryption algorithm.
제1항에 있어서,
상기 사용자 단말로부터 상기 사용자 정보를 수신하는 경우, 상기 사용자 정보를 상기 암호화키로 암호화하여 상기 블록체인에 저장하는 단계는,
상기 사용자 단말의 인증 여부를 확인하는 단계; 및
상기 사용자 단말이 인증된 단말로 확인되는 경우, 상기 사용자 정보를 상기 암호화키로 암호화하여 상기 블록체인에 저장하는 단계를 포함하는 블록체인 기반의 데이터 공유 방법.
According to claim 1,
When receiving the user information from the user terminal, the step of encrypting the user information with the encryption key and storing it in the blockchain,
Checking whether the user terminal is authenticated; And
A method for sharing data based on a blockchain, comprising the step of encrypting the user information with the encryption key and storing the user information in the blockchain when the user terminal is identified as an authenticated terminal.
제1항에 있어서,
상기 블록체인에 참여하는 다른 참여자로부터 상기 사용자 정보 열람 요청을 수신하는 경우, 상기 블록체인에 저장된 상기 사용자 정보의 암호문인 상기 암호화키를 상기 다른 참여자가 생성하는 암호화키로 변환시키는 재암호화키를 생성하고, 상기 재암호화키로 상기 블록체인에 저장된 상기 사용자 정보를 재암호화하여 상기 다른 참여자에게 전송하는 단계는,
상기 사용자 단말로 상기 다른 참여자의 상기 사용자 정보 열람 요청 알림을 전송하는 단계; 및
상기 사용자 단말로부터 상기 다른 참여자의 상기 사용자 정보 열람 허가 알림을 수신하는 경우, 상기 재암호화키를 생성하는 단계를 포함하는 블록체인 기반의 데이터 공유 방법.
According to claim 1,
When receiving the request to view the user information from another participant participating in the blockchain, a re-encryption key is generated to convert the encryption key, which is an encryption text of the user information stored in the blockchain, into an encryption key generated by the other participant, , Re-encrypting the user information stored in the blockchain with the re-encryption key and transmitting to the other participants,
Transmitting a notification requesting the viewing of the user information of the other participants to the user terminal; And
And receiving the notification of permission to view the user information of the other participant from the user terminal, generating the re-encryption key.
사용자 정보를 블록체인에 저장하고, 상기 블록체인에 참여하는 다른 참여자들과 상기 블록체인에 저장된 상기 사용자 정보가 공유될 수 있도록 제어하는 클라우드 서버에 있어서,
상기 블록체인에 참여하는 다른 참여자들과 공유하는 암호화키 생성 소스를 이용하여 암호화키를 생성하는 암호화키 생성부;
상기 사용자 단말로부터 상기 사용자 정보를 수신하는 경우, 상기 사용자 정보를 상기 암호화키로 암호화하여 상기 블록체인에 저장하는 암호화부; 및
상기 블록체인에 참여하는 다른 참여자로부터 상기 사용자 정보 열람 요청을 수신하는 경우, 상기 블록체인에 저장된 상기 사용자 정보의 암호문인 상기 암호화키를 상기 다른 참여자가 생성하는 암호화키로 변환시키는 재암호화키를 생성하고, 상기 재암호화키로 상기 블록체인에 저장된 상기 사용자 정보를 재암호화하여 상기 다른 참여자에게 전송하는 재암호화키 생성부를 포함하는 클라우드 서버.
In the cloud server that stores the user information in the blockchain, and controls such that the user information stored in the blockchain can be shared with other participants participating in the blockchain,
An encryption key generator for generating an encryption key using an encryption key generation source shared with other participants participating in the blockchain;
An encryption unit for encrypting the user information with the encryption key and storing the user information in the blockchain when receiving the user information from the user terminal; And
When receiving the request to view the user information from another participant participating in the blockchain, a re-encryption key is generated to convert the encryption key, which is an encryption text of the user information stored in the blockchain, into an encryption key generated by the other participant, And a re-encryption key generator for re-encrypting the user information stored in the blockchain with the re-encryption key and transmitting it to the other participants.
제5항에 있어서,
상기 암호화키 생성부는,
엘가말(ElGamal) 암호화 알고리즘을 이용하여 공개키 및 비밀키 쌍의 상기 암호화키를 생성하는 클라우드 서버.
The method of claim 5,
The encryption key generation unit,
A cloud server generating the encryption key of a public key and a secret key pair using an ElGamal encryption algorithm.
제5항에 있어서,
상기 암호화부는,
상기 사용자 단말의 인증 여부를 확인하여 상기 사용자 단말이 인증된 단말로 확인되는 경우, 상기 사용자 정보를 상기 암호화키로 암호화하여 상기 블록체인에 저장하는 클라우드 서버.
The method of claim 5,
The encryption unit,
A cloud server that checks whether the user terminal is authenticated and if the user terminal is identified as an authenticated terminal, encrypts the user information with the encryption key and stores it in the blockchain.
제5항에 있어서,
상기 재암호화키 생성부는,
상기 사용자 단말로 상기 다른 참여자의 상기 사용자 정보 열람 요청 알림을 전송하고, 상기 사용자 단말로부터 상기 다른 참여자의 상기 사용자 정보 열람 허가 알림을 수신하는 경우, 상기 재암호화키를 생성하는 클라우드 서버.
The method of claim 5,
The re-encryption key generation unit,
A cloud server that generates the re-encryption key when the user terminal sends a notification request to view the user information of the other participant to the user terminal and receives the user information read permission notification of the other participant from the user terminal.
사용자 정보를 수집하는 사용자 단말;
상기 사용자 정보를 저장하는 블록체인;
상기 블록체인에 참여하며, 상기 블록체인에 저장된 상기 사용자 정보의 열람을 요청하는 적어도 하나의 참여자; 및
상기 사용자 단말로부터 상기 사용자 정보를 수신하는 경우, 상기 사용자 정보를 상기 블록체인에 저장하되, 상기 적어도 하나의 참여자와 공유하는 암호화키 생성 소스를 이용하여 암호화키를 생성하고, 상기 사용자 정보를 상기 암호화키로 암호화하여 상기 블록체인에 저장하며,
상기 적어도 하나의 참여자 중 어느 하나의 참여자로부터 상기 사용자 정보 열람 요청을 수신하는 경우, 상기 블록체인에 저장된 상기 사용자 정보의 암호문인 상기 암호화키를 상기 사용자 정보의 열람을 요청한 참여자가 생성하는 암호화키로 변환시키는 재암호화키를 생성하고, 상기 재암호화키로 상기 블록체인에 저장된 상기 사용자 정보를 재암호화하여 상기 사용자 정보의 열람을 요청한 참여자에게 전송하는 클라우드 서버를 포함하는 블록체인 기반의 데이터 공유 시스템.
A user terminal for collecting user information;
A blockchain that stores the user information;
At least one participant participating in the blockchain and requesting access to the user information stored in the blockchain; And
When receiving the user information from the user terminal, the user information is stored in the blockchain, and an encryption key is generated using an encryption key generation source shared with the at least one participant, and the user information is encrypted. Encrypted with a key and stored on the blockchain,
When receiving the request to view the user information from any one of the at least one participant, the encryption key, which is a cipher text of the user information stored in the blockchain, is converted into an encryption key generated by a participant who requests the view of the user information. Blockchain-based data sharing system comprising a cloud server that generates a re-encryption key, and re-encrypts the user information stored in the blockchain with the re-encryption key, and transmits it to a participant who requests access to the user information.
제9항에 있어서,
상기 적어도 하나의 참여자는,
각각 상기 암호화키 생성 소스를 이용하여 암호화키를 생성하고,
상기 클라우드 서버로부터 상기 재암호화키에 의해 암호화 된 상기 사용자 정보를 수신하는 경우, 상기 암호화키 생성 소스를 이용하여 생성한 암호화키로 상기 재암호화키에 의해 암호화 된 상기 사용자 정보를 복호화하여 열람하는 블록체인 기반의 데이터 공유 시스템.
The method of claim 9,
The at least one participant,
Each encryption key is generated using the encryption key generation source,
When receiving the user information encrypted by the re-encryption key from the cloud server, a blockchain that decrypts and reads the user information encrypted by the re-encryption key with an encryption key generated using the encryption key generation source Based data sharing system.
KR1020180111415A 2018-09-18 2018-09-18 Method of data sharing based on blockchain, cloud server for performing the method and data sharing system including the cloud server KR20200032412A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180111415A KR20200032412A (en) 2018-09-18 2018-09-18 Method of data sharing based on blockchain, cloud server for performing the method and data sharing system including the cloud server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180111415A KR20200032412A (en) 2018-09-18 2018-09-18 Method of data sharing based on blockchain, cloud server for performing the method and data sharing system including the cloud server

Publications (1)

Publication Number Publication Date
KR20200032412A true KR20200032412A (en) 2020-03-26

Family

ID=69958562

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180111415A KR20200032412A (en) 2018-09-18 2018-09-18 Method of data sharing based on blockchain, cloud server for performing the method and data sharing system including the cloud server

Country Status (1)

Country Link
KR (1) KR20200032412A (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113132103A (en) * 2021-03-11 2021-07-16 西安电子科技大学 Data cross-domain security sharing system and method
CN113609502A (en) * 2021-08-06 2021-11-05 东北大学 Space crowdsourcing system and method based on block chain
KR20220124674A (en) * 2020-04-29 2022-09-14 주식회사 디케이아이테크놀로지 Personal Health Record Share Method Using Blockchain And PKI Technic
CN115150397A (en) * 2022-07-07 2022-10-04 中国电信股份有限公司 Resource sharing method and device, storage medium and electronic equipment
WO2023074930A1 (en) * 2021-10-26 2023-05-04 주식회사 인트인 Body fluid management server and method
KR102552295B1 (en) * 2022-04-11 2023-07-06 세종대학교산학협력단 Method and System for User Authentication based on Private Blockchain in Open Cloud Platform Including Sensitive Information
CN116599647A (en) * 2023-06-29 2023-08-15 中国电信股份有限公司 Information processing method, service node, blockchain network, and storage medium

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220124674A (en) * 2020-04-29 2022-09-14 주식회사 디케이아이테크놀로지 Personal Health Record Share Method Using Blockchain And PKI Technic
CN113132103A (en) * 2021-03-11 2021-07-16 西安电子科技大学 Data cross-domain security sharing system and method
CN113132103B (en) * 2021-03-11 2022-07-12 西安电子科技大学 Data cross-domain security sharing system and method
CN113609502A (en) * 2021-08-06 2021-11-05 东北大学 Space crowdsourcing system and method based on block chain
CN113609502B (en) * 2021-08-06 2023-09-26 东北大学 Space crowdsourcing system and method based on block chain
WO2023074930A1 (en) * 2021-10-26 2023-05-04 주식회사 인트인 Body fluid management server and method
KR102552295B1 (en) * 2022-04-11 2023-07-06 세종대학교산학협력단 Method and System for User Authentication based on Private Blockchain in Open Cloud Platform Including Sensitive Information
CN115150397A (en) * 2022-07-07 2022-10-04 中国电信股份有限公司 Resource sharing method and device, storage medium and electronic equipment
CN116599647A (en) * 2023-06-29 2023-08-15 中国电信股份有限公司 Information processing method, service node, blockchain network, and storage medium
CN116599647B (en) * 2023-06-29 2023-09-29 中国电信股份有限公司 Information processing method, service node, blockchain network, and storage medium

Similar Documents

Publication Publication Date Title
KR20200032412A (en) Method of data sharing based on blockchain, cloud server for performing the method and data sharing system including the cloud server
Fabian et al. Collaborative and secure sharing of healthcare data in multi-clouds
Pussewalage et al. Privacy preserving mechanisms for enforcing security and privacy requirements in E-health solutions
JP5897040B2 (en) Secure access to emergency personal health records
KR20190117286A (en) User device and electronic device for sharing data based on block chain and homomorphic encryption technology and methods thereof
US10164950B2 (en) Controlling access to clinical data analyzed by remote computing resources
Sharma et al. RSA based encryption approach for preserving confidentiality of big data
T. de Oliveira et al. A break-glass protocol based on ciphertext-policy attribute-based encryption to access medical records in the cloud
Sethia et al. CP-ABE for selective access with scalable revocation: A case study for mobile-based healthfolder.
Abouali et al. Blockchain framework for secured on-demand patient health records sharing
KR20120132708A (en) Distributed access priviledge management apparatus and method in cloud computing environments
KR101022213B1 (en) Method and apparatus for sharing and secondary use of medical data based on multi-proxy re-encryption
Tong et al. Towards auditable cloud-assisted access of encrypted health data
KR102605087B1 (en) System and method for sharing patient's medical data in medical cloud environment
CN112836240A (en) Block chain-based electronic medical data security sharing method, system and medium
CN115766098A (en) Personal health data sharing method based on block chain and proxy re-encryption
Sassi et al. Security and privacy protection in the e-health system: Remote monitoring of covid-19 patients as a use case
Chondamrongkul et al. Secure mobile cloud architecture for healthcare application
Hussein Cloud-Based Efficient and Secure Scheme for Medical Images Storage and Sharing using ECC and SHA-3
Wenhua et al. A lightweight security model for ensuring patient privacy and confidentiality in telehealth applications
De Oliveira et al. Red Alert: break-glass protocol to access encrypted medical records in the cloud
De Ree et al. A key management framework to secure IoMT-enabled healthcare systems
Dakhel et al. A secure wireless body area network for E-health application using blockchain
Sethia et al. Security framework for portable NFC mobile based health record system
Vidhya et al. Secured Health Data Transmission Using Lagrange Interpolation and Artificial Neural Network.

Legal Events

Date Code Title Description
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X601 Decision of rejection after re-examination