Nothing Special   »   [go: up one dir, main page]

KR20200004229A - Method for protecting personal information in block chain environment and apparatus therefor - Google Patents

Method for protecting personal information in block chain environment and apparatus therefor Download PDF

Info

Publication number
KR20200004229A
KR20200004229A KR1020180099373A KR20180099373A KR20200004229A KR 20200004229 A KR20200004229 A KR 20200004229A KR 1020180099373 A KR1020180099373 A KR 1020180099373A KR 20180099373 A KR20180099373 A KR 20180099373A KR 20200004229 A KR20200004229 A KR 20200004229A
Authority
KR
South Korea
Prior art keywords
user
data
personal information
transaction
protected
Prior art date
Application number
KR1020180099373A
Other languages
Korean (ko)
Other versions
KR102289414B1 (en
Inventor
이찬혁
김수진
전문기
Original Assignee
주식회사 케이티
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 케이티 filed Critical 주식회사 케이티
Publication of KR20200004229A publication Critical patent/KR20200004229A/en
Application granted granted Critical
Publication of KR102289414B1 publication Critical patent/KR102289414B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • H04L2209/38

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Power Engineering (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Storage Device Security (AREA)

Abstract

The present invention relates to a method for protecting personal information in a block chain environment and to an apparatus therefor. According to an embodiment of the present invention, the method for protecting personal information in a block chain environment from a personal information management server comprises the steps of: extracting a plurality of protected transactions from the block chain; checking the salt and public data included in each extracted protected transaction; generating secret data for each protected transaction using the salt and personal information of a user; and performing zero-knowledge proof based on the generated secret data for each protected transaction and public data for each protected transaction, and selecting a protected transaction in which the zero-knowledge proof is true among the extracted plurality of protected transactions into a protected transaction associated with the user.

Description

블록체인 환경에서 개인정보 보호 방법 및 이를 위한 장치{Method for protecting personal information in block chain environment and apparatus therefor}Method for protecting personal information in block chain environment and apparatus therefor}

본 발명은 개인정보를 보호하는 기술에 관한 것으로서, 더욱 상세하게는 블록체인 환경에서 개인정보를 보호하는 방법 및 이를 위한 장치에 관한 것이다. The present invention relates to a technology for protecting personal information, and more particularly, to a method and apparatus for protecting personal information in a blockchain environment.

블록체인 기술은 트랜잭션이 포함된 블록이 블록체인에 저장되고, 다수의 노드들이 상기 블록체인을 서로 공유하는 형태로서, 기존의 중앙 집중식 데이터 저장 방식과 비교하여, 데이터의 위변조에 대한 보안을 향상시키는 장점이 있다. 이러한 블록체인은 그 형태가 더욱더 다양해져, 전력 데이터, 사용자 정보 등을 블록체인에 저장하는 연구가 진행되고 있다. 아래의 특허문헌은 블록체인을 이용한 선불형 전력 판매 및 전력 사용 방법에 대해서 개시한다. Blockchain technology is a form in which a block containing a transaction is stored in a blockchain, and a plurality of nodes share the blockchain with each other. In comparison with a conventional centralized data storage method, the blockchain technology improves security against forgery of data. There is an advantage. Such blockchains are becoming more diverse in form, and researches for storing power data and user information in the blockchain are being conducted. The following patent document discloses a prepaid power sale and power usage method using a blockchain.

그런데 블록체인에 사용자 정보를 저장하게 되면, 사용자 정보가 타인에게 노출될 수 있는 문제점이 있다. 즉, 블록체인은 불특정 다수가 접근할 수 있는 일종의 오픈된 데이터베이스로서, 불특정 다수가 블록체인에 접근하여 사용자 정보를 획득할 수 있는 문제점을 내재하고 있다. 예를 들어, 기존의 블록체인에서는, 가상화폐 또한 블록의 트랜잭션 조회를 통해 개인의 거래내역을 추적할 수 있고 이를 통해 개인의 잔액을 유추할 수 있다.However, if the user information is stored in the blockchain, the user information may be exposed to others. In other words, blockchain is a kind of open database that can be accessed by an unspecified number, and there is a problem that an unspecified number can access a blockchain to obtain user information. For example, in the existing blockchain, the virtual currency can also track the transaction of the individual through the transaction query of the block, thereby inferring the individual's balance.

따라서, 블록체인에 개인정보에 대한 보안을 향상시키는 방법이 요구되고 있다. Therefore, there is a demand for a method of improving security of personal information in the blockchain.

한국등록특허 제10-1848896호(2018.04.09)Korea Patent Registration No. 10-1848896 (2018.04.09)

본 발명은 이러한 문제점을 해결하기 위하여 제안된 것으로, 블록체인에 개인정보를 저장하지 않고 복수의 노드들의 연동을 통하여 개인정보가 사용자에게 제공되게 하는 개인정보 보호 방법 및 이를 위한 장치를 제공하는데 그 목적이 있다.The present invention has been proposed to solve the above problems, and provides a personal information protection method and apparatus for allowing personal information to be provided to a user through interworking of a plurality of nodes without storing personal information in the blockchain. There is this.

본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.Other objects and advantages of the present invention can be understood by the following description, and will be more clearly understood by the embodiments of the present invention. Also, it will be readily appreciated that the objects and advantages of the present invention may be realized by the means and combinations thereof indicated in the claims.

상기 목적을 달성하기 위한 본 발명의 제1측면에 따른 개인정보 관리 서버에서 블록체인 환경에서 개인정보를 보호하는 방법은, 복수의 보호 트랜잭션을 블록체인에서 추출하는 단계; 상기 추출한 각 보호 트랜잭션에 포함된 솔트와 공개 데이터를 확인하는 단계; 상기 솔트와 사용자의 개인정보를 이용하여 보호 트랜잭션별 비밀 데이터를 생성하는 단계; 및 상기 생성한 보호 트랜잭션별 비밀 데이터와 보호 트랜잭션별 공개 데이터를 토대로 영지식 증명을 수행하여, 상기 추출한 복수의 보호 트랜잭션 중에서 상기 영지식 증명이 참이 되는 보호 트랜잭션을 상기 사용자와 관련되는 보호 트랜잭션으로 선별하는 단계를 포함한다. A method of protecting personal information in a blockchain environment in a personal information management server according to the first aspect of the present invention for achieving the above object comprises: extracting a plurality of protected transactions from the blockchain; Checking the salt and public data included in each extracted protection transaction; Generating secret data for each protected transaction by using the salt and personal information of a user; And performing zero-knowledge proof based on the generated secret data for each protected transaction and public data for each protected transaction, and converting a protected transaction in which the zero-knowledge proof is true among the extracted plurality of protected transactions into a protected transaction associated with the user. Screening.

상기 비밀 데이터를 생성하는 단계는, 상기 확인한 솔트를 개인키로 복호화하고, 상기 사용자의 개인정보를 획득하는 단계; 및 상기 복호화한 솔트와 상기 개인정보를 해시 연산하여 해시값을 산출하고, 이 해시값을 상기 비밀 데이터로서 설정하는 단계를 포함할 수 있다.The generating of the secret data may include: decrypting the checked salt with a private key and obtaining personal information of the user; And calculating a hash value by hashing the decrypted salt and the personal information, and setting the hash value as the secret data.

상기 선별하는 단계는, 상기 생성한 보호 트랜잭션별 비밀 데이터를 토대로 보호 트랜잭션별 공개 데이터를 생성하고, 이 생성한 공개 데이터와 보호 트랜잭션에 포함된 공개 데이터의 일치 여부를 비교하여, 각 보호 트랜잭션에 대한 영지식 증명을 수행할 수 있다. The sorting may include generating public data for each protected transaction based on the generated secret data for each protected transaction, comparing the generated public data with public data included in the protected transaction, and comparing the generated public data for each protected transaction. Prove zero knowledge.

상기 추출하는 단계는, 상기 사용자의 그룹 식별정보를 확인하는 단계; 및 상기 사용자의 그룹 식별정보와 관련된 복수의 보호 트랜잭션을 상기 블록체인에서 추출하는 단계를 포함할 수 있다. The extracting step may include: checking group identification information of the user; And extracting a plurality of protected transactions related to the group identification information of the user from the blockchain.

상기 그룹 식별정보를 확인하는 단계는, 상기 사용자의 개인정보를 확인하고, 상기 개인정보와 대칭키를 해시 연산하여 상기 해시 연산한 해시값과 관련된 그룹 식별정보를 블록체인에서 추출할 수 있다. The checking of the group identification information may include identifying the user's personal information, hashing the symmetric key with the personal information, and extracting group identification information associated with the hashed value from the blockchain.

상기 목적을 달성하기 위한 본 발명의 제2측면에 따른, 블록체인 환경에서 개인정보를 보호하는 개인정보 관리 장치는, 복수의 보호 트랜잭션을 블록체인에서 추출하는 블록체인 연동부; 사용자의 개인정보와 보호 트랜잭션에 포함된 솔트를 이용하여 보호 트랜잭션별 비밀 데이터를 생성하는 비밀 데이터 생성부; 추출한 각 보호 트랜잭션에 포함된 공개 데이터를 확인하고, 상기 생성한 보호 트랜잭션별 비밀 데이터와 보호 트랜잭션별 공개 데이터를 토대로 영지식 증명을 수행하는 영지식 증명부; 및 상기 추출한 복수의 보호 트랜잭션 중에서 영지식 증명이 참이 되는 보호 트랜잭션을 상기 사용자와 관련되는 보호 트랜잭션으로 선별하는 정보 제공부를 포함한다. According to a second aspect of the present invention for achieving the above object, a personal information management device for protecting personal information in a blockchain environment, the blockchain interlocking unit for extracting a plurality of protected transactions in the blockchain; A secret data generator for generating secret data for each protected transaction by using a user's personal information and a salt included in the protected transaction; A zero-knowledge proof unit for checking public data included in each extracted protected transaction and performing zero-knowledge proof based on the generated secret data for each protected transaction and public data for each protected transaction; And an information providing unit for selecting a protection transaction in which zero-knowledge proof is true among the extracted plurality of protection transactions as a protection transaction associated with the user.

상기 목적을 달성하기 위한 본 발명의 제3측면에 따른 관리 서버에서 블록체인 환경에서 개인정보를 보호하는 방법은, 사용자 데이터가 획득되면 임의의 솔트를 생성하는 단계; 사용자의 개인정보를 획득하고, 이 사용자의 개인정보와 상기 솔트를 토대로 공개 데이터를 생성하는 단계; 상기 공개 데이터, 상기 솔트 및 상기 사용자 데이터 포함된 보호 트랜잭션을 생성하는 단계; 및 상기 보호 트랜잭션을 블록체인 네트워크에 전파하여, 상기 보호 트랜잭션을 블록체인에 저장하는 단계를 포함한다.According to a third aspect of the present invention, there is provided a method for protecting personal information in a blockchain environment in a management server, the method comprising: generating an arbitrary salt when user data is obtained; Obtaining personal information of the user and generating public data based on the personal information of the user and the salt; Generating a protected transaction comprised of the public data, the salt and the user data; And propagating the protected transaction to the blockchain network, and storing the protected transaction on the blockchain.

상기 공개 데이터를 생성하는 단계는, 상기 사용자의 개인정보와 상기 솔트를 해시 연산하여, 이 해시 연산한 결과값을 이용하여 상기 공개 데이터를 생성할 수 있다. The generating of the public data may include hashing the personal information of the user and the salt to generate the public data using the hashed result.

상기 공개 데이터를 생성하는 단계는, 상기 해시 연산한 결과를 공개키 생성 알고리즘에 적용하여, 상기 공개 데이터를 생성할 수 있다.The generating of the public data may generate the public data by applying a result of the hash operation to a public key generation algorithm.

상기 보호 트랜잭션을 생성하는 단계는, 상기 솔트 및 상기 공개 데이터를 개인키로 암호화하고, 상기 암호화된 솔트와 공개 데이터를 상기 보호 트랜잭션에 포함시킬 수 있다. The generating of the protected transaction may encrypt the salt and the public data with a private key, and include the encrypted salt and the public data in the protected transaction.

상기 보호 트랜잭션을 생성하는 단계는, 상기 사용자에게 할당된 그룹 식별정보를 확인하고, 상기 그룹 식별정보를 상기 보호 트랜잭션에 포함시켜, 상기 보호 트랜잭션을 생성할 수 있다. In the generating of the protected transaction, the group identification information assigned to the user may be checked, and the group identification information may be included in the protected transaction to generate the protected transaction.

본 발명은 블록체인에 개인정보를 저장하지 않고, 복수의 노드들의 연동을 통하여 개인정보가 획득되게 함으로써, 블록체인에 개인정보를 노출을 방지하여 개인의 사생활을 보호하는 장점이 있다.The present invention has an advantage of protecting personal privacy by preventing personal information from being exposed to the blockchain by allowing personal information to be obtained through interworking of a plurality of nodes without storing personal information in the blockchain.

또한, 본 발명은 암호화된 공개 데이터, 솔트값 및 트랜잭션이 포함된 보호 트랜잭션을 블록체인에 저장하되, 이 블록체인에 저장된 데이터의 영지식 증명을 통해서, 사용자와 관련된 보호 트랜잭션을 선별함으로써 블록체인에 저장된 데이터의 보안성과 무결성을 강화하는 장점이 있다.In addition, the present invention stores a protected transaction containing encrypted public data, salt values and transactions in the blockchain, and through the zero-knowledge proof of the data stored in the blockchain, by selecting the protected transaction associated with the user to the blockchain There is an advantage to strengthen the security and integrity of the stored data.

게다가, 본 발명은 블록체인에 저장된 데이터를 불사용이 요청되면, 개인정보 관리 서버에 저장된 개인정보를 폐기하여, 블록체인에 저장된 특정 블록들에 대한 사용을 정지시킬 수 있는 장점이 있다. In addition, the present invention has the advantage that if the use of the data stored in the blockchain is requested, by discarding the personal information stored in the personal information management server, to stop using the specific blocks stored in the blockchain.

본 명세서에 첨부되는 다음의 도면들은 본 발명의 바람직한 실시예를 예시하는 것이며, 발명을 실시하기 위한 구체적인 내용과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되어서는 아니 된다.
도 1은 본 발명의 일 실시예에 따른 블록체인 환경에서, 개인정보를 보호하는 시스템을 나타나는 도면이다.
도 2는 본 발명의 일 실시예에 따른, 개인정보 관리 서버를 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른, 개인정보 관리 서버에서 보호 트랜잭션을 생성하여 블록체인에 저장하는 방법을 설명하는 흐름도이다.
도 4는 본 발명의 일 실시예에 따른, 개인정보 관리 서버에서 블록체인에 저장된 데이터를 조회하여 클라이언트로 제공하는 방법을 설명하는 흐름도이다.
도 5는 본 발명의 일 실시예에 따른, 개인정보 관리 서버에서 개인정보를 삭제하는 방법을 설명하는 흐름도이다.
The following drawings attached to this specification are illustrative of the preferred embodiments of the present invention, and together with the specific details for carrying out the invention serve to further understand the technical spirit of the present invention, the present invention described in such drawings It should not be construed as limited to matters.
1 is a view showing a system for protecting personal information in a blockchain environment according to an embodiment of the present invention.
2 is a diagram illustrating a personal information management server according to an embodiment of the present invention.
3 is a flowchart illustrating a method of generating a protection transaction in a personal information management server and storing the same in a blockchain according to an embodiment of the present invention.
4 is a flowchart illustrating a method of querying data stored in a blockchain and providing the data to a client in a personal information management server according to an exemplary embodiment of the present invention.
5 is a flowchart illustrating a method of deleting personal information from a personal information management server according to an embodiment of the present invention.

상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명하기로 한다.The above objects, features and advantages will become more apparent from the following detailed description taken in conjunction with the accompanying drawings, whereby those skilled in the art may easily implement the technical idea of the present invention. There will be. In addition, in describing the present invention, when it is determined that the detailed description of the known technology related to the present invention may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 블록체인 환경에서, 개인정보를 보호하는 시스템을 나타나는 도면이다.1 is a view showing a system for protecting personal information in a blockchain environment according to an embodiment of the present invention.

도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 개인정보 보호 시스템은 개인정보 관리 서버(100), 데이터베이스(200), 클라이언트(400) 및 블록체인 네트워크(300)를 포함하고, 이러한 구성요소들은 네트워크(500)를 통해서 서로 통신한다. 여기서, 네트워크(500)는 이동통신망과 유선통신망을 포함한다. As shown in FIG. 1, the personal information protection system according to an embodiment of the present invention includes a personal information management server 100, a database 200, a client 400, and a blockchain network 300. The components communicate with each other via the network 500. Here, the network 500 includes a mobile communication network and a wired communication network.

데이터베이스(200)는 사용자의 개인정보를 저장한다. 즉, 데이터베이스(200)는 사용자의 성명, 아이디, 전화번호, 주소 등과 같은 사용자의 개인정보를 사용자별로 구분하여 저장한다. 또한, 데이터베이스(200)는 사용자별로 할당된 그룹 식별정보를 저장할 수도 있다. The database 200 stores personal information of the user. That is, the database 200 stores the user's personal information such as the user's name, ID, phone number, address, and the like for each user. In addition, the database 200 may store group identification information allocated for each user.

개인정보 관리 서버(100)는 개인정보를 보유 및 관리하는 업체가 소유하는 서버로서, 클라이언트(400)로부터 특정 데이터가 요청되면, 블록체인 네트워크(300)로부터 복수의 보호 트랜잭션을 획득하여, 이 중에서 영지식 증명을 통해서 참이 되는 보호 트랜잭션을 선별한다. 또한, 개인정보 관리 서버(100)는 상기 선별한 각 보호 트랜잭션에 포함된 사용자 데이터를 클라이언트(400)로 제공하거나 상기 사용자 데이터를 토대로 가공한 정보를 클라이언트(400)로 제공할 수 있다. The personal information management server 100 is a server owned by a company that holds and manages personal information. When specific data is requested from the client 400, the personal information management server 100 obtains a plurality of protection transactions from the blockchain network 300, The zero-knowledge proof identifies the true protected transactions. In addition, the personal information management server 100 may provide user data included in each of the selected protection transactions to the client 400 or provide information processed based on the user data to the client 400.

개인정보 관리 서버(100)는 사용자별로 그룹 식별정보를 할당할 수 있다. 개인정보 관리 서버(100)는 하나 이상의 사용자 식별정보와 그룹 식별정보가 매핑된 데이터를 관리한다. 부연하면, 하나 이상의 사용자는 특정 그룹에 소속될 수 있다. 또는 개인정보 관리 서버(100)는 서비스 유형 또는 지역별로 할당되는 그룹 식별정보를 데이터베이스(200)에 저장하고 관리할 수 있다. 즉, 그룹 식별정보는 사용자, 서비스 유형, 지역에 따라 할당되고 관리될 수 있다. 한편, 하나의 사용자 식별정보와 대응하여 복수의 그룹 식별정보가 할당될 수도 있다.The personal information management server 100 may allocate group identification information for each user. The personal information management server 100 manages data in which one or more user identification information and group identification information are mapped. In other words, one or more users may belong to a particular group. Alternatively, the personal information management server 100 may store and manage group identification information allocated for each service type or region in the database 200. That is, group identification information may be assigned and managed according to a user, a service type, and a region. Meanwhile, a plurality of group identification information may be allocated to correspond to one user identification information.

개인정보 관리 서버(100)는 사용자 데이터를 획득하면, 사용자의 개인정보가 저장되지 않으며 상기 사용자 데이터가 포함되는 보호 트랜잭션을 생성하여 블록체인 네트워크(300)로 전파한다. 여기서, 사용자 데이터는 사용자와 관련된 데이터로서, 예를 들어 로밍 데이터, 통화 데이터, 콘텐츠 구매 데이터, 포인트 사용 데이터, 위치 데이터 등을 포함한다. 상기 보호 트랜잭션에는 전화번호, IMSI(International Mobile Station Identity), IP 주소, 로그인 아이디, 주민등록번호 등과 같이 사용자를 특정할 수 있는 정보가 기록되지 않는다. 즉, 본 발명에 따른 보호 트랜잭션에는 사용자의 개인정보가 제외된 사용자 데이터가 기록된다. 예를 들어, 로밍 데이터가 보호 트랜잭션에 포함되는 경우, 이 보호 트랜잭션에는 이동단말의 식별정보가 제외되고, 단지 홈망 또는 방문망의 식별정보, 데이터 발생 일시 등을 포함하는 로밍 데이터가 기록될 수 있다. When the personal information management server 100 acquires the user data, the personal information of the user is not stored and a protection transaction including the user data is generated and propagated to the blockchain network 300. Here, the user data is data related to the user, and includes, for example, roaming data, call data, content purchase data, point usage data, location data, and the like. The protection transaction does not record information for identifying a user, such as a telephone number, an international mobile station identity (IMSI), an IP address, a login ID, a social security number, and the like. That is, in the protection transaction according to the present invention, user data excluding personal information of the user is recorded. For example, when roaming data is included in a protected transaction, the protected transaction may exclude identification information of the mobile terminal, and only roaming data including identification information of a home network or visiting network, date and time of data generation, etc. may be recorded. .

개인정보 관리 서버(100)는 보호 트랜잭션을 생성하기 위해서, 우선 사용자의 개인정보를 확인한 후, 임의의 솔트(salt)를 생성하다. 여기서, 솔트는 임의의 문자열 또는 숫자열 또는 문자와 숫자의 조합으로서, 일회성을 성질을 가지며, 개인정보 관리 서버(100)에 의해서 동적으로 생성된다. 상기 개인정보 관리 서버(100)는 현재 날짜, 시각, 난수 등을 활용하여 일회성 솔트를 생성할 수 있다. In order to generate a protection transaction, the personal information management server 100 first checks the personal information of the user, and then generates an arbitrary salt. Here, the salt is an arbitrary string or a string of numbers or a combination of letters and numbers, and has a one-time property, and is dynamically generated by the personal information management server 100. The personal information management server 100 may generate a one-time salt by using a current date, time, random number, and the like.

또한, 개인정보 관리 서버(100)는 상기 생성한 솔트와 개인정보를 해시 연산하여, 해시값을 산출하고, 해시값을 비밀 데이터로서 설정하고, 상기 설정한 비밀 데이터를 시드로서 이용하여 공개 데이터를 생성한다. 이때, 개인정보 관리 서버(100)는 현재 사용되는 공개키 생성 알고리즘에 상기 비밀 데이터를 시드로서 적용하여 도출된 결과값을 상기 공개 데이터로서 이용할 수 있다. 상기 공개 데이터는 일회성으로서, 개인정보 관리 서버(100)는 매번 상이한 값을 가지는 공개 데이터를 매번 생성한다. In addition, the personal information management server 100 hash-calculates the generated salt and personal information, calculates a hash value, sets the hash value as secret data, and uses the set secret data as a seed for public data. Create At this time, the personal information management server 100 may use the result value derived by applying the secret data as a seed to the public key generation algorithm currently used as the public data. The public data is one-time, and the personal information management server 100 generates public data each time having a different value.

또한, 개인정보 관리 서버(100)는 상기 공개 데이터와 상기 솔트를 자신의 비밀키로 암호화한 후, 사용자에게 할당된 그룹 식별정보, 상기 암호화된 솔트와 공개 데이터 및 상기 트랜잭션이 포함된 보호 트랜잭션을 블록체인에 저장한다. In addition, the personal information management server 100 encrypts the public data and the salt with its private key, and then blocks a group transaction assigned to the user, the encrypted salt and public data, and a protected transaction including the transaction. Store in the chain.

클라이언트(400)는 서비스를 제공받기 위한 타사업자의 단말 또는 사용자의 단말로서, 스마트 컨트랙트(smart contract)를 통하여 특정 데이터를 조회할 수 있다. 클라이언트(400)는 블록체인의 데이터를 조회하게 되면, 필요한 조건에 해당하는 데이터를 제공받을 수 있다. 만약, 개인정보가 필요한 단체라면 클라이언트(400)를 이용하여 개인정보 관리 서버(100)로 개인정보를 요청하고, 개인정보 관리 서버(100)는 고객의 제3자 제공 동의 여부를 확인하여 개인정보를 포함한 암호화된 데이터를 해당 단체로 제공할 수 있다.The client 400 is a terminal of a third party vendor or a user terminal for receiving a service, and may query specific data through a smart contract. When the client 400 inquires data of the blockchain, the client 400 may receive data corresponding to a necessary condition. If the group needs personal information, the client requests the personal information to the personal information management server 100 using the client 400, and the personal information management server 100 checks whether the customer agrees to provide the third party personal information. Encrypted data including can be provided to the organization.

블록체인 네트워크(300)는 복수의 노드들이 연결되어 있으며, 보호 트랜잭션에 대한 검증을 수행한다. 즉, 블록체인 네트워크(300)에 속하는 각 노드들은 보호 트랜잭션이 발생하면, 이 보호 트랜잭션에 대한 검증을 수행한다. 이때, 블록체인 네트워크(300)에 속하는 노드들은 전자 서명의 진위에 대한 검증을 수행할 수 있다. 또한, 블록체인 네트워크(300)에 포함된 각 노드들은 보호 트랜잭션을 포함하며 블록 간에 연결 구조를 가지는 블록체인을 서로 공유한다. The blockchain network 300 is connected to a plurality of nodes and performs verification of a protection transaction. That is, each node belonging to the blockchain network 300 performs a verification on this protection transaction when a protection transaction occurs. At this time, nodes belonging to the blockchain network 300 may perform verification of the authenticity of the electronic signature. In addition, each node included in the blockchain network 300 shares a blockchain that includes a protection transaction and has a connection structure between blocks.

블록체인을 구성하는 블록은 블록 헤더와 보호 트랜잭션으로 구성된다. 블록 헤더는 이전 블록 해시값, 머클루트(Markle Root), 난스(Nonce), 타임스탬프를 포함한다. 상기 이전 블록 해시는 블록체인 구조에서 이전 블록(즉, 부모 블록)에 대한 해시 참조값을 나타낸다. 머클루트는 머클 트리 루트에 대한 해시(hash)이다. 타임 스탬프는 블록의 생성시간이 기록된다. 보호 트랜잭션은 개인정보 관리 서버(100)에서 생성되는 데이터로서, 사용자의 개인정보가 기록되지 않고, 로밍 데이터, 통화 데이터, 암호화폐 거래, 콘텐츠 구매, 위치 데이터 등과 같은 사용자 데이터가 기록된다. 본 발명에 따른 블록체인에는 사용자의 개인정보가 저장되지 않고, 대신에 트랜잭션이 특정 사용자와 관련된 데이터임을 증명할 수 있는 참조 데이터(즉, 공개 데이터와 솔트)가 저장한다. The blocks that make up the blockchain are composed of block headers and protected transactions. The block header contains the previous block hash value, Markle Root, Nonce, and timestamp. The previous block hash represents a hash reference value for the previous block (ie, the parent block) in the blockchain structure. Mercut is the hash to the Merkle tree root. The time stamp records the generation time of the block. The protection transaction is data generated by the personal information management server 100. The personal information of the user is not recorded, and user data such as roaming data, currency data, cryptocurrency transactions, content purchases, location data, and the like are recorded. In the blockchain according to the present invention, the personal information of the user is not stored, but instead, reference data (that is, public data and salt) which can prove that a transaction is data related to a specific user is stored.

한편, 블록체인은 그룹 식별정보를 저장하는 블록체인과 데이터를 저장하는 블록체인으로 이원화될 수 있다. 이 경우, 데이터베이스(200)에 그룹 식별정보가 저장되지 않고, 개인정보와 개인정보 관리 서버(100)의 대칭키에 대한 해시값과 그룹 식별정보가 함께 블록체인에 저장될 수 있다. Meanwhile, the blockchain may be dualized into a blockchain that stores group identification information and a blockchain that stores data. In this case, the group identification information is not stored in the database 200, and the hash value and the group identification information for the symmetric key of the personal information and the personal information management server 100 may be stored together in the blockchain.

도 2는 본 발명의 일 실시예에 따른, 개인정보 관리 서버를 나타내는 도면이다. 2 is a diagram illustrating a personal information management server according to an embodiment of the present invention.

도 2에 도시된 바와 같이, 개인정보 관리 서버(100)는 데이터 획득부(110), 비밀 데이터 생성부(120), 공개 데이터 생성부(130), 개인정보 관리부(140), 블록체인 연동부(150), 영지식 증명부(160) 및 정보 제공부(170)를 포함하고, 이러한 구성요소들은 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 조합을 통해서 구현될 수 있다.As shown in FIG. 2, the personal information management server 100 includes a data acquisition unit 110, a secret data generation unit 120, a public data generation unit 130, a personal information management unit 140, and a blockchain interworking unit. 150, the zero-knowledge proof unit 160, and the information providing unit 170, which may be implemented in hardware or software or through a combination of hardware and software.

또한, 개인정보 관리 서버(100)는 하나 이상의 프로세서와 메모리를 포함할 수 있으며, 상기 데이터 획득부(110), 비밀 데이터 생성부(120), 공개 데이터 생성부(130), 개인정보 관리부(140), 블록체인 연동부(150), 영지식 증명부(160) 및 정보 제공부(170)는 상기 프로세서에 의해서 실행되는 프로그램 형태로 상기 메모리에 탑재(저장)될 수도 있다. In addition, the personal information management server 100 may include one or more processors and a memory, and the data obtaining unit 110, the secret data generating unit 120, the public data generating unit 130, and the personal information managing unit 140. The blockchain interworking unit 150, the zero-knowledge proof unit 160, and the information providing unit 170 may be mounted (stored) in the memory in the form of a program executed by the processor.

데이터 획득부(110)는 블록체인에 저장되는 사용자 데이터를 획득하는 기능을 수행한다. 상기 데이터 획득부(110)는 외부 서버와 연동하여, 사용자 데이터를 획득할 수도 있으며, 사용자 단말로부터 사용자 데이터를 수신할 수도 있다. The data acquisition unit 110 performs a function of acquiring user data stored in the blockchain. The data acquisition unit 110 may acquire user data in cooperation with an external server, or may receive user data from a user terminal.

비밀 데이터 생성부(120)는 공개 데이터의 생성에 기초가 되는 비밀 데이터를 생성한다. 구체적으로, 비밀 데이터 생성부(120)는 데이터베이스(200)에 저장된 사용자의 개인정보를 이용하여 비밀 데이터를 생성한다. 이때, 비밀 데이터 생성부(120)는 임의의 솔트를 생성하고, 이 생성한 솔트와 사용자의 개인정보를 해시 연산하여 해시값을 산출하고, 이 해시값을 비밀 데이터로 설정함으로써, 사용자의 비밀 데이터를 생성할 수 있다. 상기 비밀 데이터 생성부(120)는 데이터베이스(200)에 저장된 사용자의 개인정보 전부를 상기 솔트와 함께 해시 연산하여 비밀 데이터를 생성할 수 있으며, 또는 상기 개인정보의 일부를 상기 솔트와 함께 해시 연산하여 비밀 데이터를 생성할 수 있다. The secret data generation unit 120 generates secret data that is based on the generation of public data. In detail, the secret data generation unit 120 generates secret data using the personal information of the user stored in the database 200. At this time, the secret data generating unit 120 generates an arbitrary salt, hashes the generated salt and the user's personal information, calculates a hash value, and sets the hash value as secret data, thereby secreting the user's secret data. Can be generated. The secret data generator 120 may generate secret data by hashing all of the user's personal information stored in the database 200 together with the salt, or by hashing a part of the personal information together with the salt. You can create secret data.

공개 데이터 생성부(130)는 사용자의 공개 데이터를 생성하는 기능을 수행한다. 구체적으로, 공개 데이터 생성부(130)는 비밀 데이터를 시드(seed)를 이용하여, 사용자의 공개 데이터를 생성한다. 이때, 공개 데이터 생성부(130)는 공개키 생성 알고리즘에 상기 비밀 데이터를 시드로서 적용하여 도출된 결과값을 상기 공개 데이터로서 이용할 수 있다. The public data generator 130 performs a function of generating public data of a user. In detail, the public data generator 130 generates public data of a user by using the seed as secret data. In this case, the public data generator 130 may use the result value derived by applying the secret data as a seed to the public key generation algorithm as the public data.

개인정보 관리부(140)는 데이터베이스(200)에 저장된 사용자의 개인정보를 관리하는 기능을 수행한다. 즉, 개인정보 관리부(140)는 개인정보 관리에 동의한 사용자의 개인정보를 데이터베이스(200)에 저장하고, 더불어 개인정보 보유 연장에 동의하지 않은 사용자의 개인정보를 데이터베이스(200)에서 삭제한다. The personal information manager 140 performs a function of managing personal information of a user stored in the database 200. That is, the personal information manager 140 stores the personal information of the user who agreed to the personal information management in the database 200, and deletes the personal information of the user who does not agree to the extension of the personal information retention from the database 200.

블록체인 연동부(150)는 블록체인 네트워크(300)와 연동하여, 블록체인 네트워크(300)로 보호 트랜잭션을 전파하거나, 그룹 식별정보와 대응되는 복수의 보호 트랜잭션을 블록체인에서 획득하는 기능을 수행한다. 구체적으로, 블록체인 연동부(150)는 사용자의 그룹 식별정보를 확인하고, 이 그룹 식별정보, 암호화된 솔트와 공개 데이터 및 사용자 데이터를 포함하는 보호 트랜잭션을 생성하고, 이 보호 트랜잭션을 블록체인 네트워크(300)로 전파할 수 있다. 이때, 블록체인 연동부(150)는 개인정보 관리 서버(100)의 개인키를 암호키로서 이용하여, 상기 솔트와 공개 데이터를 암호화할 수 있으며, 추가적으로 상기 사용자 데이터를 암호화하여 상기 보호 트랜잭션을 생성할 수 있다. 또한, 블록체인 연동부(150)는 그룹 식별정보와 관련된 복수의 보호 트랜잭션을 블록체인에서 추출할 수도 있다. The blockchain interworking unit 150 interworks with the blockchain network 300 to propagate a protection transaction to the blockchain network 300 or to acquire a plurality of protection transactions corresponding to the group identification information in the blockchain. do. Specifically, the blockchain interworking unit 150 checks the group identification information of the user, generates a protection transaction including the group identification information, the encrypted salt and the public data, and the user data, and transmits the protection transaction to the blockchain network. May propagate to 300. In this case, the blockchain interworking unit 150 may encrypt the salt and the public data by using the private key of the personal information management server 100 as an encryption key, and additionally encrypt the user data to generate the protected transaction. can do. In addition, the blockchain interworking unit 150 may extract a plurality of protected transactions related to the group identification information from the blockchain.

영지식 증명부(160)는 블록체인 연동부(150)에서 추출한 복수의 보호 트랜잭션 각각에 대한 영지식 증명을 진행하여, 상기 복수의 보호 트랜잭션 중에서 사용자와 관련된 보호 트랜잭션을 선별한다. 구체적으로, 영지식 증명부(160)는 개인정보 관리 서버(100)의 개인키를 이용하여, 상기 추출한 각각의 보호 트랜잭션에 포함된 공개 데이터와 솔트를 복호화하고, 비밀 데이터 생성부(120)를 통해서 보호 트랜잭션별 비밀 데이터를 생성한다. 아울러, 영지식 증명부(160)는 동일한 보호 트랜잭션을 기준으로, 복호화된 공개 데이터와 생성한 비밀 데이터를 영지식 증명에 대입하여 증명값이 참이면 해당 보호 트랜잭션이 사용자와 관련된 트랜잭션이 것으로 판정하고, 그렇지 않으면 해당 보호 트랜잭션이 사용자와 관련되지 않은 트랜잭션이 것으로 판정한다. 이때, 영지식 증명부(160)는 상기 생성한 비밀 데이터를 시드로서 이용하여 공개 데이터를 생성하고, 이렇게 생성한 공개 데이터와 상기 복호화된 공개 데이터의 일치 여부를 확인하여 일치하는 경우에 해당 보호 트랜잭션이 사용자와 관련된 보호 트랜잭션(즉, 참)인 것으로 판정한다.The zero-knowledge proof unit 160 performs zero-knowledge proof for each of the plurality of protected transactions extracted by the blockchain interworking unit 150, and selects a protected transaction related to the user from the plurality of protected transactions. Specifically, the zero-knowledge proof unit 160 decrypts the public data and the salt included in each extracted protection transaction by using the private key of the personal information management server 100, and decrypts the secret data generator 120. It creates secret data for each protected transaction. In addition, the zero-knowledge proof unit 160 substitutes the decrypted public data and the generated secret data into zero-knowledge proof based on the same protected transaction, and determines that the protected transaction is a transaction related to the user if the proof value is true. Otherwise, it determines that the protected transaction is a transaction that is not associated with the user. In this case, the zero-knowledge proof unit 160 generates the public data using the generated secret data as a seed, and checks whether the generated public data and the decrypted public data match with each other to protect the corresponding transaction. Determine that this is a protected transaction (i.e. true) associated with this user.

정보 제공부(170)는 영지식 증명부(160)에서 참으로 판정한 하나 이상의 보호 트랜잭션을 선별하고, 이 선별한 보호 트랜잭션에 포함된 사용자 데이터를 클라이언트(400)로 전송하거나, 상기 사용자 데이터를 가공 처리한 후 가공된 정보를 클라이언트(400)로 전송한다. The information provider 170 selects one or more protected transactions that are determined to be true by the zero-knowledge proof unit 160, and transmits user data included in the selected protected transactions to the client 400 or transmits the user data. After processing, the processed information is transmitted to the client 400.

도 3은 본 발명의 일 실시예에 따른, 개인정보 관리 서버에서 보호 트랜잭션을 생성하여 블록체인에 저장하는 방법을 설명하는 흐름도이다.3 is a flowchart illustrating a method of generating a protection transaction in a personal information management server and storing the same in a blockchain according to an embodiment of the present invention.

도 3을 참조하면, 데이터 획득부(110)는 블록체인에 저장되어야 하는 사용자 데이터를 획득한다(S301). 상기 데이터 획득부(110)는 이동통신 시스템(도면에 도시되지 않음)과 연동하여 로밍 데이터 또는 통화 데이터를 사용자 데이터로서 획득할 수 있고, 암호화폐 거래 시스템(도면에 도시되지 않음)과 연동하여 암호화폐 거래 데이터를 사용자 데이터로서 획득할 수도 있다. 또 다른 예로서, 데이터 획득부(110)는 콘텐츠 스트리밍 시스템(도면에 도시되지 않음)과 연동하여 콘텐츠 구매 데이터를 사용자 데이터로서 획득할 수도 있으며, 또는 클라이언트(400)로부터 상기 사용자 데이터를 직접 수신할 수도 있다. Referring to FIG. 3, the data acquisition unit 110 acquires user data to be stored in the blockchain (S301). The data acquisition unit 110 may acquire roaming data or currency data as user data in cooperation with a mobile communication system (not shown in the figure), and encrypt the data in conjunction with a cryptocurrency trading system (not shown in the figure). Currency transaction data may be obtained as user data. As another example, the data acquirer 110 may acquire content purchase data as user data in cooperation with a content streaming system (not shown), or may receive the user data directly from a client 400. It may be.

그러면, 비밀 데이터 생성부(120)는 획득한 사용자 데이터에서 사용자의 식별정보를 확인하거나, 상기 사용자 데이터를 발생시킨 클라이언트(400)의 로그인 아이디를 확인함으로써, 사용자를 식별한다. 이어서, 비밀 데이터 생성부(120)는 상기 식별한 사용자의 개인정보를 데이터베이스(200)에서 확인하고, 상기 개인정보를 이용하여 비밀 데이터를 생성한다(S303). 이때, 비밀 데이터 생성부(120)는 임의의 솔트를 생성하고, 이 생성한 솔트와 상기 개인정보를 해시 연산하여 해시값을 산출하고, 이 해시값을 상기 비밀 데이터로서 설정함으로써, 비밀 데이터를 생성할 수 있다. Then, the secret data generation unit 120 identifies the user by confirming the identification information of the user from the obtained user data or by checking the login ID of the client 400 generating the user data. Subsequently, the secret data generating unit 120 checks the personal information of the identified user in the database 200 and generates secret data using the personal information (S303). At this time, the secret data generating unit 120 generates an arbitrary salt, generates a hash value by hashing the generated salt and the personal information, and sets the hash value as the secret data to generate secret data. can do.

이어서, 공개 데이터 생성부(130)는 상기 생성한 비밀 데이터를 시드(seed)로서 이용하여 공개 데이터를 생성한다(S305). 이때, 공개 데이터 생성부(130)는 공개키 생성 알고리즘에 상기 비밀 데이터를 시드로서 적용하여, 결과값을 도출하고, 이 결과값을 상기 공개 데이터로서 이용할 수 있다. Next, the public data generation unit 130 generates public data using the generated secret data as a seed (S305). In this case, the public data generation unit 130 may apply the secret data as a seed to the public key generation algorithm, derive a result value, and use the result value as the public data.

비밀 데이터 및 공개 데이터 생성이 완료되면, 블록체인 연동부(150)는 블록체인에 보호 트랜잭션을 저장하기 위한 프로세스를 진행한다. 우선, 블록체인 연동부(150)는 개인정보 관리 서버(100)에서 보유중인 개인키를 확인하고, 이 개인키를 암호키로서 이용하여, 상기 공개 데이터와 상기 솔트를 암호화한다(S307).When the creation of the secret data and the public data is completed, the blockchain interworking unit 150 performs a process for storing a protection transaction in the blockchain. First, the blockchain interworking unit 150 confirms the private key held by the personal information management server 100, and encrypts the public data and the salt using the private key as an encryption key (S307).

한편, 블록체인 연동부(150)는 블록체인에 저장되어야 하는 사용자 데이터에서, 사용자의 개인정보가 포함된 경우, 이 개인정보를 상기 데이터에서 제거할 수 있다. 또한, 블록체인 연동부(150)는 상기 사용자 데이터를 상기 개인키를 이용하여 추가적으로 암호화할 수도 있다. Meanwhile, the blockchain interworking unit 150 may remove the personal information from the data when the user data to be stored in the blockchain is included in the user data. In addition, the blockchain interworking unit 150 may additionally encrypt the user data using the private key.

다음으로, 블록체인 연동부(150)는 식별한 사용자에게 할당된 그룹 식별정보를 확인한다(S309). 이때, 블록체인 연동부(150)는 사용자의 식별정보와 대응되는 그룹 식별정보를 데이터베이스(200)에서 확인함으로써, 상기 사용자에게 할당된 그룹 식별정보를 확인할 수 있다. 한편, 블록체인이 그룹 식별정보를 저장하는 블록체인과 데이터를 저장하는 블록체인으로 이원화되어 있는 경우, 블록체인 연동부(150)는 자신의 대칭키(즉, 개인정보 관리 서버의 대칭키)와 상기 사용자의 개인정보를 해시 연산하여 해시값을 산출하고, 이 해시값과 대응되어 기록되는 그룹 식별정보를 블록체인에서 추출할 수 있다.Next, the blockchain interworking unit 150 checks group identification information assigned to the identified user (S309). In this case, the blockchain interworking unit 150 may check the group identification information corresponding to the identification information of the user in the database 200 to confirm the group identification information assigned to the user. On the other hand, when the blockchain is dualized into a blockchain for storing group identification information and a blockchain for storing data, the blockchain interworking unit 150 has its own symmetric key (that is, the symmetric key of the personal information management server) and The hash value is calculated by hashing the personal information of the user, and the group identification information recorded corresponding to the hash value can be extracted from the blockchain.

이어서, 블록체인 연동부(150)는 상기 암호화된 솔트와 공개 데이터, 그룹 식별정보 및 사용자 데이터를 포함하는 보호 트랜잭션을 생성한다(S311). 그리고 블록체인 연동부(150)는 개인정보 관리 서버(100)의 개인키로 서명된 전자 서명과 상기 생성한 보호 트랜잭션을 블록체인 네트워크(300)로 전파하여, 상기 보호 트랜잭션이 포함된 신규 블록이 블록체인에 저장되게 한다(S313). 보호 트랜잭션과 전자 서명을 수신한 블록체인 네트워크(300)의 각 노드들은 상기 전자 서명의 진위를 검증하여 검증에 성공하면, 보호 트랜잭션을 포함하는 신규 블록을 생성하고, 이 신규 블록을 기존의 블록과 연결시킴으로써, 상기 보호 트랜잭션을 블록체인에 저장한다.Subsequently, the blockchain interworking unit 150 generates a protected transaction including the encrypted salt, public data, group identification information, and user data (S311). The blockchain interworking unit 150 propagates the electronic signature signed with the private key of the personal information management server 100 and the generated protection transaction to the blockchain network 300 so that the new block including the protection transaction is blocked. To be stored in the chain (S313). Each node of the blockchain network 300 having received the protected transaction and the electronic signature verifies the authenticity of the electronic signature and, upon successful verification, creates a new block including the protected transaction and converts the new block into an existing block. By connecting, the protection transaction is stored in the blockchain.

이러한 절차에 따라, 블록체인에는 사용자의 개인정보가 제외된 보호 트랜잭션이 저장된다. 상기 보호 트랜잭션에는 사용자 데이터가 기록되나, 해당 보호 트랜잭션에 기록된 사용자 데이터가 어느 사용자와 관련된 데이터인지 여부를 블록체인의 자체의 데이터만을 가지고는 특정할 수 없다.According to this procedure, the blockchain stores a protected transaction that excludes the user's personal information. Although the user data is recorded in the protected transaction, it is not possible to specify whether the user data recorded in the protected transaction is data related to which user only by the data of the blockchain itself.

도 4는 본 발명의 일 실시예에 따른, 개인정보 관리 서버에서 블록체인에 저장된 데이터를 조회하여 클라이언트로 제공하는 방법을 설명하는 흐름도이다.4 is a flowchart illustrating a method of inquiring data stored in a blockchain from a personal information management server and providing the same to a client according to an embodiment of the present invention.

도 4를 참조하면, 클라이언트(400)는 사용자의 보호 트랜잭션과 관련된 데이터 요청 메시지를 개인정보 관리 서버(100)로 전송한다. 이때, 클라이언트(400)는 사용자 식별정보를 상기 개인정보 관리 서버(100)로 전송할 수 있다. Referring to FIG. 4, the client 400 transmits a data request message related to a protection transaction of the user to the personal information management server 100. In this case, the client 400 may transmit user identification information to the personal information management server 100.

그러면, 개인정보 관리 서버(100)의 데이터 획득부(110)는 클라이언트(400)로부터 상기 데이터 요청 메시지를 수신하고(S401), 블록체인 연동부(150)는 상기 데이터 요청 메시지에 포함된 사용자 식별정보를 토대로 사용자의 그룹 식별정보를 확인한다(S403). 일 실시예로서, 블록체인 연동부(150)는 데이터베이스(200)에서 상기 사용자 식별정보와 대응되는 그룹 식별정보를 확인함으로써, 상기 사용자에게 할당된 그룹 식별정보를 확인할 수 있다. 다른 실시예로서, 블록체인이 그룹 식별정보를 저장하는 블록체인과 데이터를 저장하는 블록체인으로 이원화되어 있는 경우, 블록체인 연동부(150)는 상기 사용자 식별정보를 토대로 사용자의 개인정보를 데이터베이스(200)에서 확인한 후, 자신의 대칭키(즉, 개인정보 관리 서버의 대칭키)와 상기 사용자의 개인정보를 해시 연산하여 해시값을 산출하고, 이 해시값과 대응되어 기록되는 그룹 식별정보를 블록체인에서 추출하여, 사용자의 그룹 식별정보를 확인할 수 있다. Then, the data acquisition unit 110 of the personal information management server 100 receives the data request message from the client 400 (S401), the blockchain interworking unit 150 is the user identification included in the data request message The group identification information of the user is checked based on the information (S403). As an embodiment, the blockchain interworking unit 150 may check group identification information assigned to the user by checking group identification information corresponding to the user identification information in the database 200. As another embodiment, when the blockchain is dualized into a blockchain for storing group identification information and a blockchain for storing data, the blockchain interworking unit 150 stores a user's personal information based on the user identification information. 200), hashing the symmetric key (i.e., the symmetric key of the personal information management server) and the personal information of the user to calculate a hash value, and block the group identification information recorded corresponding to the hash value. By extracting from the chain, the user's group identification information can be confirmed.

다음으로, 블록체인 연동부(150)는 상기 그룹 식별정보를 포함하고 있는 복수의 보호 트랜잭션을 블록체인에서 추출한다(S405). 이때, 블록체인 연동부(150)는 상기 그룹 식별정보와 대응되는 데이터 요청 메시지를 블록체인 네트워크(300)로 전송하여, 상기 그룹 식별정보를 기록하는 복수의 보호 트랜잭션을 블록체인 네트워크(300)로부터 수신할 수 있다. Next, the blockchain interworking unit 150 extracts a plurality of protected transactions including the group identification information from the blockchain (S405). In this case, the blockchain interworking unit 150 transmits a data request message corresponding to the group identification information to the blockchain network 300, and transmits a plurality of protection transactions for recording the group identification information from the blockchain network 300. Can be received.

이렇게 블록체인 연동부(150)에서 상기 그룹 식별정보와 관련된 복수의 보호 트랜잭션을 획득하면, 영지식 증명부(160)는 개인정보 관리 서버(100)의 개인키를 이용하여, 각각의 보호 트랜잭션에 포함된 공개 데이터와 솔트를 복호화한다(S407). 이때, 영지식 증명부(160)는 상기 보호 트랜잭션에 포함된 사용자 데이터가 암호화되어 있는 경우, 상기 개인키를 이용하여 사용자 데이터를 복호화할 수도 있다.When the blockchain interworking unit 150 acquires a plurality of protection transactions related to the group identification information, the zero-knowledge proof unit 160 uses the private key of the personal information management server 100 to perform each protection transaction. The included public data and the salt are decoded (S407). In this case, when the user data included in the protection transaction is encrypted, the zero knowledge authentication unit 160 may decrypt the user data using the private key.

다음으로, 영지식 증명부(160)는 비밀 데이터 생성부(120)로 비밀 데이터의 생성을 요청하고, 비밀 데이터 생성부(120)는 클라이언트(400)로부터 수신한 사용자 식별정보를 토대로, 데이터베이스(200)에 저장된 사용자의 개인정보에 확인한다. 그리고 비밀 데이터 생성부(120)는 상기 확인한 개인정보와 복호화된 솔트의 해시값을 산출하고, 이 해시값을 비밀 데이터로서 생성함으로써, 블록체인에서 획득한 각 보호 트랜잭션에 대한 비밀 데이터를 생성한다(S409). Next, the zero knowledge proof unit 160 requests the secret data generation unit 120 to generate the secret data, and the secret data generation unit 120 based on the user identification information received from the client 400, the database ( Check the user's personal information stored in 200). The secret data generating unit 120 calculates hash values of the checked personal information and the decrypted salt and generates the hash values as secret data, thereby generating secret data for each protected transaction obtained in the blockchain ( S409).

다음으로, 영지식 증명부(160)는 각각의 보호 트랜잭션에서 복호화된 공개 데이터와, 각각의 보호 트랜잭션을 토대로 생성한 비밀 데이터를 토대로, 각각의 보호 트랜잭션이 사용자와 관련된 데이터인지 여부를 판정하는 영지식 증명을 수행한다(S411). 즉, 영지직 증명부(160)는 보호 트랜잭션에서 복호화된 공개 데이터 및 상기 보호 트랜잭션에서 복호화된 솔트를 토대로 생성된 비밀 데이터를, 영지식 증명에 대입하여 증명값이 참이면 상기 보호 트랜잭션이 해당 사용자와 관련된 트랜잭션이 것으로 판정하고, 그렇지 않은 상기 보호 트랜잭션이 해당 사용자와 관련되지 않은 트랜잭션이 것으로 판정함으로써, 각각의 보호 트랜잭션에 대한 영지식 증명을 수행한다. 이때, 영지식 증명부(160)는 상기 생성한 비밀 데이터를 시드로서 이용하여 공개 데이터를 생성하고, 이렇게 생성한 공개 데이터와 상기 복호화된 공개 데이터의 일치 여부를 확인하여 일치하는 경우에 해당 보호 트랜잭션이 사용자와 관련된 보호 트랜잭션(즉, 참)인 것으로 판정한다.Next, the zero knowledge proof unit 160 determines whether each protected transaction is data related to a user based on the public data decrypted in each protected transaction and the secret data generated based on each protected transaction. Proof of knowledge is performed (S411). That is, if the proof value is true by substituting zero knowledge proof for the secret data generated based on the open data decrypted in the protected transaction and the salt decrypted in the protected transaction, the protected transaction is a corresponding user. A zero knowledge proof for each protected transaction is performed by determining that the transaction associated with is determined to be a transaction that is not associated with the user. In this case, the zero-knowledge proof unit 160 generates the public data using the generated secret data as a seed, and checks whether the generated public data and the decrypted public data match with each other to protect the corresponding transaction. Determine that this is a protected transaction (i.e. true) associated with this user.

이렇게 각각의 보호 트랜잭션이 참 또는 거짓으로 판정되면, 정보 제공부(170)는 블록체인에서 추출한 복수의 보호 트랜잭션 중에서 참이 되는 하나 이상의 보호 트랜잭션을 선별한다(S413). 그리고 정보 제공부(170)는 상기 선별한 보호 트랜잭션에 포함된 사용자 데이터를 가공 처리하여 정보(예컨대, 로밍 목록, 통화 목록 등)를 생성한다(S415). 이어서, 정보 제공부(170)는 상기 가공 처리된 정보를 클라이언트(400)로 전송한다(S417). 한편, 실시 형태에 따라, 정보 제공부(170)는 상기 선별한 보호 트랜잭션을 가공처리하지 않고, 상기 선별한 보호 트랜잭션에 포함된 하나 이상의 사용자 데이터를 클라이언트(400)로 전송할 수도 있다.When each protection transaction is determined to be true or false, the information providing unit 170 selects one or more protection transactions that become true from the plurality of protection transactions extracted from the blockchain (S413). The information providing unit 170 processes user data included in the selected protected transaction to generate information (eg, roaming list, call list, etc.) (S415). Next, the information providing unit 170 transmits the processed information to the client 400 (S417). In some embodiments, the information provider 170 may transmit one or more user data included in the selected protected transaction to the client 400 without processing the selected protected transaction.

상술한 바와 같이, 블록체인에는 데이터를 저장할 때 개인정보가 아닌 임의의 일회용인 공개 데이터와 그에 대응하는 데이터를 저장하기 때문에 제3자가 누구의 데이터인지 유추할 수 없다. 또한, 개인정보 관리 서버(100)는 영지식 증명을 통해서 참이 되는 보호 트랜잭션에 대해서만, 해당 사용자의 트랜잭션으로 판단하여 이용할 수 있다.As described above, since the blockchain stores public data that is disposable and non-personal information and corresponding data when storing data, it is not possible to infer whose data is a third party. In addition, the personal information management server 100 may determine and use only the protection transaction that becomes true through zero-knowledge proof as the transaction of the corresponding user.

도 5는 본 발명의 일 실시예에 따른, 개인정보 관리 서버에서 개인정보를 삭제하는 방법을 설명하는 흐름도이다.5 is a flowchart illustrating a method of deleting personal information from a personal information management server according to an embodiment of the present invention.

도 5를 참조하면, 개인정보 관리 서버(100)의 개인정보 관리부(140)는 각 사용자별 개인정보 보유 기간을 확인하여, 개인정보 보유 기간이 만료가 예정되는 사용자를 확인한다(S501). Referring to FIG. 5, the personal information manager 140 of the personal information management server 100 checks a personal information holding period for each user, and confirms a user whose personal information holding period is scheduled to expire (S501).

이어서, 개인정보 관리부(140)는, 개인정보의 보유 기간이 만료가 예정되는 사용자에게 메일이나 문자를 통한 공지를 수행하고(S503), 해당 사용자로부터의 응답 메시지를 수신한다.Subsequently, the personal information manager 140 notifies the user who is scheduled to expire the personal information through mail or text (S503), and receives a response message from the user.

다음으로, 개인정보 관리부(140)는 사용자가 보유 기간 연장에 동의하는 경우, 해당 사용자의 개인정보를 데이터베이스(200)에 지속적으로 저장한다(S505, S507). 이때, 개인정보 관리부(140)는 개인정보의 보유 기간 연장에 동의하는 사용자에 대해서 새로운 그룹 식별정보를 할당하고, 이 할당한 그룹 식별정보를 데이터베이스(200)에 저장할 수 있다. 이 경우, 사용자의 그룹 식별정보는 과거의 그룹 식별정보와 새로운 그룹 식별정보가 두 개일 수 있으며, 이에 따라 블록체인 연동부(150)는 블록체인에서 데이터를 조회할 때에, 복수의 그룹 식별정보 각각과 관련되는 보호 트랜잭션을 블록체인에서 획득할 수 있으며, 또는 데이터 검색 범위에 따라 과거의 그룹 식별정보 또는 현재의 그룹 식별정보와 관련된 보호 트랜잭션을 블록체인에서 추출할 수 있다. Next, if the user agrees to extend the retention period, the personal information manager 140 continuously stores the personal information of the user in the database 200 (S505 and S507). In this case, the personal information manager 140 may allocate new group identification information to the user who agrees to extend the retention period of the personal information, and store the allocated group identification information in the database 200. In this case, the group identification information of the user may include two pieces of old group identification information and new group identification information. Accordingly, when the blockchain interworking unit 150 inquires data in the blockchain, each of the plurality of group identification information may be used. The protection transaction related to the transaction may be obtained from the blockchain, or the protection transaction related to the past group identification information or the current group identification information may be extracted from the blockchain according to the data search range.

한편, 개인정보 관리부(140)는 사용자가 보유 기간 연장에 동의하지 않은 경우, 해당 사용자의 개인정보를 데이터베이스(200)에서 삭제함으로써, 사용자의 개인정보를 폐기한다(S509). 이에 따라, 블록체인에는 사용자의 개인정보가 전혀 기록되지 않으며, 또한 데이터베이스(200)에서 사용자의 개인정보가 삭제됨에 따라 정확한 비밀 데이터를 생성하는 것이 불가능하게 되고, 이에 따라 블록체인에 저장된 데이터가 어느 사용자의 데이터인지 여부를 특정할 수 없게 된다. 또한, 사용자도 개인정보 관리 서버(100)의 개인키를 보유하지 않고 있기 때문에, 블록체인에 암호화되어 저장된 솔트를 복호화하지 못하고 블록체인에 저장된 데이터를 활용할 수 없게 된다. 즉, 기존에 저장된 영지식 증명을 위해 공개 데이터로서 저장된 블록체인의 데이터는 개인정보 관리 서버(100)의 개인키와 해당 고객의 개인정보 없이는 풀 수 없으므로 블록체인의 데이터는 그 누구도 정상적으로 이용할 수 없다.On the other hand, if the user does not agree to extend the retention period, the personal information management unit 140 discards the user's personal information by deleting the user's personal information from the database 200 (S509). Accordingly, the personal information of the user is not recorded in the blockchain at all, and as the personal information of the user is deleted from the database 200, it is impossible to generate accurate secret data. It is not possible to specify whether or not it is user data. In addition, since the user does not hold the private key of the personal information management server 100, the user cannot use the data stored in the block chain without decrypting the salt encrypted and stored in the block chain. That is, the data of the blockchain stored as public data for proof of existing knowledge can not be solved without the private key of the personal information management server 100 and the personal information of the corresponding customer, so that the data of the blockchain cannot be used normally by anyone. .

본 명세서는 많은 특징을 포함하는 반면, 그러한 특징은 본 발명의 범위 또는 특허청구범위를 제한하는 것으로 해석되어서는 안 된다. 또한, 본 명세서에서 개별적인 실시예에서 설명된 특징들은 단일 실시예에서 결합되어 구현될 수 있다. 반대로, 본 명세서에서 단일 실시예에서 설명된 다양한 특징들은 개별적으로 다양한 실시예에서 구현되거나, 적절히 결합되어 구현될 수 있다.While this specification contains many features, such features should not be construed as limiting the scope of the invention or the claims. Also, the features described in the individual embodiments herein can be implemented in combination in a single embodiment. Conversely, various features described in a single embodiment herein can be implemented individually in various embodiments or in combination as appropriate.

도면에서 동작들이 특정한 순서로 설명되었으나, 그러한 동작들이 도시된 바와 같은 특정한 순서로 수행되는 것으로, 또는 일련의 연속된 순서, 또는 원하는 결과를 얻기 위해 모든 설명된 동작이 수행되는 것으로 이해되어서는 안 된다. 특정 환경에서 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 아울러, 상술한 실시예에서 다양한 시스템 구성요소의 구분은 모든 실시예에서 그러한 구분을 요구하지 않는 것으로 이해되어야 한다. 상술한 프로그램 구성요소 및 시스템은 일반적으로 단일 소프트웨어 제품 또는 멀티플 소프트웨어 제품에 패키지로 구현될 수 있다.Although the operations have been described in a particular order in the drawings, they should not be understood as being performed in a particular order as shown, or in a sequence of successive orders, or all of the described actions being performed to achieve a desired result. . Multitasking and parallel processing may be advantageous in certain circumstances. In addition, it should be understood that the division of various system components in the above-described embodiments does not require such division in all embodiments. The program components and systems described above may generally be packaged in a single software product or multiple software products.

상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(시디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.The method of the present invention as described above may be implemented as a program and stored in a recording medium (CD-ROM, RAM, ROM, floppy disk, hard disk, magneto-optical disk, etc.) in a computer-readable form. Since this process can be easily implemented by those skilled in the art will not be described in more detail.

이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.The present invention described above is capable of various substitutions, modifications, and changes without departing from the technical spirit of the present invention for those skilled in the art to which the present invention pertains. It is not limited by the drawings.

100 : 개인정보 관리 서버 200 : 데이터베이스
300 : 블록체인 네트워크 400 : 클라이언트
500 : 네트워크 110 : 데이터 획득부
120 : 비밀 데이터 생성부 130 : 공개 데이터 생성부
140 : 개인정보 관리부 150 : 블록체인 연동부
160 : 영지식 증명부 170 : 졍보 제공부
100: personal information management server 200: database
300: blockchain network 400: client
500: network 110: data acquisition unit
120: secret data generation unit 130: public data generation unit
140: personal information management unit 150: blockchain interworking unit
160: English knowledge proof unit 170: Cheonbo provider

Claims (18)

개인정보 관리 서버에서 블록체인 환경에서 개인정보를 보호하는 방법으로서,
복수의 보호 트랜잭션을 블록체인에서 추출하는 단계;
상기 추출한 각 보호 트랜잭션에 포함된 솔트와 공개 데이터를 확인하는 단계;
상기 솔트와 사용자의 개인정보를 이용하여 보호 트랜잭션별 비밀 데이터를 생성하는 단계; 및
상기 생성한 보호 트랜잭션별 비밀 데이터와 보호 트랜잭션별 공개 데이터를 토대로 영지식 증명을 수행하여, 상기 추출한 복수의 보호 트랜잭션 중에서 상기 영지식 증명이 참이 되는 보호 트랜잭션을 상기 사용자와 관련되는 보호 트랜잭션으로 선별하는 단계;를 포함하는 개인정보 보호 방법.
As a method of protecting personal information in a blockchain environment in a personal information management server,
Extracting a plurality of protected transactions from the blockchain;
Checking the salt and public data included in each extracted protection transaction;
Generating secret data for each protected transaction using the salt and personal information of a user; And
The zero-knowledge proof is performed based on the generated secret data for each protected transaction and the open data for each protected transaction, and a protected transaction associated with the user is selected as a protected transaction related to the user from among the extracted plurality of protected transactions. Personal information protection method comprising the.
제1항에 있어서,
상기 비밀 데이터를 생성하는 단계는,
상기 확인한 솔트를 개인키로 복호화하고, 상기 사용자의 개인정보를 획득하는 단계; 및
상기 복호화한 솔트와 상기 개인정보를 해시 연산하여 해시값을 산출하고, 이 해시값을 상기 비밀 데이터로서 설정하는 단계;를 포함하는 개인정보 보호 방법.
The method of claim 1,
Generating the secret data,
Decrypting the checked salt with a private key and obtaining personal information of the user; And
Hashing the decoded salt and the personal information to calculate a hash value and setting the hash value as the secret data.
제2항에 있어서,
상기 선별하는 단계는,
상기 생성한 보호 트랜잭션별 비밀 데이터를 토대로 보호 트랜잭션별 공개 데이터를 생성하고, 이 생성한 공개 데이터와 보호 트랜잭션에 포함된 공개 데이터의 일치 여부를 비교하여, 각 보호 트랜잭션에 대한 영지식 증명을 수행하는 것을 특징으로 하는 개인정보 보호 방법.
The method of claim 2,
The sorting step,
Producing zero-knowledge proof for each protected transaction by generating public data for each protected transaction based on the generated secret data for each protected transaction, comparing the generated public data with the public data included in the protected transaction. Personal information protection method characterized in that.
제1항에 있어서,
상기 선별하는 단계 이후에,
상기 선별한 보호 트랜잭션에 포함된 사용자 데이터를 확인하여, 이 사용자 데이터를 클라이언트로 전송하는 단계;를 더 포함하는 개인정보 보호 방법.
The method of claim 1,
After the screening step,
Identifying the user data included in the selected protection transaction, and transmitting the user data to the client.
제1항에 있어서,
상기 선별하는 단계 이후에,
상기 선별한 보호 트랜잭션에 포함된 사용자 데이터를 확인하고, 이 사용자 데이터를 가공 처리하여 클라이언트로 전송하는 단계;를 더 포함하는 개인정보 보호 방법.
The method of claim 1,
After the screening step,
Identifying user data included in the selected protection transaction, processing the user data, and transmitting the processed user data to the client;
제1항에 있어서,
상기 추출하는 단계는,
상기 사용자의 그룹 식별정보를 확인하는 단계; 및
상기 사용자의 그룹 식별정보와 관련된 복수의 보호 트랜잭션을 상기 블록체인에서 추출하는 단계;를 포함하는 개인정보 보호 방법.
The method of claim 1,
The extracting step,
Checking group identification information of the user; And
Extracting a plurality of protected transactions related to the group identification information of the user from the blockchain.
제6항에 있어서,
상기 그룹 식별정보를 확인하는 단계는,
상기 사용자의 개인정보를 확인하고, 상기 개인정보와 대칭키를 해시 연산하여 상기 해시 연산한 해시값과 관련된 그룹 식별정보를 블록체인에서 추출하는 것을 특징으로 하는 개인정보 보호 방법.
The method of claim 6,
Confirming the group identification information,
Verifying the user's personal information, hashing the symmetric key with the personal information, and extracting group identification information related to the hashed hash value from the blockchain.
블록체인 환경에서 개인정보를 보호하는 개인정보 관리 장치에 있어서,
복수의 보호 트랜잭션을 블록체인에서 추출하는 블록체인 연동부;
사용자의 개인정보와 보호 트랜잭션에 포함된 솔트를 이용하여 보호 트랜잭션별 비밀 데이터를 생성하는 비밀 데이터 생성부;
추출한 각 보호 트랜잭션에 포함된 공개 데이터를 확인하고, 상기 생성한 보호 트랜잭션별 비밀 데이터와 보호 트랜잭션별 공개 데이터를 토대로 영지식 증명을 수행하는 영지식 증명부; 및
상기 추출한 복수의 보호 트랜잭션 중에서 영지식 증명이 참이 되는 보호 트랜잭션을 상기 사용자와 관련되는 보호 트랜잭션으로 선별하는 정보 제공부;를 포함하는 개인정보 관리 장치.
In the personal information management device that protects personal information in a blockchain environment,
A blockchain interworking unit extracting a plurality of protected transactions from the blockchain;
A secret data generator for generating secret data for each protected transaction by using a user's personal information and a salt included in the protected transaction;
A zero-knowledge proof unit that checks public data included in each extracted protection transaction and performs zero-knowledge proof based on the generated secret data for each protection transaction and public data for each protection transaction; And
And an information providing unit for selecting a protection transaction in which zero-knowledge proof is true among the extracted plurality of protection transactions as a protection transaction associated with the user.
제8항에 있어서,
상기 영지식 증명부는, 상기 솔트를 개인키로 복호화하고,
상기 비밀 데이터 생성부는, 상기 복호화한 솔트와 상기 개인정보를 해시 연산하여 해시값을 산출하고, 이 해시값을 상기 비밀 데이터로서 설정하는 것을 특징으로 하는 개인정보 관리 장치.
The method of claim 8,
The zero knowledge authentication unit decrypts the salt with a private key,
And the secret data generating unit calculates a hash value by hashing the decoded salt and the personal information, and sets the hash value as the secret data.
제9항에 있어서,
상기 영지식 증명부는,
상기 보호 트랜잭션별 비밀 데이터를 토대로 보호 트랜잭션별 공개 데이터를 생성하고, 이 생성한 공개 데이터와 보호 트랜잭션에 포함된 공개 데이터의 일치 여부를 비교하여, 각 보호 트랜잭션에 대한 영지식 증명을 수행하는 것을 특징으로 하는 개인정보 관리 장치.
The method of claim 9,
The zero knowledge proof unit,
The public data for each protected transaction is generated based on the secret data for each protected transaction, and the zero-knowledge proof for each protected transaction is performed by comparing the generated open data with the matched public data included in the protected transaction. Personal information management device.
제8항에 있어서,
상기 정보 제공부는,
상기 선별한 보호 트랜잭션에 포함된 사용자 데이터를 확인하여, 이 사용자 데이터를 토대로 클라이언트로 정보를 제공하는 것을 특징으로 하는 개인정보 관리 장치.
The method of claim 8,
The information providing unit,
Personal information management device, characterized in that to check the user data included in the selected protection transaction, to provide information to the client based on the user data.
제8항에 있어서,
상기 블록체인 연동부는,
상기 사용자의 그룹 식별정보를 확인하고, 상기 사용자의 그룹 식별정보와 관련된 복수의 보호 트랜잭션을 상기 블록체인에서 추출하는 것을 특징으로 하는 개인정보 관리 장치.
The method of claim 8,
The blockchain interworking unit,
Confirming the group identification information of the user, and extracting a plurality of protected transactions related to the group identification information of the user from the blockchain.
제8항에 있어서,
사용자의 동의에 근거하여 상기 사용자의 개인정보를 데이터베이스에 저장하거나 삭제하는 개인정보 관리부;를 더 포함하는 개인정보 관리 장치.
The method of claim 8,
And a personal information manager configured to store or delete the user's personal information in a database based on a user's consent.
관리 서버에서 블록체인 환경에서 개인정보를 보호하는 방법으로서,
사용자 데이터가 획득되면 임의의 솔트를 생성하는 단계;
사용자의 개인정보를 획득하고, 이 사용자의 개인정보와 상기 솔트를 토대로 공개 데이터를 생성하는 단계;
상기 공개 데이터, 상기 솔트 및 상기 사용자 데이터 포함된 보호 트랜잭션을 생성하는 단계; 및
상기 보호 트랜잭션을 블록체인 네트워크에 전파하여, 상기 보호 트랜잭션을 블록체인에 저장하는 단계;를 포함하는 개인정보 보호 방법.
As a method of protecting personal information in a blockchain environment on a management server,
Generating a salt if user data is obtained;
Obtaining personal information of the user and generating public data based on the personal information of the user and the salt;
Generating a protected transaction comprised of the public data, the salt and the user data; And
Propagating the protected transaction to a blockchain network, and storing the protected transaction on a blockchain.
제14항에 있어서,
상기 공개 데이터를 생성하는 단계는,
상기 사용자의 개인정보와 상기 솔트를 해시 연산하여, 이 해시 연산한 결과값을 이용하여 상기 공개 데이터를 생성하는 것을 특징으로 하는 개인정보 보호 방법.
The method of claim 14,
Generating the public data,
And hashing the personal information of the user and the salt and generating the public data using the hashed result.
제15항에 있어서,
상기 공개 데이터를 생성하는 단계는,
상기 해시 연산한 결과를 공개키 생성 알고리즘에 적용하여, 상기 공개 데이터를 생성하는 것을 특징으로 하는 개인정보 보호 방법.
The method of claim 15,
Generating the public data,
And applying the result of the hash operation to a public key generation algorithm to generate the public data.
제14항에 있어서,
상기 보호 트랜잭션을 생성하는 단계는,
상기 솔트 및 상기 공개 데이터를 개인키로 암호화하고, 상기 암호화된 솔트와 공개 데이터를 상기 보호 트랜잭션에 포함시키는 것을 특징으로 하는 개인정보 보호 방법.
The method of claim 14,
Generating the protected transaction,
And encrypting the salt and the public data with a private key, and including the encrypted salt and the public data in the protected transaction.
제14항에 있어서,
상기 보호 트랜잭션을 생성하는 단계는,
상기 사용자에게 할당된 그룹 식별정보를 확인하고, 상기 그룹 식별정보를 상기 보호 트랜잭션에 포함시켜, 상기 보호 트랜잭션을 생성하는 것을 특징으로 하는 개인정보 보호 방법.
The method of claim 14,
Generating the protected transaction,
Confirming the group identification information assigned to the user and including the group identification information in the protection transaction to generate the protection transaction.
KR1020180099373A 2018-07-03 2018-08-24 Method for protecting personal information in block chain environment and apparatus therefor KR102289414B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20180077302 2018-07-03
KR1020180077302 2018-07-03

Publications (2)

Publication Number Publication Date
KR20200004229A true KR20200004229A (en) 2020-01-13
KR102289414B1 KR102289414B1 (en) 2021-08-12

Family

ID=69153381

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180099373A KR102289414B1 (en) 2018-07-03 2018-08-24 Method for protecting personal information in block chain environment and apparatus therefor

Country Status (1)

Country Link
KR (1) KR102289414B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117436877A (en) * 2023-12-14 2024-01-23 山东维平信息安全测评技术有限公司 Transaction privacy protection method based on blockchain

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102716337B1 (en) 2021-01-11 2024-10-15 충남대학교 산학협력단 A blockchain-based zero-knowledge verification method that can protect privacy
KR102719131B1 (en) 2022-11-23 2024-10-16 진윤겸 System for processing personal information

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018008800A1 (en) * 2016-07-04 2018-01-11 (주)코인플러그 Accredited certificate authentication system based on blockchain, and accredited certificate authentication method based on blockchain, using same
KR101837169B1 (en) * 2016-12-29 2018-03-09 주식회사 코인플러그 Method for providing secret electronic voting service on the basis of blockchain with merkle tree structure by using zero knowledge proof algorithm, and voting coin minter server, voting token distributor server and voting supporting server using the same
KR101848896B1 (en) 2016-10-19 2018-04-13 한전케이디엔 주식회사 Prepaid electricity sales and power usage method using block chain

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018008800A1 (en) * 2016-07-04 2018-01-11 (주)코인플러그 Accredited certificate authentication system based on blockchain, and accredited certificate authentication method based on blockchain, using same
KR101848896B1 (en) 2016-10-19 2018-04-13 한전케이디엔 주식회사 Prepaid electricity sales and power usage method using block chain
KR101837169B1 (en) * 2016-12-29 2018-03-09 주식회사 코인플러그 Method for providing secret electronic voting service on the basis of blockchain with merkle tree structure by using zero knowledge proof algorithm, and voting coin minter server, voting token distributor server and voting supporting server using the same

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
이찬혁, ‘블록체인을 활용한 IoT 데이터 보호 시스템 설계 및 구현’, 아주대학교대학원 지식정보공학과 석사학위논문, 2017.12.13.* *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117436877A (en) * 2023-12-14 2024-01-23 山东维平信息安全测评技术有限公司 Transaction privacy protection method based on blockchain
CN117436877B (en) * 2023-12-14 2024-03-22 山东维平信息安全测评技术有限公司 Transaction privacy protection method based on blockchain

Also Published As

Publication number Publication date
KR102289414B1 (en) 2021-08-12

Similar Documents

Publication Publication Date Title
CN109981255B (en) Method and system for updating key pool
CN105656920B (en) A kind of encryption and decryption method and system for posting number of packages evidence based on express delivery
CN107404461A (en) Data safe transmission method, client and service end method, apparatus and system
CN108737374A (en) The method for secret protection that data store in a kind of block chain
CN109150519A (en) Anti- quantum calculation cloud storage method of controlling security and system based on public keys pond
US8995655B2 (en) Method for creating asymmetrical cryptographic key pairs
CN112187466B (en) Identity management method, device, equipment and storage medium
KR20050008627A (en) Information processing system and method, information processing device and method, recording medium, and program
JP6566278B1 (en) Personal data management system
CN107465665A (en) A kind of file encryption-decryption method based on fingerprint identification technology
CN112822255A (en) Block chain-based mail processing method, mail sending end, receiving end and equipment
KR20200112055A (en) Method for sharing data in block chain environment and apparatus
CN109492424A (en) Data assets management method, data assets managing device and computer-readable medium
KR102289414B1 (en) Method for protecting personal information in block chain environment and apparatus therefor
CN111080299B (en) Anti-repudiation method for transaction information, client and server
CN109962777A (en) The key in block catenary system is permitted to generate, obtain the method and apparatus of key
WO2022206453A1 (en) Method and apparatus for providing cross-chain private data
CN106605419A (en) Method and system for secure SMS communications
CN113824553A (en) Key management method, device and system
Ramprasath et al. Protected data sharing using attribute based encryption for remote data checking in cloud environment
CN111770081A (en) Role authentication-based big data confidential file access method
KR20200000978A (en) Data security method and system
CN109687960A (en) Cloud storage method and system is acted on behalf of in anti-quantum calculation based on multiple public asymmetric key ponds
EP4261809A1 (en) Service provision system
JP7107241B2 (en) Key sharing method, key sharing system, agent terminal

Legal Events

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