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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/0825—Key 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key 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/0841—Key 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/0844—Key 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H04L2209/38—
Abstract
Description
본 발명은 블록체인 기반의 데이터 공유 방법, 이를 수행하기 위한 클라우드 서버 및 이를 포함하는 데이터 공유 시스템에 관한 것으로서, 더욱 상세하게는 블록체인에 저장되는 사용자 정보를 블록체인 참여자 간에 안전하게 공유하기 위한 블록체인 기반의 데이터 공유 방법, 이를 수행하기 위한 클라우드 서버 및 이를 포함하는 데이터 공유 시스템에 관한 것이다.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
본 발명의 일 실시예에 따른 블록체인 기반의 데이터 공유 시스템(1000)은 사용자 정보의 공유를 제어하는 주체를 사용자 정보를 생성하는 사용자에게 두어, 사용자 정보를 다른 외부자들과 공유하는 다양한 환경에 적용되기에 적합하다.The blockchain-based
예를 들면, 본 발명의 일 실시예에 따른 블록체인 기반의 데이터 공유 시스템(1000)은 의료 정보 공유 시스템에 적용될 수 있다. 의료 정보 공유 시스템은 환자가 치료이력, 생체 데이터, 증상 등의 의료 정보를 직접 수집하고, 환자를 진료하는 의료기관뿐만 아니라 다른 의료기관에서도 의료 정보가 공유될 수 있도록 하여 환자의 의료 정보를 통합 관리하는 시스템이다. 종래의 의료 정보 공유 시스템에 따르면 의료 정보는 환자를 진료하는 의료기관을 중심으로 관리되므로, 데이터의 파편화를 초래할 수 있으며, 보안성이 취약하다. 본 발명의 일 실시예에 따른 블록체인 기반의 데이터 공유 시스템(1000)은 의료 정보를 수집하는 환자가 데이터 관리의 중심이 되게 함으로써 데이터 통합이 유리하며, 의료 정보 유출에 따른 피해를 예방할 수 있다.For example, the blockchain-based
도 1을 참조하면, 본 발명의 일 실시예에 따른 블록체인 기반의 데이터 공유 시스템(1000)은 클라우드 서버(300) 및 적어도 하나의 참여자(700)에 의해 구축되는 블록체인(500), 사용자 정보를 생성하는 센서 장치(10) 및 사용자 정보를 클라우드 서버(300)로 전송하여 블록체인(500)에 저장되게 하는 사용자 단말(100)을 포함할 수 있다.Referring to FIG. 1, a blockchain-based
센서 장치(10)는 사용자 정보를 생성 또는 수집할 수 있다. 사용자는 센서 장치(10)를 이용하여 다른 사용자와 공유하고자 하는 데이터를 생성할 수 있다.The
예를 들면, 센서 장치(10)는 사용자의 신체에 장착되어 생체 데이터, 각종 증상 또는 생활습관 등을 포함하는 사용자 정보를 생성하는 웨어러블 디바이스일 수 있다.For example, the
사용자 단말(100)은 센서 장치(10)에서 생성하는 사용자 정보를 수집하여 클라우드 서버(300)로 전송할 수 있다. 즉, 사용자는 사용자 단말(100)을 매개로 하여 센서 장치(10)에서 생성하는 사용자 정보를 클라우드 서버(300)로 전송할 수 있다. The
이를 위해, 사용자 단말(100)은 통신이 가능하고 정보의 입출력이 가능한 장치로, 예를 들면, PC, 스마트폰, 테블릿 등으로 구현될 수 있다.To this end, the
블록체인(500)은 분산 데이터베이스와 유사한 형태로 데이터를 저장하는 구조체 리스트로, 본 실시예에서는 클라우드 서버(300) 및 적어도 하나의 참여자(700)에 의해 구축될 수 있다. 클라우드 서버(300) 및 적어도 하나의 참여자(700)는 블록체인(500)에 정보의 저장 또는 열람이 가능하다.
클라우드 서버(300)는 클라이언트의 접속요청에 응답하여 소정의 정보를 제공하는 일반적인 형태의 서버로, 본 실시예에서 블록체인(500)에 참여하는 네트워크 중 하나일 수 있다. The
클라우드 서버(300)는 사용자 단말(100)로부터 수신하는 사용자 정보를 암호화하여 블록체인(500)에 저장할 수 있다. 클라우드 서버(300)는 블록체인(500)에 참여하는 다른 참여자(700)가 사용자 정보의 열람을 요청하는 경우, 이를 사용자 단말(100)을 통해 사용자에게 알리고, 사용자의 통제 하에서 다른 참여자(700)의 사용자 정보 열람을 가능하게 한다. The
여기에서, 클라우드 서버(300)는 프록시 재암호화(Proxy Re-Encryption) 기법을 적용할 수 있다. 프록시 재암호화 기법은 프록시 개체(Entity)가 기본 메시지에 대해 아무것도 알지 않고도 하나의 공개키에서 다른 공개키로 암호문을 변환할 수 있게 해주는 일종의 공개키 암호화 기법이다. 이와 관련하여 도 2를 참조하여 구체적으로 설명한다.Here, the
도 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
도 2를 참조하면, 클라우드 서버(300) 및 적어도 하나의 참여자(700)는 블록체인(500)을 구축하는데, 각각 암호화키를 생성하여 저장할 수 있다. 암호화키는 사용자 정보의 암호문인 공개키(pkA, pkB) 및 암호화된 사용자 정보를 복호화 하는 데 사용되는 비밀키(skA, skB)의 쌍으로 구성될 수 있다.Referring to FIG. 2, the
사용자 단말(100)은 사용자 정보(data)를 수집하여 클라우드 서버(300)로 전송할 수 있다.The
클라우드 서버(300)는 사용자 단말(100)이 인증된 단말인지를 확인하고, 사용자 단말(100)이 인증된 단말로 확인되는 경우, 사용자 단말(100)로부터 수신하는 사용자 정보(data)를 공개키(pkA)로 암호화하여 블록체인(500)에 저장할 수 있다.The
클라우드 서버(300)는 공개키(pkA)에 의해 암호화 된 사용자 정보(CA)를 저장할 수 있다.The
클라우드 서버(300)는 참여자(700)로부터 사용자 정보(data) 열람 요청을 수신하는 경우, 사용자 단말(100)로 해당 참여자(700)의 사용자 정보 열람 요청 알림을 전송할 수 있다.When receiving a request to view user information (data) from the
사용자 단말(100)은 참여자(700)의 사용자 정보(data) 열람 요청 알림을 출력하여 사용자로부터 참여자(700)의 사용자 정보(data) 열람 허가 또는 차단을 선택 받고, 그 결과를 클라우드 서버(300)로 전송할 수 있다.The
클라우드 서버(300)는 사용자 단말(100)로부터 참여자(700)의 사용자 정보(data) 열람 허가 신호를 수신하는 경우, 재암호화키(rkA→B)를 생성할 수 있다. 재암호화키(rkA→B)는 블록체인(500)에 저장된 사용자 정보(CA)의 암호문인 클라우드 서버(300)가 생성한 공개키(pkA)를 참여자(700)가 생성한 공개키(pkB)로 변환시키는 암호문이다.The
클라우드 서버(300)는 재암호화키(rkA→B)를 이용하여 사용자 정보(CA)를 재암호화하고, 이를 참여자(700)에게 전송할 수 있다.The
참여자(700)는 클라우드 서버(300)로부터 재암호화키(rkA→B)에 의해 재암호화 된 사용자 정보(CB)를 수신하는 경우, 비밀키(skB)로 복호화하여 사용자 정보(data)를 열람할 수 있다.When the
이와 같이, 본 발명의 일 실시예에 따른 블록체인 기반의 데이터 공유 시스템(1000)은 사용자 정보를 암호화하여 블록체인(500)에 저장함으로써 데이터의 기밀성을 보장할 수 있으며, 변조가 불가능하기 때문에 무결성 또한 보장할 수 있다.As described above, the blockchain-based
또한, 본 발명의 일 실시예에 따른 블록체인 기반의 데이터 공유 시스템(1000)은 암호화된 사용자 정보를 해당 사용자 정보의 열람 요청자에게 전달하는 경우, 사용자 정보를 복호화한 뒤 요청자의 공개키로 다시 암호화하는 방식 대신 재암호화키를 이용하여 암호화된 사용자 정보의 공개키를 변환시켜 요청자에게 전달하는 방식을 채택함으로써, 사용자 정보의 복호화 단계를 생략할 수 있다. 이에, 악의적인 사용자에 의한 정보 노출을 방지할 수 있다. In addition, the blockchain-based
또한, 본 발명의 일 실시예에 따른 블록체인 기반의 데이터 공유 시스템(1000)은 사용자가 생성하는 사용자 정보의 공유가 사용자의 관리 하에 이루어지도록 함으로써, 데이터의 통합에 유리하다.In addition, the blockchain-based
도 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
클라우드 서버(300)는 상술한 바와 같이 사용자 단말(100)로부터 사용자 정보를 수집하고, 사용자 정보를 암호화하여 블록체인(500)에 저장할 수 있다.The
또한, 클라우드 서버(300)는 블록체인(500)의 다른 참여자(700)로부터 사용자 정보의 열람 요청 신호를 수신하는 경우, 암호화 된 사용자 정보의 암호문을 변환시키는 재암호화키를 생성하고, 재암호화키로 암호화 된 사용자 정보를 재암호화하여 사용자 정보를 요청한 참여자(700)에게 전송할 수 있으며, 참여자(700)는 재암호화 된 사용자 정보를 복호화하여 열람할 수 있다.In addition, the
이하, 도 3에 도시된 클라우드 서버(300)의 각 구성에 대하여 구체적으로 설명한다.Hereinafter, each configuration of the
암호화키 생성부(310)는 사용자 정보를 암호화 또는 복호화 하는 데 사용되는 암호화키를 생성하여 저장할 수 있다.The
암호화키는 사용자 단말(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
암호화키 생성부(310)는 블록체인(500)에 참여하는 적어도 하나의 참여자(700)와 공유하는 암호화키 생성 소스를 이용하여 암호화키를 생성할 수 있다.The encryption
예를 들면, 암호화키 생성부(310)는 블록체인(500)에 참여하는 적어도 하나의 참여자(700)와 공유하는 암호화키 생성 소스를 엘가말(ElGamal) 암호화 알고리즘에 적용하여 아래 수학식 1과 같이 공개키(pk) 및 비밀키(sk) 쌍의 암호화키를 생성할 수 있다. 이때, 블록체인(500)에 참여하는 적어도 하나의 참여자(700)와 공유하는 암호화키 생성 소스는 그룹 G의 큰 소수q 및 생성자 g를 포함할 수 있다.For example, the encryption
한편, 도 1에 도시된 적어도 하나의 참여자(700)는 각각 위와 같은 방식으로 블록체인(500)에 참여하는 적어도 하나의 참여자(700)와 공유하는 암호화키 생성 소스를 이용하여 공개키 및 비밀키 쌍의 암호화키를 생성하여 저장할 수 있다.Meanwhile, at least one
암호화부(330)는 사용자 단말(100)로부터 수신하는 사용자 정보를 암호화할 수 있다.The
암호화부(330)는 사용자 단말(100)로부터 사용자 정보를 수신하는 경우, 사용자 단말(100)의 인증 여부를 확인할 수 있다.When receiving user information from the
예를 들면, 암호화부(330)는 사용자 단말(100)로부터 사용자 정보를 수신하는 경우, 해당 사용자 단말(100)의 식별 정보와 미리 저장된 인증된 사용자 단말 목록을 비교하여 해당 사용자 단말(100)의 인증 여부를 확인할 수 있다.For example, when receiving user information from the
암호화부(330)는 사용자 단말(100)이 인증된 단말로 확인되는 경우, 사용자 정보를 암호화키로 암호화하여 블록체인(500)에 저장할 수 있다. When the
즉, 블록체인(500)에는 클라우드 서버(300)에서 생성하는 공개키(pkA)에 의해 암호화 된 상태의 사용자 정보(CA)가 저장될 수 있다. That is, the user information C A in the state encrypted by the public key pk A generated by the
이처럼, 암호화부(330)는 인증된 사용자 단말(100)로부터 수신하는 사용자 정보에 한하여 블록체인(500)에 저장하며, 아울러, 사용자 정보를 암호화하여 저장함으로써, 데이터의 기밀성을 보장할 수 있다.As described above, the
재암호화키 생성부(350)는 블록체인(500)에 저장된 사용자 정보(CA)의 암호문인 암호화키(pkA)를 다른 암호화키로 변환시키는 재암호화키를 생성할 수 있다.The re-encryption
재암호화키 생성부(350)는 블록체인(500)에 참여하는 다른 참여자(700)로부터 블록체인(500)에 저장된 사용자 정보의 열람 요청을 수신할 수 있다.The re-encryption
재암호화키 생성부(350)는 블록체인(500)에 참여하는 다른 참여자(700)로부터 사용자 정보의 열람 요청을 수신하는 경우, 사용자 단말(100)로 다른 참여자(700)의 사용자 정보 열람 요청 알림을 전송할 수 있다.When the re-encryption
이와 같은 경우, 사용자 단말(100)은 사용자 정보 열람 요청 알림을 출력하여 참여자(700)의 열람 요청 허가 또는 불허를 사용자로부터 선택 받을 수 있으며, 그 결과를 클라우드 서버(300)로 전송할 수 있다.In this case, the
재암호화키 생성부(350)는 사용자 단말(100)로부터 다른 참여자(700)의 사용자 정보 열람 허가 신호를 수신하는 경우, 재암호화키를 생성할 수 있다.The re-encryption
재암호화키는 블록체인(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
재암호화키 생성부(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
재암호화키 생성부(350)가는 사용자 정보(CA)를 재암호화키(rkA→B)로 암호화하여 아래 수학식 4와 같은 사용자 정보(CB)를 생성할 수 있다. 이처럼 재암호화키(rkA→B)에 의해 암호화 된 사용자 정보(CB)는 사용자 정보를 요청한 참여자(700)가 생성하는 공개키(pkB)에 의해 암호화되는 사용자 정보에 해당한다.The re-encryption
재암호화키 생성부(350)는 재암호화키(rkA→B)에 의해 암호화 된 사용자 정보(CB)를 사용자 정보를 요청한 참여자(700)에게 전송할 수 있다.The re-encryption
참여자(700)는 재암호화키 생성부(350)로부터 수학식 4와 같이 재암호화키(rkA→B)로 재암호화 된 사용자 정보(CB)를 수신하는 경우, 아래 수학식 5와 같이 자신이 생성한 비밀키(skB)로 복호화하여 사용자 정보(data)를 열람할 수 있다.When the
이처럼, 재암호화키 생성부(350)는 사용자 정보의 암호문을 사용자 정보를 요청한 참여자(700)가 생성한 암호문으로 변환하여 참여자(700)에게 제공될 수 있도록 하는 재암호화키를 생성함으로써, 암호화되어 저장된 사용자 정보의 공유를 위해, 저장된 사용자 정보의 복호화 단계를 생략할 수 있다. 따라서, 악의적인 사용자에 의한 정보 노출을 방지할 수 있으며, 특히, BBS98 기법을 적용하는 경우 계산 오버헤드를 줄이고, 이산대수 계산에 따른 안전성을 보장할 수 있다.As such, the re-encryption
아울러, 재암호화키 생성부(350)는 사용자에 의해 다른 참여자(700)의 사용자 정보 열람이 허용된 경우에만 재암호화키를 생성함으로써, 사용자 중심의 데이터 공유 서비스를 가능하게 한다.In addition, the re-encryption
이하에서는, 도 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
도 4를 참조하면, 클라우드 서버(300)는 암호화키(pkA, skA)를 생성할 수 있다(S10).Referring to FIG. 4, the
암호화키는 사용자 단말(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
클라우드 서버(300)는 블록체인(500)의 참여자 중 하나로, 는 블록체인(500)에 참여하는 다른 참여자(700)들과 공유하는 암호화키 생성 소스를 이용하여 암호화키를 생성할 수 있다. The
예를 들면, 클라우드 서버(300)는 블록체인(500)에 참여하는 적어도 하나의 참여자(700)와 공유하는 암호화키 생성 소스를 엘가말(ElGamal) 암호화 알고리즘에 적용하여 상기 수학식 1과 같이 암호화키를 생성할 수 있다. 이때, 블록체인(500)에 참여하는 적어도 하나의 참여자(700)와 공유하는 암호화키 생성 소스는 그룹 G의 큰 소수q 및 생성자 g를 포함할 수 있다.For example, the
한편, 도 1에 도시된 적어도 하나의 참여자(700)는 각각 클라우드 서버(300)와 동일한 방식으로 공개키 및 비밀키 쌍의 암호화키를 생성하여 저장할 수 있다.Meanwhile, at least one
클라우드 서버(300)는 사용자 단말(100)로부터 사용자 정보를 수신하는 경우(S20), 사용자 단말(100)이 인증된 사용자 단말인지를 확인할 수 있다(S30).When receiving user information from the
사용자 단말(100)은 센서 장치(10)에서 생성하는 사용자 정보를 수집하여 클라우드 서버(300)로 전송할 수 있다. 즉, 사용자는 사용자 단말(100)을 매개로 하여 센서 장치(10)에서 생성하는 사용자 정보를 클라우드 서버(300)로 전송할 수 있다.The
클라우드 서버(300)는 사용자 단말(100)로부터 사용자 정보를 수신하는 경우, 해당 사용자 단말(100)의 식별 정보와 미리 저장된 인증된 사용자 단말 목록을 비교하여 해당 사용자 단말(100)의 인증 여부를 확인할 수 있다.When receiving the user information from the
클라우드 서버(300)는 사용자 단말(100)이 인증된 단말인 것으로 확인되는 경우(S30), 암호화키(pkA, skA)로 사용자 정보를 암호화하여 블록체인(500)에 저장할 수 있다(S40).The
클라우드 서버(300)는 상기 수학식 2와 같이 공개키(pkA)를 암호문으로 하여 암호화 한 사용자 정보(CA)를 블록체인(500)에 저장할 수 있다.The
클라우드 서버(300)는 블록체인(500)에 참여하는 다른 참여자(700)로부터 사용자 정보 열람을 요청 받는 경우(S50), 사용자 단말(100)로 사용자 정보의 열람 요청 알림을 전달하여(S60), 이에 대한 응답으로 사용자 단말(100)로부터 사용자 정보 열람 허가 알림을 수신할 수 있다(S70).When the
여기에서, 사용자 단말(100)은 사용자 정보 열람 요청 알림을 출력하여 참여자(700)의 열람 요청 허가 또는 불허를 사용자로부터 선택 받을 수 있으며, 그 결과를 클라우드 서버(300)로 전송할 수 있다.Here, the
클라우드 서버(300)는 사용자 단말(100)로부터 다른 참여자(700)의 사용자 정보 열람 허가 신호를 수신하는 경우(S70), 재암호화키(rkA→B)를 생성할 수 있다(S80).The
재암호화키는 블록체인(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
클라우드 서버(300)는 공지된 Atomic proxy cryptography(BBS98) 기법을 이용하여 재암호화키를 생성할 수 있다. The
클라우드 서버(300)는 사용자 정보(CA)를 재암호화키(rkA→B)로 암호화하여 사용자 정보 열람을 요청한 다른 참여자(700)에게 전송할 수 있다(S90).The
클라우드 서버(300)는 사용자 정보(CA)를 재암호화키(rkA→B)로 암호화하여 상기 수학식 4와 같은 사용자 정보(CB)를 생성할 수 있다. 이처럼 재암호화키(rkA→B)에 의해 암호화 된 사용자 정보(CB)는 사용자 정보를 요청한 참여자(700)가 생성하는 공개키(pkB)에 의해 암호화되는 사용자 정보에 해당한다.The
사용자 정보를 요청한 참여자(700)는 클라우드 서버(300)로부터 수학식 4와 같이 재암호화키(rkA→B)로 재암호화 된 사용자 정보(CB)를 수신하는 경우, 상기 수학식 5와 같이 자신이 생성한 비밀키(skB)로 복호화하여 사용자 정보(data)를 열람할 수 있다.When the
이에 따라, 본 발명의 일 실시예에 따른 클라우드 서버에서의 블록체인 기반의 데이터 공유 방법은 사용자 정보를 암호화하여 블록체인(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
또한, 암호화된 사용자 정보를 해당 사용자 정보의 열람 요청자에게 전달하는 경우, 사용자 정보를 복호화한 뒤 요청자의 공개키로 다시 암호화하는 방식 대신 재암호화키를 이용하여 암호화된 사용자 정보의 공개키를 변환시켜 요청자에게 전달하는 방식을 채택함으로써, 사용자 정보의 복호화 단계를 생략할 수 있다. 이에, 악의적인 사용자에 의한 정보 노출을 방지할 수 있다. , 특히, 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
이와 같은, 블록체인 기반의 데이터 공유 방법은 애플리케이션으로 구현되거나 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.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.
상기 블록체인에 참여하는 다른 참여자들과 공유하는 암호화키 생성 소스를 이용하여 암호화키를 생성하는 단계는,
엘가말(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.
상기 사용자 단말로부터 상기 사용자 정보를 수신하는 경우, 상기 사용자 정보를 상기 암호화키로 암호화하여 상기 블록체인에 저장하는 단계는,
상기 사용자 단말의 인증 여부를 확인하는 단계; 및
상기 사용자 단말이 인증된 단말로 확인되는 경우, 상기 사용자 정보를 상기 암호화키로 암호화하여 상기 블록체인에 저장하는 단계를 포함하는 블록체인 기반의 데이터 공유 방법.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.
상기 블록체인에 참여하는 다른 참여자로부터 상기 사용자 정보 열람 요청을 수신하는 경우, 상기 블록체인에 저장된 상기 사용자 정보의 암호문인 상기 암호화키를 상기 다른 참여자가 생성하는 암호화키로 변환시키는 재암호화키를 생성하고, 상기 재암호화키로 상기 블록체인에 저장된 상기 사용자 정보를 재암호화하여 상기 다른 참여자에게 전송하는 단계는,
상기 사용자 단말로 상기 다른 참여자의 상기 사용자 정보 열람 요청 알림을 전송하는 단계; 및
상기 사용자 단말로부터 상기 다른 참여자의 상기 사용자 정보 열람 허가 알림을 수신하는 경우, 상기 재암호화키를 생성하는 단계를 포함하는 블록체인 기반의 데이터 공유 방법.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.
상기 암호화키 생성부는,
엘가말(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.
상기 암호화부는,
상기 사용자 단말의 인증 여부를 확인하여 상기 사용자 단말이 인증된 단말로 확인되는 경우, 상기 사용자 정보를 상기 암호화키로 암호화하여 상기 블록체인에 저장하는 클라우드 서버.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.
상기 재암호화키 생성부는,
상기 사용자 단말로 상기 다른 참여자의 상기 사용자 정보 열람 요청 알림을 전송하고, 상기 사용자 단말로부터 상기 다른 참여자의 상기 사용자 정보 열람 허가 알림을 수신하는 경우, 상기 재암호화키를 생성하는 클라우드 서버.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.
상기 적어도 하나의 참여자는,
각각 상기 암호화키 생성 소스를 이용하여 암호화키를 생성하고,
상기 클라우드 서버로부터 상기 재암호화키에 의해 암호화 된 상기 사용자 정보를 수신하는 경우, 상기 암호화키 생성 소스를 이용하여 생성한 암호화키로 상기 재암호화키에 의해 암호화 된 상기 사용자 정보를 복호화하여 열람하는 블록체인 기반의 데이터 공유 시스템.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.
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)
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 |
-
2018
- 2018-09-18 KR KR1020180111415A patent/KR20200032412A/en not_active IP Right Cessation
Cited By (10)
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 |