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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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—
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
Description
본 발명은 개인정보를 보호하는 기술에 관한 것으로서, 더욱 상세하게는 블록체인 환경에서 개인정보를 보호하는 방법 및 이를 위한 장치에 관한 것이다. 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.
본 발명은 이러한 문제점을 해결하기 위하여 제안된 것으로, 블록체인에 개인정보를 저장하지 않고 복수의 노드들의 연동을 통하여 개인정보가 사용자에게 제공되게 하는 개인정보 보호 방법 및 이를 위한 장치를 제공하는데 그 목적이 있다.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
데이터베이스(200)는 사용자의 개인정보를 저장한다. 즉, 데이터베이스(200)는 사용자의 성명, 아이디, 전화번호, 주소 등과 같은 사용자의 개인정보를 사용자별로 구분하여 저장한다. 또한, 데이터베이스(200)는 사용자별로 할당된 그룹 식별정보를 저장할 수도 있다. The
개인정보 관리 서버(100)는 개인정보를 보유 및 관리하는 업체가 소유하는 서버로서, 클라이언트(400)로부터 특정 데이터가 요청되면, 블록체인 네트워크(300)로부터 복수의 보호 트랜잭션을 획득하여, 이 중에서 영지식 증명을 통해서 참이 되는 보호 트랜잭션을 선별한다. 또한, 개인정보 관리 서버(100)는 상기 선별한 각 보호 트랜잭션에 포함된 사용자 데이터를 클라이언트(400)로 제공하거나 상기 사용자 데이터를 토대로 가공한 정보를 클라이언트(400)로 제공할 수 있다. The personal
개인정보 관리 서버(100)는 사용자별로 그룹 식별정보를 할당할 수 있다. 개인정보 관리 서버(100)는 하나 이상의 사용자 식별정보와 그룹 식별정보가 매핑된 데이터를 관리한다. 부연하면, 하나 이상의 사용자는 특정 그룹에 소속될 수 있다. 또는 개인정보 관리 서버(100)는 서비스 유형 또는 지역별로 할당되는 그룹 식별정보를 데이터베이스(200)에 저장하고 관리할 수 있다. 즉, 그룹 식별정보는 사용자, 서비스 유형, 지역에 따라 할당되고 관리될 수 있다. 한편, 하나의 사용자 식별정보와 대응하여 복수의 그룹 식별정보가 할당될 수도 있다.The personal
개인정보 관리 서버(100)는 사용자 데이터를 획득하면, 사용자의 개인정보가 저장되지 않으며 상기 사용자 데이터가 포함되는 보호 트랜잭션을 생성하여 블록체인 네트워크(300)로 전파한다. 여기서, 사용자 데이터는 사용자와 관련된 데이터로서, 예를 들어 로밍 데이터, 통화 데이터, 콘텐츠 구매 데이터, 포인트 사용 데이터, 위치 데이터 등을 포함한다. 상기 보호 트랜잭션에는 전화번호, IMSI(International Mobile Station Identity), IP 주소, 로그인 아이디, 주민등록번호 등과 같이 사용자를 특정할 수 있는 정보가 기록되지 않는다. 즉, 본 발명에 따른 보호 트랜잭션에는 사용자의 개인정보가 제외된 사용자 데이터가 기록된다. 예를 들어, 로밍 데이터가 보호 트랜잭션에 포함되는 경우, 이 보호 트랜잭션에는 이동단말의 식별정보가 제외되고, 단지 홈망 또는 방문망의 식별정보, 데이터 발생 일시 등을 포함하는 로밍 데이터가 기록될 수 있다. When the personal
개인정보 관리 서버(100)는 보호 트랜잭션을 생성하기 위해서, 우선 사용자의 개인정보를 확인한 후, 임의의 솔트(salt)를 생성하다. 여기서, 솔트는 임의의 문자열 또는 숫자열 또는 문자와 숫자의 조합으로서, 일회성을 성질을 가지며, 개인정보 관리 서버(100)에 의해서 동적으로 생성된다. 상기 개인정보 관리 서버(100)는 현재 날짜, 시각, 난수 등을 활용하여 일회성 솔트를 생성할 수 있다. In order to generate a protection transaction, the personal
또한, 개인정보 관리 서버(100)는 상기 생성한 솔트와 개인정보를 해시 연산하여, 해시값을 산출하고, 해시값을 비밀 데이터로서 설정하고, 상기 설정한 비밀 데이터를 시드로서 이용하여 공개 데이터를 생성한다. 이때, 개인정보 관리 서버(100)는 현재 사용되는 공개키 생성 알고리즘에 상기 비밀 데이터를 시드로서 적용하여 도출된 결과값을 상기 공개 데이터로서 이용할 수 있다. 상기 공개 데이터는 일회성으로서, 개인정보 관리 서버(100)는 매번 상이한 값을 가지는 공개 데이터를 매번 생성한다. In addition, the personal
또한, 개인정보 관리 서버(100)는 상기 공개 데이터와 상기 솔트를 자신의 비밀키로 암호화한 후, 사용자에게 할당된 그룹 식별정보, 상기 암호화된 솔트와 공개 데이터 및 상기 트랜잭션이 포함된 보호 트랜잭션을 블록체인에 저장한다. In addition, the personal
클라이언트(400)는 서비스를 제공받기 위한 타사업자의 단말 또는 사용자의 단말로서, 스마트 컨트랙트(smart contract)를 통하여 특정 데이터를 조회할 수 있다. 클라이언트(400)는 블록체인의 데이터를 조회하게 되면, 필요한 조건에 해당하는 데이터를 제공받을 수 있다. 만약, 개인정보가 필요한 단체라면 클라이언트(400)를 이용하여 개인정보 관리 서버(100)로 개인정보를 요청하고, 개인정보 관리 서버(100)는 고객의 제3자 제공 동의 여부를 확인하여 개인정보를 포함한 암호화된 데이터를 해당 단체로 제공할 수 있다.The
블록체인 네트워크(300)는 복수의 노드들이 연결되어 있으며, 보호 트랜잭션에 대한 검증을 수행한다. 즉, 블록체인 네트워크(300)에 속하는 각 노드들은 보호 트랜잭션이 발생하면, 이 보호 트랜잭션에 대한 검증을 수행한다. 이때, 블록체인 네트워크(300)에 속하는 노드들은 전자 서명의 진위에 대한 검증을 수행할 수 있다. 또한, 블록체인 네트워크(300)에 포함된 각 노드들은 보호 트랜잭션을 포함하며 블록 간에 연결 구조를 가지는 블록체인을 서로 공유한다. The
블록체인을 구성하는 블록은 블록 헤더와 보호 트랜잭션으로 구성된다. 블록 헤더는 이전 블록 해시값, 머클루트(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
한편, 블록체인은 그룹 식별정보를 저장하는 블록체인과 데이터를 저장하는 블록체인으로 이원화될 수 있다. 이 경우, 데이터베이스(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
도 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
또한, 개인정보 관리 서버(100)는 하나 이상의 프로세서와 메모리를 포함할 수 있으며, 상기 데이터 획득부(110), 비밀 데이터 생성부(120), 공개 데이터 생성부(130), 개인정보 관리부(140), 블록체인 연동부(150), 영지식 증명부(160) 및 정보 제공부(170)는 상기 프로세서에 의해서 실행되는 프로그램 형태로 상기 메모리에 탑재(저장)될 수도 있다. In addition, the personal
데이터 획득부(110)는 블록체인에 저장되는 사용자 데이터를 획득하는 기능을 수행한다. 상기 데이터 획득부(110)는 외부 서버와 연동하여, 사용자 데이터를 획득할 수도 있으며, 사용자 단말로부터 사용자 데이터를 수신할 수도 있다. The
비밀 데이터 생성부(120)는 공개 데이터의 생성에 기초가 되는 비밀 데이터를 생성한다. 구체적으로, 비밀 데이터 생성부(120)는 데이터베이스(200)에 저장된 사용자의 개인정보를 이용하여 비밀 데이터를 생성한다. 이때, 비밀 데이터 생성부(120)는 임의의 솔트를 생성하고, 이 생성한 솔트와 사용자의 개인정보를 해시 연산하여 해시값을 산출하고, 이 해시값을 비밀 데이터로 설정함으로써, 사용자의 비밀 데이터를 생성할 수 있다. 상기 비밀 데이터 생성부(120)는 데이터베이스(200)에 저장된 사용자의 개인정보 전부를 상기 솔트와 함께 해시 연산하여 비밀 데이터를 생성할 수 있으며, 또는 상기 개인정보의 일부를 상기 솔트와 함께 해시 연산하여 비밀 데이터를 생성할 수 있다. The secret
공개 데이터 생성부(130)는 사용자의 공개 데이터를 생성하는 기능을 수행한다. 구체적으로, 공개 데이터 생성부(130)는 비밀 데이터를 시드(seed)를 이용하여, 사용자의 공개 데이터를 생성한다. 이때, 공개 데이터 생성부(130)는 공개키 생성 알고리즘에 상기 비밀 데이터를 시드로서 적용하여 도출된 결과값을 상기 공개 데이터로서 이용할 수 있다. The
개인정보 관리부(140)는 데이터베이스(200)에 저장된 사용자의 개인정보를 관리하는 기능을 수행한다. 즉, 개인정보 관리부(140)는 개인정보 관리에 동의한 사용자의 개인정보를 데이터베이스(200)에 저장하고, 더불어 개인정보 보유 연장에 동의하지 않은 사용자의 개인정보를 데이터베이스(200)에서 삭제한다. The
블록체인 연동부(150)는 블록체인 네트워크(300)와 연동하여, 블록체인 네트워크(300)로 보호 트랜잭션을 전파하거나, 그룹 식별정보와 대응되는 복수의 보호 트랜잭션을 블록체인에서 획득하는 기능을 수행한다. 구체적으로, 블록체인 연동부(150)는 사용자의 그룹 식별정보를 확인하고, 이 그룹 식별정보, 암호화된 솔트와 공개 데이터 및 사용자 데이터를 포함하는 보호 트랜잭션을 생성하고, 이 보호 트랜잭션을 블록체인 네트워크(300)로 전파할 수 있다. 이때, 블록체인 연동부(150)는 개인정보 관리 서버(100)의 개인키를 암호키로서 이용하여, 상기 솔트와 공개 데이터를 암호화할 수 있으며, 추가적으로 상기 사용자 데이터를 암호화하여 상기 보호 트랜잭션을 생성할 수 있다. 또한, 블록체인 연동부(150)는 그룹 식별정보와 관련된 복수의 보호 트랜잭션을 블록체인에서 추출할 수도 있다. The
영지식 증명부(160)는 블록체인 연동부(150)에서 추출한 복수의 보호 트랜잭션 각각에 대한 영지식 증명을 진행하여, 상기 복수의 보호 트랜잭션 중에서 사용자와 관련된 보호 트랜잭션을 선별한다. 구체적으로, 영지식 증명부(160)는 개인정보 관리 서버(100)의 개인키를 이용하여, 상기 추출한 각각의 보호 트랜잭션에 포함된 공개 데이터와 솔트를 복호화하고, 비밀 데이터 생성부(120)를 통해서 보호 트랜잭션별 비밀 데이터를 생성한다. 아울러, 영지식 증명부(160)는 동일한 보호 트랜잭션을 기준으로, 복호화된 공개 데이터와 생성한 비밀 데이터를 영지식 증명에 대입하여 증명값이 참이면 해당 보호 트랜잭션이 사용자와 관련된 트랜잭션이 것으로 판정하고, 그렇지 않으면 해당 보호 트랜잭션이 사용자와 관련되지 않은 트랜잭션이 것으로 판정한다. 이때, 영지식 증명부(160)는 상기 생성한 비밀 데이터를 시드로서 이용하여 공개 데이터를 생성하고, 이렇게 생성한 공개 데이터와 상기 복호화된 공개 데이터의 일치 여부를 확인하여 일치하는 경우에 해당 보호 트랜잭션이 사용자와 관련된 보호 트랜잭션(즉, 참)인 것으로 판정한다.The zero-
정보 제공부(170)는 영지식 증명부(160)에서 참으로 판정한 하나 이상의 보호 트랜잭션을 선별하고, 이 선별한 보호 트랜잭션에 포함된 사용자 데이터를 클라이언트(400)로 전송하거나, 상기 사용자 데이터를 가공 처리한 후 가공된 정보를 클라이언트(400)로 전송한다. The
도 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
그러면, 비밀 데이터 생성부(120)는 획득한 사용자 데이터에서 사용자의 식별정보를 확인하거나, 상기 사용자 데이터를 발생시킨 클라이언트(400)의 로그인 아이디를 확인함으로써, 사용자를 식별한다. 이어서, 비밀 데이터 생성부(120)는 상기 식별한 사용자의 개인정보를 데이터베이스(200)에서 확인하고, 상기 개인정보를 이용하여 비밀 데이터를 생성한다(S303). 이때, 비밀 데이터 생성부(120)는 임의의 솔트를 생성하고, 이 생성한 솔트와 상기 개인정보를 해시 연산하여 해시값을 산출하고, 이 해시값을 상기 비밀 데이터로서 설정함으로써, 비밀 데이터를 생성할 수 있다. Then, the secret
이어서, 공개 데이터 생성부(130)는 상기 생성한 비밀 데이터를 시드(seed)로서 이용하여 공개 데이터를 생성한다(S305). 이때, 공개 데이터 생성부(130)는 공개키 생성 알고리즘에 상기 비밀 데이터를 시드로서 적용하여, 결과값을 도출하고, 이 결과값을 상기 공개 데이터로서 이용할 수 있다. Next, the public
비밀 데이터 및 공개 데이터 생성이 완료되면, 블록체인 연동부(150)는 블록체인에 보호 트랜잭션을 저장하기 위한 프로세스를 진행한다. 우선, 블록체인 연동부(150)는 개인정보 관리 서버(100)에서 보유중인 개인키를 확인하고, 이 개인키를 암호키로서 이용하여, 상기 공개 데이터와 상기 솔트를 암호화한다(S307).When the creation of the secret data and the public data is completed, the
한편, 블록체인 연동부(150)는 블록체인에 저장되어야 하는 사용자 데이터에서, 사용자의 개인정보가 포함된 경우, 이 개인정보를 상기 데이터에서 제거할 수 있다. 또한, 블록체인 연동부(150)는 상기 사용자 데이터를 상기 개인키를 이용하여 추가적으로 암호화할 수도 있다. Meanwhile, the
다음으로, 블록체인 연동부(150)는 식별한 사용자에게 할당된 그룹 식별정보를 확인한다(S309). 이때, 블록체인 연동부(150)는 사용자의 식별정보와 대응되는 그룹 식별정보를 데이터베이스(200)에서 확인함으로써, 상기 사용자에게 할당된 그룹 식별정보를 확인할 수 있다. 한편, 블록체인이 그룹 식별정보를 저장하는 블록체인과 데이터를 저장하는 블록체인으로 이원화되어 있는 경우, 블록체인 연동부(150)는 자신의 대칭키(즉, 개인정보 관리 서버의 대칭키)와 상기 사용자의 개인정보를 해시 연산하여 해시값을 산출하고, 이 해시값과 대응되어 기록되는 그룹 식별정보를 블록체인에서 추출할 수 있다.Next, the
이어서, 블록체인 연동부(150)는 상기 암호화된 솔트와 공개 데이터, 그룹 식별정보 및 사용자 데이터를 포함하는 보호 트랜잭션을 생성한다(S311). 그리고 블록체인 연동부(150)는 개인정보 관리 서버(100)의 개인키로 서명된 전자 서명과 상기 생성한 보호 트랜잭션을 블록체인 네트워크(300)로 전파하여, 상기 보호 트랜잭션이 포함된 신규 블록이 블록체인에 저장되게 한다(S313). 보호 트랜잭션과 전자 서명을 수신한 블록체인 네트워크(300)의 각 노드들은 상기 전자 서명의 진위를 검증하여 검증에 성공하면, 보호 트랜잭션을 포함하는 신규 블록을 생성하고, 이 신규 블록을 기존의 블록과 연결시킴으로써, 상기 보호 트랜잭션을 블록체인에 저장한다.Subsequently, the
이러한 절차에 따라, 블록체인에는 사용자의 개인정보가 제외된 보호 트랜잭션이 저장된다. 상기 보호 트랜잭션에는 사용자 데이터가 기록되나, 해당 보호 트랜잭션에 기록된 사용자 데이터가 어느 사용자와 관련된 데이터인지 여부를 블록체인의 자체의 데이터만을 가지고는 특정할 수 없다.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
그러면, 개인정보 관리 서버(100)의 데이터 획득부(110)는 클라이언트(400)로부터 상기 데이터 요청 메시지를 수신하고(S401), 블록체인 연동부(150)는 상기 데이터 요청 메시지에 포함된 사용자 식별정보를 토대로 사용자의 그룹 식별정보를 확인한다(S403). 일 실시예로서, 블록체인 연동부(150)는 데이터베이스(200)에서 상기 사용자 식별정보와 대응되는 그룹 식별정보를 확인함으로써, 상기 사용자에게 할당된 그룹 식별정보를 확인할 수 있다. 다른 실시예로서, 블록체인이 그룹 식별정보를 저장하는 블록체인과 데이터를 저장하는 블록체인으로 이원화되어 있는 경우, 블록체인 연동부(150)는 상기 사용자 식별정보를 토대로 사용자의 개인정보를 데이터베이스(200)에서 확인한 후, 자신의 대칭키(즉, 개인정보 관리 서버의 대칭키)와 상기 사용자의 개인정보를 해시 연산하여 해시값을 산출하고, 이 해시값과 대응되어 기록되는 그룹 식별정보를 블록체인에서 추출하여, 사용자의 그룹 식별정보를 확인할 수 있다. Then, the
다음으로, 블록체인 연동부(150)는 상기 그룹 식별정보를 포함하고 있는 복수의 보호 트랜잭션을 블록체인에서 추출한다(S405). 이때, 블록체인 연동부(150)는 상기 그룹 식별정보와 대응되는 데이터 요청 메시지를 블록체인 네트워크(300)로 전송하여, 상기 그룹 식별정보를 기록하는 복수의 보호 트랜잭션을 블록체인 네트워크(300)로부터 수신할 수 있다. Next, the
이렇게 블록체인 연동부(150)에서 상기 그룹 식별정보와 관련된 복수의 보호 트랜잭션을 획득하면, 영지식 증명부(160)는 개인정보 관리 서버(100)의 개인키를 이용하여, 각각의 보호 트랜잭션에 포함된 공개 데이터와 솔트를 복호화한다(S407). 이때, 영지식 증명부(160)는 상기 보호 트랜잭션에 포함된 사용자 데이터가 암호화되어 있는 경우, 상기 개인키를 이용하여 사용자 데이터를 복호화할 수도 있다.When the
다음으로, 영지식 증명부(160)는 비밀 데이터 생성부(120)로 비밀 데이터의 생성을 요청하고, 비밀 데이터 생성부(120)는 클라이언트(400)로부터 수신한 사용자 식별정보를 토대로, 데이터베이스(200)에 저장된 사용자의 개인정보에 확인한다. 그리고 비밀 데이터 생성부(120)는 상기 확인한 개인정보와 복호화된 솔트의 해시값을 산출하고, 이 해시값을 비밀 데이터로서 생성함으로써, 블록체인에서 획득한 각 보호 트랜잭션에 대한 비밀 데이터를 생성한다(S409). Next, the zero knowledge
다음으로, 영지식 증명부(160)는 각각의 보호 트랜잭션에서 복호화된 공개 데이터와, 각각의 보호 트랜잭션을 토대로 생성한 비밀 데이터를 토대로, 각각의 보호 트랜잭션이 사용자와 관련된 데이터인지 여부를 판정하는 영지식 증명을 수행한다(S411). 즉, 영지직 증명부(160)는 보호 트랜잭션에서 복호화된 공개 데이터 및 상기 보호 트랜잭션에서 복호화된 솔트를 토대로 생성된 비밀 데이터를, 영지식 증명에 대입하여 증명값이 참이면 상기 보호 트랜잭션이 해당 사용자와 관련된 트랜잭션이 것으로 판정하고, 그렇지 않은 상기 보호 트랜잭션이 해당 사용자와 관련되지 않은 트랜잭션이 것으로 판정함으로써, 각각의 보호 트랜잭션에 대한 영지식 증명을 수행한다. 이때, 영지식 증명부(160)는 상기 생성한 비밀 데이터를 시드로서 이용하여 공개 데이터를 생성하고, 이렇게 생성한 공개 데이터와 상기 복호화된 공개 데이터의 일치 여부를 확인하여 일치하는 경우에 해당 보호 트랜잭션이 사용자와 관련된 보호 트랜잭션(즉, 참)인 것으로 판정한다.Next, the zero knowledge
이렇게 각각의 보호 트랜잭션이 참 또는 거짓으로 판정되면, 정보 제공부(170)는 블록체인에서 추출한 복수의 보호 트랜잭션 중에서 참이 되는 하나 이상의 보호 트랜잭션을 선별한다(S413). 그리고 정보 제공부(170)는 상기 선별한 보호 트랜잭션에 포함된 사용자 데이터를 가공 처리하여 정보(예컨대, 로밍 목록, 통화 목록 등)를 생성한다(S415). 이어서, 정보 제공부(170)는 상기 가공 처리된 정보를 클라이언트(400)로 전송한다(S417). 한편, 실시 형태에 따라, 정보 제공부(170)는 상기 선별한 보호 트랜잭션을 가공처리하지 않고, 상기 선별한 보호 트랜잭션에 포함된 하나 이상의 사용자 데이터를 클라이언트(400)로 전송할 수도 있다.When each protection transaction is determined to be true or false, the
상술한 바와 같이, 블록체인에는 데이터를 저장할 때 개인정보가 아닌 임의의 일회용인 공개 데이터와 그에 대응하는 데이터를 저장하기 때문에 제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
도 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
이어서, 개인정보 관리부(140)는, 개인정보의 보유 기간이 만료가 예정되는 사용자에게 메일이나 문자를 통한 공지를 수행하고(S503), 해당 사용자로부터의 응답 메시지를 수신한다.Subsequently, the
다음으로, 개인정보 관리부(140)는 사용자가 보유 기간 연장에 동의하는 경우, 해당 사용자의 개인정보를 데이터베이스(200)에 지속적으로 저장한다(S505, S507). 이때, 개인정보 관리부(140)는 개인정보의 보유 기간 연장에 동의하는 사용자에 대해서 새로운 그룹 식별정보를 할당하고, 이 할당한 그룹 식별정보를 데이터베이스(200)에 저장할 수 있다. 이 경우, 사용자의 그룹 식별정보는 과거의 그룹 식별정보와 새로운 그룹 식별정보가 두 개일 수 있으며, 이에 따라 블록체인 연동부(150)는 블록체인에서 데이터를 조회할 때에, 복수의 그룹 식별정보 각각과 관련되는 보호 트랜잭션을 블록체인에서 획득할 수 있으며, 또는 데이터 검색 범위에 따라 과거의 그룹 식별정보 또는 현재의 그룹 식별정보와 관련된 보호 트랜잭션을 블록체인에서 추출할 수 있다. Next, if the user agrees to extend the retention period, the
한편, 개인정보 관리부(140)는 사용자가 보유 기간 연장에 동의하지 않은 경우, 해당 사용자의 개인정보를 데이터베이스(200)에서 삭제함으로써, 사용자의 개인정보를 폐기한다(S509). 이에 따라, 블록체인에는 사용자의 개인정보가 전혀 기록되지 않으며, 또한 데이터베이스(200)에서 사용자의 개인정보가 삭제됨에 따라 정확한 비밀 데이터를 생성하는 것이 불가능하게 되고, 이에 따라 블록체인에 저장된 데이터가 어느 사용자의 데이터인지 여부를 특정할 수 없게 된다. 또한, 사용자도 개인정보 관리 서버(100)의 개인키를 보유하지 않고 있기 때문에, 블록체인에 암호화되어 저장된 솔트를 복호화하지 못하고 블록체인에 저장된 데이터를 활용할 수 없게 된다. 즉, 기존에 저장된 영지식 증명을 위해 공개 데이터로서 저장된 블록체인의 데이터는 개인정보 관리 서버(100)의 개인키와 해당 고객의 개인정보 없이는 풀 수 없으므로 블록체인의 데이터는 그 누구도 정상적으로 이용할 수 없다.On the other hand, if the user does not agree to extend the retention period, the personal
본 명세서는 많은 특징을 포함하는 반면, 그러한 특징은 본 발명의 범위 또는 특허청구범위를 제한하는 것으로 해석되어서는 안 된다. 또한, 본 명세서에서 개별적인 실시예에서 설명된 특징들은 단일 실시예에서 결합되어 구현될 수 있다. 반대로, 본 명세서에서 단일 실시예에서 설명된 다양한 특징들은 개별적으로 다양한 실시예에서 구현되거나, 적절히 결합되어 구현될 수 있다.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.
상기 비밀 데이터를 생성하는 단계는,
상기 확인한 솔트를 개인키로 복호화하고, 상기 사용자의 개인정보를 획득하는 단계; 및
상기 복호화한 솔트와 상기 개인정보를 해시 연산하여 해시값을 산출하고, 이 해시값을 상기 비밀 데이터로서 설정하는 단계;를 포함하는 개인정보 보호 방법.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.
상기 선별하는 단계는,
상기 생성한 보호 트랜잭션별 비밀 데이터를 토대로 보호 트랜잭션별 공개 데이터를 생성하고, 이 생성한 공개 데이터와 보호 트랜잭션에 포함된 공개 데이터의 일치 여부를 비교하여, 각 보호 트랜잭션에 대한 영지식 증명을 수행하는 것을 특징으로 하는 개인정보 보호 방법.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.
상기 선별하는 단계 이후에,
상기 선별한 보호 트랜잭션에 포함된 사용자 데이터를 확인하여, 이 사용자 데이터를 클라이언트로 전송하는 단계;를 더 포함하는 개인정보 보호 방법.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.
상기 선별하는 단계 이후에,
상기 선별한 보호 트랜잭션에 포함된 사용자 데이터를 확인하고, 이 사용자 데이터를 가공 처리하여 클라이언트로 전송하는 단계;를 더 포함하는 개인정보 보호 방법.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;
상기 추출하는 단계는,
상기 사용자의 그룹 식별정보를 확인하는 단계; 및
상기 사용자의 그룹 식별정보와 관련된 복수의 보호 트랜잭션을 상기 블록체인에서 추출하는 단계;를 포함하는 개인정보 보호 방법.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.
상기 그룹 식별정보를 확인하는 단계는,
상기 사용자의 개인정보를 확인하고, 상기 개인정보와 대칭키를 해시 연산하여 상기 해시 연산한 해시값과 관련된 그룹 식별정보를 블록체인에서 추출하는 것을 특징으로 하는 개인정보 보호 방법.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.
상기 영지식 증명부는, 상기 솔트를 개인키로 복호화하고,
상기 비밀 데이터 생성부는, 상기 복호화한 솔트와 상기 개인정보를 해시 연산하여 해시값을 산출하고, 이 해시값을 상기 비밀 데이터로서 설정하는 것을 특징으로 하는 개인정보 관리 장치.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.
상기 영지식 증명부는,
상기 보호 트랜잭션별 비밀 데이터를 토대로 보호 트랜잭션별 공개 데이터를 생성하고, 이 생성한 공개 데이터와 보호 트랜잭션에 포함된 공개 데이터의 일치 여부를 비교하여, 각 보호 트랜잭션에 대한 영지식 증명을 수행하는 것을 특징으로 하는 개인정보 관리 장치.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.
상기 정보 제공부는,
상기 선별한 보호 트랜잭션에 포함된 사용자 데이터를 확인하여, 이 사용자 데이터를 토대로 클라이언트로 정보를 제공하는 것을 특징으로 하는 개인정보 관리 장치.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.
상기 블록체인 연동부는,
상기 사용자의 그룹 식별정보를 확인하고, 상기 사용자의 그룹 식별정보와 관련된 복수의 보호 트랜잭션을 상기 블록체인에서 추출하는 것을 특징으로 하는 개인정보 관리 장치.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.
사용자의 동의에 근거하여 상기 사용자의 개인정보를 데이터베이스에 저장하거나 삭제하는 개인정보 관리부;를 더 포함하는 개인정보 관리 장치.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.
상기 공개 데이터를 생성하는 단계는,
상기 사용자의 개인정보와 상기 솔트를 해시 연산하여, 이 해시 연산한 결과값을 이용하여 상기 공개 데이터를 생성하는 것을 특징으로 하는 개인정보 보호 방법.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.
상기 공개 데이터를 생성하는 단계는,
상기 해시 연산한 결과를 공개키 생성 알고리즘에 적용하여, 상기 공개 데이터를 생성하는 것을 특징으로 하는 개인정보 보호 방법.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.
상기 보호 트랜잭션을 생성하는 단계는,
상기 솔트 및 상기 공개 데이터를 개인키로 암호화하고, 상기 암호화된 솔트와 공개 데이터를 상기 보호 트랜잭션에 포함시키는 것을 특징으로 하는 개인정보 보호 방법.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.
상기 보호 트랜잭션을 생성하는 단계는,
상기 사용자에게 할당된 그룹 식별정보를 확인하고, 상기 그룹 식별정보를 상기 보호 트랜잭션에 포함시켜, 상기 보호 트랜잭션을 생성하는 것을 특징으로 하는 개인정보 보호 방법.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.
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)
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)
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)
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 |
-
2018
- 2018-08-24 KR KR1020180099373A patent/KR102289414B1/en active IP Right Grant
Patent Citations (3)
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)
Title |
---|
이찬혁, ‘블록체인을 활용한 IoT 데이터 보호 시스템 설계 및 구현’, 아주대학교대학원 지식정보공학과 석사학위논문, 2017.12.13.* * |
Cited By (2)
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 |