KR102656660B1 - Method and off-chain system for security data management using block chain - Google Patents

Method and off-chain system for security data management using block chain Download PDF

Info

Publication number
KR102656660B1
KR102656660B1 KR1020210188739A KR20210188739A KR102656660B1 KR 102656660 B1 KR102656660 B1 KR 102656660B1 KR 1020210188739 A KR1020210188739 A KR 1020210188739A KR 20210188739 A KR20210188739 A KR 20210188739A KR 102656660 B1 KR102656660 B1 KR 102656660B1
Authority
KR
South Korea
Prior art keywords
chain
data
chain block
item
security
Prior art date
Application number
KR1020210188739A
Other languages
Korean (ko)
Other versions
KR20230076699A (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 KR20230076699A publication Critical patent/KR20230076699A/en
Application granted granted Critical
Publication of KR102656660B1 publication Critical patent/KR102656660B1/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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

보안 데이터 관리 방법 및 그 시스템이 개시된다. 이 시스템은 클라이언트 단말로부터 수신한 제1 보안 데이터에 대한 제1 오프체인(Off-chain) 블록을 생성하는 단계, 상기 제1 보안 데이터에 대한 해시 연산을 통해 제1 해시값을 산출하고, 상기 제1 해시값을 상기 제1 오프체인 블록의 튜플데이터(TupleData) 항목에 기록하는 단계, 그리고 상기 제1 오프체인 블록보다 이전에 생성된 제2 오프체인 블록에 저장된 데이터들에 대한 해시 연산을 통해 산출된 제2 해시값을 상기 제1 오프체인 블록의 이전 튜플(PreviousTuple) 항목에 기록하는 단계를 포함함으로써, 상호 연결되는 블록체인 오프체인 구조를 통해 보안 데이터를 관리할 수 있다.A secure data management method and system are disclosed. This system includes the steps of generating a first off-chain block for first security data received from a client terminal, calculating a first hash value through a hash operation on the first security data, and 1 Recording a hash value in the TupleData item of the first off-chain block, and calculating through hash operation on data stored in the second off-chain block created before the first off-chain block. By including the step of recording the second hash value in the PreviousTuple item of the first off-chain block, security data can be managed through an interconnected blockchain off-chain structure.

Figure 112021150962998-pat00001
Figure 112021150962998-pat00001

Description

블록체인 기술을 이용한 보안 데이터 관리 방법 및 오프체인 시스템{METHOD AND OFF-CHAIN SYSTEM FOR SECURITY DATA MANAGEMENT USING BLOCK CHAIN}Security data management method and off-chain system using blockchain technology {METHOD AND OFF-CHAIN SYSTEM FOR SECURITY DATA MANAGEMENT USING BLOCK CHAIN}

본 개시는 블록체인 기술을 이용한 보안 데이터 관리 방법 및 오프체인 시스템에 관한 것이다.This disclosure relates to a secure data management method and off-chain system using blockchain technology.

블록 체인(block chain)에는 온체인(On-Chain) 방식과 오프체인(Off-Chain) 방식이 존재한다.There are two types of block chain: On-Chain and Off-Chain.

온체인(On-Chain)이란 블록체인 시스템 내부에 거래 내역(데이터)등을 기록하는 방식을 의미하며 온체인에 저장된 데이터는 모든 참여 노드가 공유하는 것을 의미한다.On-Chain refers to a method of recording transaction details (data) within the blockchain system, and data stored on-chain is shared by all participating nodes.

오프체인(Off-Chain)이란 블록체인 시스템과 관련되어 있지만, 블록체인 시스템 외부에 위치하여 동작하는 것으로, 오프체인에 저장된 데이터는 동일한 사법관할에 속한 참여 노드에게만 공유되며, 블록체인 네트워크 외부에서 트랜잭션(Transaction)이 기록된다는 뜻으로 트랜잭션은 거래 뿐만 아니라 여러 액션(Actions)이 포함되어 있는 것을 의미한다.Off-Chain is related to the blockchain system, but operates outside the blockchain system. Data stored in the off-chain is shared only with participating nodes belonging to the same jurisdiction, and transactions occur outside the blockchain network. This means that a transaction is recorded, meaning that it includes not only a transaction but also several actions.

이처럼, 블록 체인(block chain)의 온체인(on-chain)에는 기록하고자 하는 데이터를 저장할 수 있다. 다만, 온체인(on-chain)에는 개인정보 및 의료정보 등의 민감한 정보는 저장할 수 없다.In this way, the data you want to record can be stored on-chain in the block chain. However, sensitive information such as personal information and medical information cannot be stored on-chain.

개인정보호보호법 제21조 제1항에 따르면, "개인정보처리자는 보유기간의 경과, 개인정보의 처리 목적 달성 등 그 개인정보가 불필요하게 되었을 때에는 지체없이 그 개인정보를 파기해야 한다" 라고 명시하고 있다. 동법 제36조 제1항에도 "정보주체는 개인정보처리자에게 그 개인정보의 정정이나 삭제를 요구할 수 있다"고 규정하고 있다.According to Article 21, Paragraph 1 of the Personal Information Protection Act, “The personal information processor must destroy the personal information without delay when the personal information becomes unnecessary, such as when the retention period has passed or the purpose of processing personal information has been achieved.” there is. Article 36, Paragraph 1 of the same Act also stipulates that “the information subject may request the personal information processor to correct or delete the personal information.”

따라서, 블록 체인(block chain)은 저장된 데이터를 삭제할 수 없는 특성상 개인 정보/의료 정보를 저장할 수 없기 때문에 개인정보 및 의료정보 등의 민감한 정보는 오프체인(Off-chain)에서 저장 관리할 수 밖에 없다.Therefore, since block chain cannot store personal information/medical information due to the nature of the stored data not being deleted, sensitive information such as personal information and medical information has no choice but to be stored and managed off-chain. .

그러나, 온체인(On-chain)은 데이터의 무결성과 안정성이 검증되었지만, 오프체인(Off-chain)은 악의적 공격, 시스템 결함, 인적 오류 등의 사고로 인한 데이터의 위변조 취약점이 존재한다. 이에 검증된 온체인(On-chain)의 핵심 기술을 활용하여 오프체인(Off-chain)의 데이터 무결성과 안정성을 강화할 필요가 있다.However, although on-chain data integrity and stability have been verified, off-chain data is vulnerable to forgery and falsification due to accidents such as malicious attacks, system defects, and human errors. Accordingly, it is necessary to strengthen the data integrity and stability of off-chain by utilizing proven core technologies of on-chain.

본 개시는 개인 데이터, 의료 데이터 등과 같은 보안 데이터를 블록 체인(block chain)의 오프체인(Off-chain) 블록으로 생성하여 관리하고, 보안 데이터 간 상호 연결성을 부여하여 관리하는 방법 및 그 시스템을 제공하는 것이다.This disclosure provides a method and system for generating and managing secure data such as personal data, medical data, etc. as an off-chain block of a block chain, and managing the security data by providing interconnectivity between them. It is done.

한 특징에 따르면, 적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치가 보안 데이터를 관리하는 방법으로서, 클라이언트 단말로부터 수신한 제1 보안 데이터에 대한 제1 오프체인(Off-chain) 블록(Block)을 생성하는 단계, 상기 제1 보안 데이터에 대한 해시(Hash) 연산을 통해 제1 해시값을 산출하고 상기 제1 해시값을 상기 제1 오프체인 블록의 튜플데이터(TupleData) 항목에 기록하는 단계, 그리고 상기 제1 오프체인 블록보다 이전에 생성된 제2 오프체인 블록에 저장된 데이터들에 대한 해시 연산을 통해 제2 해시값을 산출하고 상기 제2 해시값을 상기 제1 오프체인 블록의 이전 튜플(PreviousTuple) 항목에 기록하는 단계를 포함한다.According to one feature, a method of managing security data by a computing device operating by at least one processor, generating a first off-chain block for first security data received from a client terminal. A step of calculating a first hash value through a hash operation on the first security data and recording the first hash value in the TupleData item of the first off-chain block, and A second hash value is calculated through a hash operation on the data stored in the second off-chain block created before the first off-chain block, and the second hash value is calculated as the previous tuple (PreviousTuple) of the first off-chain block. Includes the step of recording items.

상기 이전 튜플(PreviousTuple) 항목에 기록하는 단계는, 상기 제2 오프체인 블록의 튜플데이터 항목에 저장된 값 및 상기 제2 오프체인 블록의 이전 튜플 항목에 저장된 값을 조합하고, 조합한 값에 대한 해시 연산을 통해 상기 제2 해시값을 산출하고, 상기 제2 오프체인 블록의 이전 튜플 항목에는, 상기 제2 오프체인 블록보다 이전에 생성된 제3 오프체인 블록에 저장된 데이터들에 대한 해시 연산을 통해 산출된 제3 해시값이 기록되어 있을 수 있다.The step of recording in the previous tuple item is to combine the value stored in the tuple data item of the second off-chain block and the value stored in the previous tuple item of the second off-chain block, and create a hash for the combined value. The second hash value is calculated through an operation, and the previous tuple item of the second off-chain block is entered through a hash operation on the data stored in the third off-chain block created before the second off-chain block. The calculated third hash value may be recorded.

상기 이전 튜플(PreviousTuple) 항목에 기록하는 단계는, 상기 조합한 값에 상기 제2 오프체인 블록의 튜플 고유번호를 추가하여 상기 해시 연산을 수행하고, 상기 튜플 고유번호는, 오프체인 블록에 고유하게 할당되는 식별자일 수 있다.In the step of recording in the PreviousTuple item, the hash operation is performed by adding the tuple unique number of the second off-chain block to the combined value, and the tuple unique number is unique to the off-chain block. It may be an assigned identifier.

상기 제1 오프체인 블록 및 상기 제2 오프체인 블록은, 오프체인 블록에 고유하게 할당되는 식별자인 튜플 고유번호, 보안 데이터에 고유하게 할당되는 식별자인 보안 고유번호, 사용자 단말로부터 수신한 보안 데이터를 관리하는 보안 데이터 관리 저장소에 보안 데이터의 존재 유무에 따른 설정값이 기록되는 Division 항목, 상기 튜플데이터 항목, 그리고 상기 이전 튜플 항목을 포함할 수 있다.The first off-chain block and the second off-chain block include a tuple unique number, which is an identifier uniquely assigned to the off-chain block, a security unique number, which is an identifier uniquely assigned to security data, and security data received from the user terminal. The managed security data management storage may include a Division item in which settings according to the presence or absence of security data are recorded, the tuple data item, and the previous tuple item.

상기 이전 튜플(PreviousTuple) 항목에 기록하는 단계 이후, 상기 제1 보안 데이터에 대한 보안 데이터 상호 연결을 나타내는 설정값을 포함하는 상태 정보를 생성하고, 상기 상태 정보를 저장하는 단계를 더 포함할 수 있다.After the step of recording in the PreviousTuple item, the step of generating state information including a setting value indicating a secure data interconnection for the first secure data and storing the state information may be further included. .

상기 생성하는 단계 이전에, 클라이언트 단말로부터 제1 보안 데이터를 수신하는 단계, 그리고 상기 제1 보안 데이터에 보안 고유번호를 할당하는 단계를 더 포함하고, 상기 보안 고유번호는, 상기 제1 오프체인 블록에 포함되고, 상기 제1 보안 데이터에 대한 상태 정보를 식별하는데 사용될 수 있다.Before the generating step, it further includes receiving first security data from a client terminal, and assigning a security identification number to the first security data, wherein the security identification number is the first off-chain block. It is included in and can be used to identify status information about the first security data.

상기 할당하는 단계 이후, 상기 보안 고유번호를 식별자로 사용하는 상기 제1 보안 데이터에 대한 상태 정보를 생성하는 단계를 더 포함하고, 상기 상태 정보는, 상기 제1 보안 데이터의 등록, 수정, 삭제를 포함하는 상태 변화, 그리고오프체인 블록 간의 상호 연결 상태를 나타내는 설정값을 포함할 수 있다.After the allocating step, it further includes the step of generating status information for the first secure data using the security identification number as an identifier, wherein the status information is used to register, modify, and delete the first secure data. It can include state changes, and settings indicating the interconnection state between off-chain blocks.

상기 튜플데이터(TupleData) 항목에 기록하는 단계 이후, 상기 제1 보안 데이터에 대하여 연산한 해시값을 상기 제1 오프체인 블록의 튜플데이터(TupleData) 항목에 기록된 해시값과 비교하여 일치 여부를 판단하는 무결성 검증을 수행하는 단계를 더 포함할 수 있다.After the step of recording in the TupleData item, the hash value calculated for the first security data is compared with the hash value recorded in the TupleData item of the first off-chain block to determine whether they match. The step of performing integrity verification may further be included.

상기 이전 튜플(PreviousTuple) 항목에 기록하는 단계 이후, 상기 제2 오프체인 블록의 튜플데이터(TupleData) 항목에 기록된 값, 그리고 상기 제2 오프체인 블록의 이전 튜플(PreviousTuple) 항목에 기록된 값에 대한 해시값을 연산하는 단계, 그리고 연산한 해시값을 상기 제1 오프체인 블록의 이전 튜플(PreviousTuple) 항목에 기록된 해시값과 비교하여 일치 여부를 판단하는 무결성 검증을 수행하는 단계를 더 포함할 수 있다.After the step of recording in the PreviousTuple item, the value recorded in the TupleData item of the second off-chain block, and the value recorded in the PreviousTuple item of the second off-chain block It may further include calculating a hash value for the hash value, and performing integrity verification to determine whether there is a match by comparing the calculated hash value with the hash value recorded in the previous tuple item of the first off-chain block. You can.

다른 특징에 따르면, 보안 데이터를 관리하는 블록 체인(block chain) 오프체인(Off-chain) 시스템으로서, 클라이언트 단말로부터 오프체인 관리 대상인 제1 보안 데이터를 수신하는 오프체인 데이터 저장 관리부, 상기 제1 보안 데이터에 대한 제1 오프체인 블록을 생성하고, 제1 오프체인 블록을 상기 제1 보안 데이터 이전에 수신된 제2 보안 데이터의 제2 오프체인 블록과 연결시키는 오프체인 데이터 연결 관리부, 그리고 상기 오프체인 데이터 저장 관리부가 수신하는 보안 데이터의 상태 정보 및 오프체인 블록들 간의 연결 상태를 관리하는 오프체인 데이터 상태 관리부를 포함한다.According to another feature, it is a block chain off-chain system that manages security data, including an off-chain data storage management unit that receives first security data subject to off-chain management from a client terminal, and the first security An off-chain data connection management unit that generates a first off-chain block for data and connects the first off-chain block with a second off-chain block of second secure data received before the first secure data, and the off-chain It includes an off-chain data state management unit that manages the status information of the security data received by the data storage management unit and the connection status between off-chain blocks.

상기 오프체인 데이터 연결 관리부는, 상기 제1 보안 데이터에 대한 제1 오프체인(Off-chain) 블록(Block)을 생성하고, 상기 제1 보안 데이터에 대한 해시(Hash) 연산을 통해 산출한 제1 해시값을 상기 제1 오프체인 블록의 튜플데이터(TupleData) 항목에 기록하고, 상기 제1 오프체인 블록보다 이전에 생성된 제2 오프체인 블록으로부터 추출한 이전 데이터들에 대한 해시 연산을 통해 산출한 제2 해시값을 상기 제1 오프체인 블록의 이전 튜플(PreviousTuple) 항목에 기록하며, 상기 제2 해시값은, 상기 제2 오프체인 블록의 튜플데이터(TupleData) 항목에 기록된 해시값, 그리고 상기 제2 오프체인 블록의 이전 튜플(PreviousTuple) 항목에 기록된 해시값을 토대로 생성될 수 있다.The off-chain data connection management unit generates a first off-chain block for the first security data, and generates a first off-chain block calculated through a hash operation for the first security data. The hash value is recorded in the TupleData item of the first off-chain block, and the hash value is calculated through hash operation on previous data extracted from the second off-chain block created before the first off-chain block. 2 The hash value is recorded in the PreviousTuple item of the first off-chain block, and the second hash value is the hash value recorded in the TupleData item of the second off-chain block, and the first 2 It can be generated based on the hash value recorded in the previous tuple item of the off-chain block.

상기 오프체인 데이터 상태 관리부는, 상기 제1 오프체인 블록의 이전 튜플 항목의 기록을 확인한 후, 상기 제1보안 데이터에 대한 오프체인 블록간 상호 연결을 나타내는 설정값을 포함하는 상태 정보를 생성할 수 있다.The off-chain data state management unit can generate state information including a setting value indicating the interconnection between off-chain blocks for the first security data after checking the record of the previous tuple item of the first off-chain block. there is.

상기 블록체인 오프체인 시스템은, 상기 제1 보안 데이터에 대하여 연산한 해시값을 상기 제1 오프체인 블록의 튜플데이터(TupleData) 항목에 기록된 해시값과 비교하여 일치 여부를 판단하는 무결성 검증과, 상기 제2 오프체인 블록의 튜플데이터(TupleData) 항목에 기록된 값, 그리고 상기 제2 오프체인 블록의 이전 튜플(PreviousTuple) 항목에 기록된 값에 대하여 연산한 해시값을 상기 제1 오프체인 블록의 이전 튜플(PreviousTuple) 항목에 기록된 해시값과 비교하여 일치 여부를 판단하는 무결성 검증을 수행하는 오프체인 데이터 검증부를 더 포함할 수 있다.The blockchain off-chain system includes integrity verification that compares the hash value calculated for the first security data with the hash value recorded in the TupleData item of the first off-chain block to determine whether there is a match, The hash value calculated for the value recorded in the TupleData item of the second off-chain block and the value recorded in the PreviousTuple item of the second off-chain block is stored in the first off-chain block. It may further include an off-chain data verification unit that performs integrity verification by comparing the hash value recorded in the previous tuple item to determine whether it matches.

실시예에 따르면, 블록 체인(block chain)의 온체인(On-chain)에 기록할 수 없는 민감한 정보, 즉, 개인 데이터, 의료 데이터 등과 같은 보안 데이터를 오프체인(Off-chain) 블록을 생성하여 저장 및 관리하고, 보안 데이터들간 상호 연결성을 부여하여 데이터 무결성을 보장 및 안정성을 높일 수 있다.According to the embodiment, sensitive information that cannot be recorded on-chain of the block chain, that is, secure data such as personal data and medical data, is created by creating an off-chain block. By storing and managing security data and providing interconnectivity between secure data, data integrity can be guaranteed and stability increased.

도 1은 실시예에 따른 보안 데이터 관리 시스템을 개략적으로 도시한 도면이다.
도 2는 실시예에 따른 보안 데이터 관리를 위한 블록체인 오프체인 시스템의 구성을 나타낸 블록도이다.
도 3은 실시예에 따른 보안 데이터를 오프체인 블록에 기록하는 내용을 설명한다.
도 4는 실시예에 따른 오프체인 블록간 상호 연결 구조를 설명한다.
도 5는 실시예에 따른 보안 데이터의 정합성 검증 동작을 설명한다.
도 6은 실시예에 따른 보안 데이터 관리 방법을 설명하는 흐름도이다.
도 7은 실시예에 따른 오프체인 데이터 연결 관리부의 동작을 설명하는 순서도이다.
도 8은 실시예에 따른 오프체인 데이터 상태 관리부의 동작을 설명하는 순서도이다.
도 9는 한 실시예에 따른 오프체인 데이터 검증부의 동작을 설명하는 순서도이다.
도 10은 다른 실시예에 따른 오프체인 데이터 검증부의 동작을 설명하는 순서도이다.
도 11은 한 실시예에 따른 컴퓨팅 장치의 구성도이다
1 is a diagram schematically showing a security data management system according to an embodiment.
Figure 2 is a block diagram showing the configuration of a blockchain off-chain system for security data management according to an embodiment.
Figure 3 explains recording security data in an off-chain block according to an embodiment.
Figure 4 explains the interconnection structure between off-chain blocks according to an embodiment.
Figure 5 explains the consistency verification operation of security data according to an embodiment.
Figure 6 is a flowchart explaining a security data management method according to an embodiment.
Figure 7 is a flowchart explaining the operation of the off-chain data connection management unit according to an embodiment.
Figure 8 is a flowchart explaining the operation of the off-chain data state management unit according to an embodiment.
Figure 9 is a flowchart explaining the operation of the off-chain data verification unit according to one embodiment.
Figure 10 is a flowchart explaining the operation of the off-chain data verification unit according to another embodiment.
11 is a configuration diagram of a computing device according to one embodiment.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Below, with reference to the attached drawings, embodiments of the present invention will be described in detail so that those skilled in the art can easily implement the present invention. However, the present invention may be implemented in various different forms and is not limited to the embodiments described herein. In order to clearly explain the present invention in the drawings, parts not related to the description are omitted, and similar parts are given similar reference numerals throughout the specification.

명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part is said to “include” a certain element, this means that it may further include other elements rather than excluding other elements, unless specifically stated to the contrary.

또한, 명세서에 기재된 "…부", "…기", "…모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.In addition, terms such as “…unit”, “…unit”, and “…module” used in the specification refer to a unit that processes at least one function or operation, which may be implemented through hardware or software or a combination of hardware and software. You can.

본 발명에서 설명하는 장치들은 적어도 하나의 프로세서, 메모리 장치, 통신 장치 등을 포함하는 하드웨어로 구성되고, 지정된 장소에 하드웨어와 결합되어 실행되는 프로그램이 저장된다. 하드웨어는 본 발명의 방법을 실행할 수 있는 구성과 성능을 가진다. 프로그램은 도면들을 참고로 설명한 본 발명의 동작 방법을 구현한 명령어(instructions)를 포함하고, 프로세서와 메모리 장치 등의 하드웨어와 결합하여 본 발명을 실행한다.The devices described in the present invention are composed of hardware including at least one processor, a memory device, a communication device, etc., and a program that is executed in conjunction with the hardware is stored in a designated location. The hardware has a configuration and performance capable of executing the method of the present invention. The program includes instructions that implement the operating method of the present invention described with reference to the drawings, and executes the present invention by combining it with hardware such as a processor and memory device.

본 명세서에서 "전송 또는 제공"은 직접적인 전송 또는 제공하는 것 뿐만 아니라 다른 장치를 통해 또는 우회 경로를 이용하여 간접적으로 전송 또는 제공도 포함할 수 있다.In this specification, “transmission or provision” may include not only direct transmission or provision, but also indirect transmission or provision through another device or by using a circuitous route.

본 명세서에서 단수로 기재된 표현은 "하나" 또는 "단일" 등의 명시적인 표현을 사용하지 않은 이상, 단수 또는 복수로 해석될 수 있다.In this specification, expressions described as singular may be interpreted as singular or plural, unless explicit expressions such as “one” or “single” are used.

본 명세서에서 도면에 관계없이 동일한 도면번호는 동일한 구성요소를 지칭하며, "및/또는" 은 언급된 구성 요소들의 각각 및 하나 이상의 모든 조합을 포함한다.In this specification, the same reference numbers refer to the same elements regardless of the drawings, and “and/or” includes each and all combinations of one or more of the mentioned elements.

본 명세서에서, 제1, 제2 등과 같이 서수를 포함하는 용어들은 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를들어, 본 개시의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.In this specification, terms including ordinal numbers, such as first, second, etc., may be used to describe various components, but the components are not limited by the terms. The above terms are used only for the purpose of distinguishing one component from another. For example, a first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component without departing from the scope of the present disclosure.

본 명세서에서 도면을 참고하여 설명한 흐름도에서, 동작 순서는 변경될 수 있고, 여러 동작들이 병합되거나, 어느 동작이 분할될 수 있고, 특정 동작은 수행되지 않을 수 있다.In the flowcharts described herein with reference to the drawings, the order of operations may be changed, several operations may be merged, certain operations may be divided, and certain operations may not be performed.

도 1은 실시예에 따른 보안 데이터 관리 시스템을 개략적으로 도시한 도면이다.1 is a diagram schematically showing a security data management system according to an embodiment.

도 1을 참고하면, 보안 데이터 관리 시스템은 블록체인 오프체인(BlockChain Off-Chain) 시스템(100), 클라이언트 단말(200), 서비스 서버(300) 및 블록체인 온체인(BlockChain On-Chain) 플랫폼(400)을 포함할 수 있다.Referring to Figure 1, the secure data management system includes a BlockChain Off-Chain system 100, a client terminal 200, a service server 300, and a BlockChain On-Chain platform ( 400).

보안 데이터 관리 시스템은 오프체인과 온체인 혼합방식으로 블록체인의 보안성을 강화한다.The secure data management system strengthens the security of blockchain through a hybrid off-chain and on-chain method.

블록체인 오프체인 시스템(100)은 데이터 무결성과 안정성이 검증된 블록체인의 핵심기술을 활용하여 오프체인에 보안 데이터를 저장하고, 보안 데이터들을 상호 연결하여 관리함으로써, 데이터 무결성 보장 및 안정성을 강화한다.The blockchain off-chain system (100) utilizes the core technology of blockchain, which has proven data integrity and stability, to store secure data in the off-chain and manage the secure data by interconnecting them, thereby ensuring data integrity and strengthening stability. .

여기서, 보안 데이터는 온체인에 저장할 수 없고, 오프체인에 저장해야 하는 개인 정보, 의료 정보, 민감 정보 등을 의미하며, 이들을 통칭하여 보안 데이터로 호칭하기로 한다.Here, security data refers to personal information, medical information, sensitive information, etc. that cannot be stored on-chain and must be stored off-chain, and these are collectively referred to as security data.

블록체인 오프체인 시스템(100)은 오프체인에 저장되는 보안 데이터의 보안을 강화하기 위해 보안 데이터를 관리하고 보안 데이터간 상호연결을 관리한다. 블록체인 오프체인 시스템(100)은 보안 데이터를 해시(Hash)화하여 관리한다. 블록체인 오프체인 시스템(100)은 데이터의 연속성이 유지되도록 정합성을 검증한다.The blockchain off-chain system 100 manages security data and manages interconnection between security data to strengthen the security of security data stored off-chain. The blockchain off-chain system 100 manages security data by hashing it. The blockchain off-chain system 100 verifies consistency so that data continuity is maintained.

한 실시예에 따르면, 블록체인 오프체인 시스템(100)은 데이터베이스 관리 시스템(Relational DataBase Management System, RDBMS)일 수 있다.According to one embodiment, the blockchain off-chain system 100 may be a database management system (Relational DataBase Management System, RDBMS).

클라이언트 단말(200)은 서비스 서버(300)로 서비스 데이터를 전송하여 서비스 데이터의 저장을 요청할 수 있다.The client terminal 200 may transmit service data to the service server 300 and request storage of the service data.

서비스 서버(300)는 클라이언트 단말(200)로부터 수신한 서비스 데이터가 보안 데이터이면, 블록체인 오프체인 시스템(100)으로 보안 데이터를 전달하여 저장을 요청할 수 있다.If the service data received from the client terminal 200 is secure data, the service server 300 may transmit the secure data to the blockchain off-chain system 100 and request storage.

서비스 서버(300)는 클라이언트 단말(200)로부터 수신한 서비스 데이터가 보안 데이터가 아니라면, 블록체인 온체인 플랫폼(400)으로 보안 데이터를 전달하여 저장을 요청할 수 있다.If the service data received from the client terminal 200 is not secure data, the service server 300 may transmit the secure data to the blockchain on-chain platform 400 and request storage.

블록체인 온체인 플랫폼(400)은 복수의 블록체인 노드가 참여하는 상호 합의(또는, 분산 합의)의 과정을 통해 서비스 데이터를 온체인 데이터로 기록한다.The blockchain on-chain platform 400 records service data as on-chain data through a process of mutual agreement (or distributed agreement) in which multiple blockchain nodes participate.

블록체인 온체인 플랫폼(400)은 이미 알려진 블록체인 네트워크의 구성에 해당하므로, 자세한 설명은 생략한다.Since the blockchain on-chain platform 400 corresponds to the configuration of an already known blockchain network, detailed description is omitted.

이때, 보안 데이터는 온체인에 기록/관리할 수 없는 오프체인 대상 데이터로서, 예를들어, 의료 정보, 개인 정보, 민감 정보 등을 말한다.At this time, security data refers to off-chain target data that cannot be recorded/managed on-chain, for example, medical information, personal information, sensitive information, etc.

클라이언트 단말(200)과 서비스 서버(300)는 상호 접속되어, 보안 데이터의 등록, 변경, 삭제와 같은 처리를 수행할 수 있다. 예컨대, 클라이언트 단말(200)은 의료 기관 담당자 단말이고, 서비스 서버(300)는 의료 기관 서버일 수 있다. 이때, 보안 데이터는 의료 정보로서, 의료 기관 담당자가 환자의 의료 정보를 클라이언트 단말(200)을 통해 입력하면, 서비스 서버(300)로 전달될 수 있다.The client terminal 200 and the service server 300 are interconnected and can perform processing such as registration, change, and deletion of security data. For example, the client terminal 200 may be a medical institution staff terminal, and the service server 300 may be a medical institution server. At this time, the security data is medical information, and when a medical institution representative inputs the patient's medical information through the client terminal 200, it can be transmitted to the service server 300.

도 2는 실시예에 따른 보안 데이터 관리를 위한 블록체인 오프체인 시스템의 구성을 나타낸 블록도이고, 도 3은 실시예에 따른 보안 데이터를 오프체인 블록에 기록하는 내용을 설명하는 도면이고, 도 4는 실시예에 따른 오프체인 블록간 상호 연결 구조를 설명하는 도면이고, 도 5는 실시예에 따른 보안 데이터의 정합성 검증 동작을 설명한다.FIG. 2 is a block diagram showing the configuration of a blockchain off-chain system for security data management according to an embodiment, FIG. 3 is a diagram illustrating recording security data in an off-chain block according to an embodiment, and FIG. 4 is a diagram explaining the interconnection structure between off-chain blocks according to an embodiment, and Figure 5 explains the consistency verification operation of security data according to an embodiment.

도 2를 참고하면, 블록체인 오프체인 시스템(100)은 적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치이다. 블록체인 오프체인 시스템(100)은 본 개시에서 설명하는 동작을 위한 컴퓨터 프로그램을 탑재하고, 컴퓨터 프로그램은 프로세서에 의해 실행된다.Referring to FIG. 2, the blockchain off-chain system 100 is a computing device operated by at least one processor. The blockchain off-chain system 100 is equipped with a computer program for the operations described in this disclosure, and the computer program is executed by a processor.

블록체인 오프체인 시스템(100)은 오프체인 데이터 저장 관리부(110), 오프체인 데이터 상태 관리부(120), 오프체인 데이터 연결 관리부(130) 및 오프체인 데이터 검증부(140)를 포함한다. The blockchain off-chain system 100 includes an off-chain data storage management unit 110, an off-chain data state management unit 120, an off-chain data connection management unit 130, and an off-chain data verification unit 140.

오프체인 데이터 저장 관리부(110)는 클라이언트 단말(200)로부터 오프체인 관리 대상인 보안 데이터를 수신한다. 오프체인 데이터 저장 관리부(110)는 클라이언트 단말(200)로부터 저장 요청된 보안 데이터를 관리하기 위한 저장소를 구비할 수 있다.The off-chain data storage management unit 110 receives security data subject to off-chain management from the client terminal 200. The off-chain data storage management unit 110 may be provided with a storage for managing security data requested to be stored by the client terminal 200.

오프체인 데이터 저장 관리부(110)는 수신한 보안 데이터에 고유한 번호, 즉, 보안 고유번호를 할당하여 보안 데이터를 구분할 수 있도록 한다. 보안 고유번호는 오프체인 블록 간 상호 연결성을 부여할 때 참조키로 이용된다.The off-chain data storage management unit 110 assigns a unique number, that is, a security unique number, to the received security data to distinguish the security data. The security unique number is used as a reference key when providing interconnectivity between off-chain blocks.

오프체인 데이터 저장 관리부(110)는 보안 고유번호가 할당된 복수의 보안 정보로 구성된 보안 데이터를 오프체인 데이터 연결 관리부(130)로 전송하여 저장을 요청한다.The off-chain data storage management unit 110 transmits security data consisting of a plurality of security information to which a security unique number is assigned to the off-chain data connection management unit 130 and requests storage.

오프체인 데이터 저장 관리부(110)는 보안 고유번호를 오프체인 데이터 상태 관리부(120)에게 전달하여 공유한다.The off-chain data storage management unit 110 transmits the security unique number to the off-chain data state management unit 120 to share it.

오프체인 데이터 상태 관리부(120)는 보안 데이터의 상태 정보 및 오프체인 블록들 간의 연결 상태를 관리한다.The off-chain data state management unit 120 manages the state information of security data and the connection state between off-chain blocks.

오프체인 데이터 상태 관리부(120)는 오프체인 데이터 저장 관리부(110)가 공유하는 보안 고유번호로 식별되는 보안 데이터의 상태 정보를 생성하여 저장 및 관리한다. 오프체인 데이터 상태 관리부(120)는 보안 고유번호로 식별되는 상태 정보를 저장 및 관리하는 저장소를 구비할 수 있다.The off-chain data status management unit 120 generates, stores, and manages status information of secure data identified by a security unique number shared by the off-chain data storage management unit 110. The off-chain data state management unit 120 may be provided with a storage that stores and manages state information identified by a security unique number.

오프체인 데이터 상태 관리부(120)는 오프체인 데이터 저장 관리부(110) 및 오프체인 데이터 연결 관리부(130)와 연동하여 보안 데이터의 상태 변화 및 보안 데이터들간 연결 상태를 모니터링하고, 모니터링 결과에 따라 최신 상태 정보를 보안 데이터의 상태 정보에 반영한다.The off-chain data state management unit 120 monitors changes in the state of security data and the connection status between security data in conjunction with the off-chain data storage management unit 110 and the off-chain data connection management unit 130, and monitors the latest state according to the monitoring results. The information is reflected in the status information of the security data.

오프체인 데이터 상태 관리부(120)는 오프체인 데이터 연결 관리부(130)와 연동하여 실시간으로 보안 데이터의 오프체인 기록/연결 상태를 모니터링하고, 모니터링 결과에 따른 상태 정보를 생성할 수 있다.The off-chain data status management unit 120 can monitor the off-chain recording/connection status of security data in real time in conjunction with the off-chain data connection management unit 130 and generate status information according to the monitoring results.

보안 데이터의 상태 정보는 복수의 항목으로 구성되며, 복수의 항목은 보안 고유번호, BlockNo, Txid, State, Whether을 포함한다. The status information of security data consists of multiple items, and the multiple items include a security unique number, BlockNo, Txid, State, and Whether.

BlockNo은 블록체인 기록후 반환되는 블록체인 블록번호가 기록된다. BlockNo is the blockchain block number returned after blockchain recording.

Txid는 블록체인 기록후 반환되는 블록체인 트랜잭션이 기록된다.Txid records the blockchain transaction that is returned after recording on the blockchain.

BlockNo와 Txid에 기록되는 정보를 통해 보안 데이터가 아닌 블록체인 온체인 플랫폼(400)에 기록된 온체인 데이터에 대한 정보도 오프체인 데이터 상태 관리부(120)에서 관리할 수 있다. 즉, 오프체인 데이터 상태 관리부(120)는 블록체인 온체인 플랫폼(400)으로부터 비보안 데이터의 온체인 기록후 블록번호와 트랜잭션 해시를 전달받아 이를 각각 BlockNo와 Txid에 기록함으로써, 실제 블록체인에 기록된 데이터를 확인할 수 있다.Through the information recorded in BlockNo and Txid, information about on-chain data recorded in the blockchain on-chain platform 400, which is not security data, can also be managed by the off-chain data state management unit 120. In other words, the off-chain data state management unit 120 receives the block number and transaction hash after on-chain recording of non-secure data from the blockchain on-chain platform 400 and records them in BlockNo and Txid, respectively, thereby recording the actual data recorded in the blockchain. You can check the data.

State는 보안 데이터의 상태 변화가 기록된다. 상태 변화는 보안 데이터의 등록 상태를 나타내는 설정값(I, Insert), 보안 데이터의 수정 상태를 나타내는 설정값(U, Update), 보안 데이터의 삭제 상태를 나타내는 설정값(D, Delete)을 포함한다. 오프체인 데이터 상태 관리부(120)는 오프체인 데이터 저장 관리부(110)로부터 보안 고유번호로 식별되는 보안 데이터의 등록, 수정, 삭제 여부를 수신하고, 그에 따른 보안 데이터의 상태를 나타내는 설정값(I, D, U)을 State에 기록한다.State records changes in the state of security data. Status changes include a setting value (I, Insert) indicating the registration status of security data, a setting value (U, Update) indicating the modification status of security data, and a setting value (D, Delete) indicating the deletion status of security data. . The off-chain data status management unit 120 receives from the off-chain data storage management unit 110 whether to register, modify, or delete security data identified by a security unique number, and sets values (I, D, U) are recorded in State.

Whether는 보안 데이터간 상호 연결 여부를 나타내는 설정값이 기록된다. Whether는 오프체인 블록에 보안 데이터가 저장되어 정상적으로 연결되었을 경우, 정상 연결 상태를 나타내는 설정값(Y), 미연결 상태를 나타내는 설정값(N)이 기록된다. 오프체인 데이터 상태 관리부(120)는 오프체인 데이터 연결 관리부(130)로부터 각 보안 데이터의 오프체인 블록 간 연결 유무를 수신하고, 그에 따른 연결 상태를 나타내는 설정값(Y, N)을 Whether에 기록한다.Whether is a setting value that indicates whether or not security data is interconnected. Whether security data is stored in an off-chain block and when connected normally, a setting value (Y) indicating a normal connection state and a setting value (N) indicating a non-connected state are recorded. The off-chain data status management unit 120 receives the presence or absence of a connection between off-chain blocks of each security data from the off-chain data connection management unit 130, and records the setting values (Y, N) indicating the corresponding connection status in Whether. .

오프체인 데이터 상태 관리부(120)는 오프체인 데이터 연결 관리부(130)로부터 기록 대상인 보안 데이터의 오프체인 블록으로부터 이전 튜플(TuplePrevious) 항목의 기록을 확인한 후, 확인 내용에 따라 설정값(Y 또는 N)을 Whether에 기록할 수 있다. The off-chain data state management unit 120 checks the record of the previous tuple (TuplePrevious) item from the off-chain block of the security data to be recorded from the off-chain data connection management unit 130, and then sets the setting value (Y or N) according to the confirmation contents. can be recorded in Whether.

오프체인 데이터 연결 관리부(130)는 오프체인 데이터 저장 관리부(110)로부터 전달되는 보안 데이터에 대한 오프체인 블록을 생성한다. 오프체인 데이터 연결 관리부(130)는 상호 연결되는 구조의 오프체인 블록들을 저장 및 관리하는 저장소를 구비할 수 있다.The off-chain data connection management unit 130 creates an off-chain block for the secure data transmitted from the off-chain data storage management unit 110. The off-chain data connection management unit 130 may be provided with a storage that stores and manages off-chain blocks in an interconnected structure.

오프체인 데이터 연결 관리부(130)는 현재 요청된 보안 데이터에 대하여 생성한 제1 오프체인 블록(#1001)(1301)을 이전에 생성한 제2 오프체인 블록(#1002)(1302)과 상호 연결시킨다.The off-chain data connection management unit 130 interconnects the first off-chain block (#1001) (1301) generated for the currently requested security data with the previously generated second off-chain block (#1002) (1302). I order it.

각각의 오프체인 블록(1301, 1302, 1303)은 복수의 항목을 포함하고, 복수의 항목은 튜플(Tuple) 고유번호, 보안 고유번호, Division, 튜플 데이터(TupleData), 이전튜플(TuplePrevious)을 포함한다. Each off-chain block (1301, 1302, 1303) includes multiple items, and the multiple items include a tuple unique number, security unique number, Division, TupleData, and TuplePrevious. do.

튜플(Tuple) 고유번호는 보안 데이터 상호 연결시 부여되는 고유번호로서, 오프체인 블록의 식별자라 할 수 있다.Tuple unique number is a unique number given when interconnecting secure data, and can be considered an identifier of an off-chain block.

보안 고유번호는 오프체인 데이터 저장 관리부(110)로부터 전달된다.The security unique number is transmitted from the off-chain data storage management unit 110.

Division는 오프체인 데이터 저장 관리부(110)에 보안 데이터의 존재 유무에 따른 설정값(1, 0)이 기록된다. 오프체인 데이터 저장 관리부(110)에 보안 데이터가 존재하는 경우, Division는 존재를 나타내는 설정값(1)이 기록된다. 오프체인 데이터 저장 관리부(110)에 보안 데이터가 없으면, Division는 비존재를 의미하는 설정값(0)이 기록된다. 이때, 보안 데이터가 수정된 경우, Division는 이전 값은 존재하지 않는 데이터 상태를 의미하는 설정값(0)이 기록된다.In the Division, setting values (1, 0) according to the presence or absence of security data are recorded in the off-chain data storage management unit 110. If secure data exists in the off-chain data storage management unit 110, a setting value (1) indicating presence is recorded in the Division. If there is no security data in the off-chain data storage management unit 110, the Division is recorded with a setting value (0), meaning non-existence. At this time, when the security data is modified, the division is recorded with a setting value (0), which indicates a data state in which the previous value does not exist.

상태 변화(수정/삭제)가 발생한 보안 데이터는 가장 최신의 보안 데이터만 정합성 검증 대상이 된다. 상태 변화(수정/삭제) 전의 데이터는 오프체인에 존재하지 않기 때문에 데이터 검증이 불가능하기 때문이다. 상태 변화에 따른 오프체인(Off-chain)에 보안 데이터의 존재 여부를 구분하기 위해 Division 항목으로 구분을 하며 값이 '0'인 경우 보안 데이터가 존재하지 않은 상태를 말하며, 값이 '1'로 설정된 보안 데이터만 정합성 검증 대상이 된다.For security data that has changed status (edited/deleted), only the most recent security data is subject to consistency verification. This is because the data before the state change (edit/delete) does not exist off-chain, so data verification is impossible. In order to distinguish whether security data exists off-chain according to status changes, it is divided into division items. If the value is '0', it means that no security data exists, and if the value is '1', it means that the security data does not exist. Only set security data is subject to consistency verification.

튜플데이터(TupleData)는 보안 정보 테이블의 한 Row(튜플)의 보안 데이터에 대한 해시 연산을 통해 산출된 해시값이 기록된다. 예를들어, 보안 데이터는 의료 정보, 개인 정보, 그밖에 민감 정보 등을 포함할 수 있다.TupleData is a hash value calculated through a hash operation on the security data of one row (tuple) of the security information table. For example, secure data may include medical information, personal information, and other sensitive information.

이전튜플(TuplePrevious)은 보안 데이터간(또는 오프체인 블록간) 상호 연결을 나타내는 값이 기록된다. The previous tuple (TuplePrevious) records a value representing the interconnection between secure data (or between off-chain blocks).

해시는 단방향 암호화 알고리즘으로 복호화가 불가능하고, 제3자에게 누출되더라도 확인이 거의 불가능하지만, 오프체인(Off-chain)에서 보안성을 극대화하고자 도 3 및 도 4와 같이 해시 연산 동작이 이루어진다.Hash is a one-way encryption algorithm that cannot be decrypted and is almost impossible to confirm even if leaked to a third party. However, hash calculation operations are performed as shown in Figures 3 and 4 to maximize security off-chain.

도 3을 참조하면, 오프체인 데이터 연결 관리부(130)는 보안 고유번호, 튜플의 모든 보안 정보, 그리고 Salt값을 조합하고, 조합 데이터에 대한 암호화를 수행한다. 여기서, Salt값은 임의의 랜덤값을 의미한다.Referring to FIG. 3, the off-chain data connection management unit 130 combines the security identification number, all security information in the tuple, and the Salt value, and performs encryption on the combined data. Here, the Salt value means an arbitrary random value.

오프체인 데이터 연결 관리부(130)는 암호화 데이터에 대한 Key Stretching Hash 연산을 통해 해시값(=Key Stretching Hash(암호화(보안고유번호+보안정보-1+보안정보-2+...+Salt값)))을 산출한다. 여기서, Key Stretching Hash는 적어도 2번 이상의 해시 함수(예, SHA256) 연산을 포함할 수 있다.The off-chain data connection management unit 130 generates a hash value (=Key Stretching Hash (encryption (security identification number + security information - 1 + security information - 2 +... + Salt value)) through Key Stretching Hash operation on the encrypted data. )) is calculated. Here, Key Stretching Hash may include at least two hash function (e.g., SHA256) operations.

오프체인 데이터 연결 관리부(130)는 산출한 해시값을 기록 대상인 보안 데이터의 오프체인 블록(#1001)(1301)의 튜플데이터(TupleData)에 기록한다.The off-chain data connection management unit 130 records the calculated hash value in TupleData of the off-chain block (#1001) (1301) of the security data to be recorded.

도 4를 참조하면, 오프체인 데이터 연결 관리부(130)는 기록 대상인 보안 데이터의 오프체인 블록(#1001)(1301) 보다 이전에 생성된 이전 오프체인 블록(#1002)(1302)으로부터 튜플 고유번호, 튜플데이터(TupleData)에 기록된 값, 이전튜플(TuplePrevious)에 기록된 값을 추출한다. 오프체인 데이터 연결 관리부(130)는 이전 오프체인 블록(#1002)(1302)으로부터 추출한 값들과 Salt값을 조합하고, 조합 데이터에 암호화를 수행한다. 오프체인 데이터 연결 관리부(130)는 암호화 데이터에 대해 Key Stretching Hash 연산을 통해 해시값(=Key Stretching Hash(암호화(Tuple고유번호+TupleData+TuplePrevious+...+Salt값)))을 산출한다. 오프체인 데이터 연결 관리부(130)는 산출한 해시값을 보안 데이터의 오프체인 블록(#1001)(1301)의 이전튜플(TuplePrevious)에 기록한다. Referring to FIG. 4, the off-chain data connection management unit 130 collects a tuple unique number from the previous off-chain block (#1002) (1302) created before the off-chain block (#1001) (1301) of the security data to be recorded. , extracts the value recorded in TupleData and the value recorded in the previous tuple (TuplePrevious). The off-chain data connection management unit 130 combines the values extracted from the previous off-chain block (#1002) 1302 with the Salt value and performs encryption on the combined data. The off-chain data connection management unit 130 calculates a hash value (=Key Stretching Hash (encryption (Tuple unique number + TupleData + TuplePrevious +...+Salt value))) through Key Stretching Hash operation for the encrypted data. The off-chain data connection management unit 130 records the calculated hash value in the previous tuple (TuplePrevious) of the off-chain block (#1001) (1301) of the security data.

이전 오프체인 블록(#1002)(1302)의 이전튜플(TuplePrevious)에는 이전 오프체인 블록(#1002)(1302) 보다 이전에 생성된 오프체인 블록(#1003)(1303)으로부터 추출한 데이터들에 대한 해시값이 기록되어 있다. 즉, 오프체인 데이터 연결 관리부(130)는 오프체인 블록(#1003)(1303)으로부터 튜플 고유번호, 튜플데이터(TupleData)에 기록된 값, 이전튜플(TuplePrevious)에 기록된 값을 추출한다. 오프체인 데이터 연결 관리부(130)는 오프체인 블록(#1003)(1303)으로부터 추출한 값들과 Salt값을 조합하고, 조합 데이터에 암호화를 수행한다. TuplePrevious of the previous off-chain block (#1002) (1302) contains data extracted from the off-chain block (#1003) (1303) created before the previous off-chain block (#1002) (1302). The hash value is recorded. That is, the off-chain data connection management unit 130 extracts the tuple unique number, the value recorded in TupleData, and the value recorded in TuplePrevious from the off-chain block (#1003) 1303. The off-chain data connection management unit 130 combines the values extracted from the off-chain block (#1003) 1303 with the Salt value and performs encryption on the combined data.

오프체인 데이터 연결 관리부(130)는 암호화 데이터에 대해 Key Stretching Hash 연산을 통해 해시값(=Key Stretching Hash(암호화(Tuple고유번호+TupleData+TuplePrevious+...+Salt값)))을 산출한다. 오프체인 데이터 연결 관리부(130)는 산출한 해시값을 보안 데이터의 오프체인 블록(#1002)(1302)의 이전튜플(TuplePrevious)에 기록한다.The off-chain data connection management unit 130 calculates a hash value (=Key Stretching Hash (encryption (Tuple unique number + TupleData + TuplePrevious +...+Salt value))) through Key Stretching Hash operation for the encrypted data. The off-chain data connection management unit 130 records the calculated hash value in the previous tuple (TuplePrevious) of the off-chain block (#1002) (1302) of the security data.

이와 같이, 이전튜플(TuplePrevious)에는 이전 오프체인 블록의 데이터가 기록됨으로써, 오프체인 블록들(1301, 1302, 1303) 간에 상호 연결되는 구조가 형성된다. 따라서, 온체인(On-chain)에서 제한적으로 저장하지 못한 민감한 정보까지 오프-체인(Off-chain)내에 모두 해시(Hash)화하여 저장함으로써, 보안 데이터의 무결성을 보장하고 정합성 검증을 통해 안정성을 높일 수 있다.In this way, the data of the previous off-chain block is recorded in the previous tuple, thereby forming a structure in which the off-chain blocks 1301, 1302, and 1303 are interconnected. Therefore, by hashing and storing all sensitive information that cannot be stored on-chain in an off-chain manner, the integrity of security data is guaranteed and stability is ensured through consistency verification. It can be raised.

오프체인 블록(1301, 1302, 1303)의 튜플데이터(TupleData)와 이전튜플(TuplePrevious)에는 클라이언트 단말(200)로부터 저장이 요청된 모든 보안 데이터가 해시(Hash)화 되어 기록되어 있다.All security data requested to be stored from the client terminal 200 are hashed and recorded in the tupleData and TuplePrevious of the off-chain blocks 1301, 1302, and 1303.

튜플데이터(TupleData)와 이전튜플(TuplePrevious)는 보안 데이터의 무결성을 보장하고, 정합성 검증을 통해 보안 데이터의 안정성을 높이는 용도로 이용된다. 오프체인 데이터 검증부(140)는 튜플데이터(TupleData)에 기록된 값, 이전튜플(TuplePrevious)에 기록된 값에 대한 정합성 검증을 수행한다.TupleData and TuplePrevious are used to ensure the integrity of security data and increase the stability of security data through consistency verification. The off-chain data verification unit 140 performs consistency verification on the value recorded in the tuple data (TupleData) and the value recorded in the previous tuple (TuplePrevious).

오프체인 데이터 검증부(140)는 현재 요청된 보안 데이터에 대하여 연산한 해시값을 현재 오프체인 블록(#1001)(1301)의 튜플데이터(TupleData)에 기록된 해시값과 비교하여 일치 여부를 판단하는 정합성 검증을 수행한다.The off-chain data verification unit 140 compares the hash value calculated for the currently requested security data with the hash value recorded in the tuple data of the current off-chain block (#1001) (1301) to determine whether there is a match. Perform consistency verification.

오프체인 데이터 검증부(140)는 이전 오프체인 블록(#1002)(1302)으로 추출한 튜플 고유번호, 튜플데이터(TupleData)에 기록된 값, 이전튜플(PreviousTuple)에 기록된 값을 조합 및 암호화하여 해시값을 산출한다. 오프체인 데이터 검증부(140)는 산출한 해시값을 현재 오프체인 블록(#1001)(1301)의 이전 튜플(PreviousTuple)에 기록된 해시값과 비교하여 일치 여부를 판단하는 정합성 검증을 수행한다. The off-chain data verification unit 140 combines and encrypts the tuple unique number extracted from the previous off-chain block (#1002) 1302, the value recorded in TupleData, and the value recorded in PreviousTuple. Calculate the hash value. The off-chain data verification unit 140 compares the calculated hash value with the hash value recorded in the previous tuple of the current off-chain block (#1001) 1301 and performs consistency verification to determine whether there is a match.

오프체인 데이터 검증부(140)는 보안 고유번호 또는 튜플 고유번호로 식별되는 보안 데이터의 정합성 검증 결과를 저장 및 관리하기 위한 저장소를 구비할 수 있다.The off-chain data verification unit 140 may be provided with a storage for storing and managing the consistency verification results of security data identified by a security unique number or a tuple unique number.

도 6은 실시예에 따른 보안 데이터 관리 방법을 설명하는 흐름도로서, 도 1 ~ 도 5에서 설명한 구성 요소와 연계하여 설명한다.Figure 6 is a flowchart explaining a security data management method according to an embodiment, and is explained in connection with the components described in Figures 1 to 5.

도 6을 참고하면, 오프체인 데이터 저장 관리부(110)는 클라이언트 단말(200)로부터 현재 시점의 보안 데이터, 즉, 제1 보안 데이터를 수신한다(S101).Referring to FIG. 6, the off-chain data storage management unit 110 receives current security data, that is, first security data, from the client terminal 200 (S101).

오프체인 데이터 저장 관리부(110)는 제1 보안 데이터에 보안 고유번호를 할당한다(S102). The off-chain data storage management unit 110 assigns a security unique number to the first security data (S102).

오프체인 데이터 저장 관리부(110)는 S102에서 할당한 보안 고유번호를 오프체인 데이터 상태 관리부(120)에 공유한다(S103).The off-chain data storage management unit 110 shares the security unique number assigned in S102 with the off-chain data state management unit 120 (S103).

오프체인 데이터 저장 관리부(110)는 오프체인 데이터 연결 관리부(130)에게 보안 고유번호 및 제1 보안 데이터를 전달하여 데이터 기록을 요청한다(S104).The off-chain data storage management unit 110 transmits the security identification number and the first security data to the off-chain data connection management unit 130 to request data recording (S104).

오프체인 데이터 저장 관리부(110)는 S104에서 요청된 제1 보안 데이터에 대한 오프체인 블록을 생성한다(S105).The off-chain data storage management unit 110 creates an off-chain block for the first security data requested in S104 (S105).

오프체인 데이터 저장 관리부(110)는 데이터 연결 관리 동작, 즉, 도 3 및 도 4에서 설명한 동작을 수행한다(S106).The off-chain data storage management unit 110 performs data connection management operations, that is, the operations described in FIGS. 3 and 4 (S106).

오프체인 데이터 저장 관리부(110)는 오프체인 데이터 상태 관리부(120)와 데이터 연결 관리 상태 정보를 공유한다(S107). S107 과정에서 제1 보안 데이터에 대한 상태 정보의 Whether값이 설정될 수 있다.The off-chain data storage management unit 110 shares data connection management status information with the off-chain data state management unit 120 (S107). In process S107, the Whether value of the status information for the first security data may be set.

오프체인 데이터 저장 관리부(110)는 제1 보안 데이터에 대한 상태 정보를 생성 및 저장한다(S108). S108은 S103 이후 수행될 수도 있고, S107 이후 수행될 수도 있으며, 특정 단계 이후 동작으로 제한받지는 않는다.The off-chain data storage management unit 110 generates and stores status information about the first security data (S108). S108 may be performed after S103 or after S107, and is not limited to operation after a specific step.

오프체인 데이터 저장 관리부(110)는 오프체인 데이터 저장 관리부(110)로부터 제1 보안 데이터에 대한 변경, 삭제와 같은 업데이트가 확인(S109)되면, 오프체인 데이터 연결 관리부(130)와 연동하여 업데이트된 데이터에 대한 연결 관리 동작을 수행하고, 상태 정보에 반영한다(S110).When an update such as change or deletion of the first security data is confirmed by the off-chain data storage management unit 110 (S109), the off-chain data storage management unit 110 works in conjunction with the off-chain data connection management unit 130 to update the first security data. Connection management operations for data are performed and reflected in status information (S110).

도 7은 실시예에 따른 오프체인 데이터 연결 관리부의 동작을 설명하는 순서도로서, 도 1 ~ 도 5에서 설명한 구성 요소와 연계하여 설명한다.Figure 7 is a flowchart explaining the operation of the off-chain data connection management unit according to the embodiment, and is explained in connection with the components described in Figures 1 to 5.

이때, 도 7은 도 6의 S104 이후에 수행될 수 있다. At this time, FIG. 7 may be performed after S104 of FIG. 6.

도 7을 참고하면, 오프체인 데이터 연결 관리부(130)는 클라이언트 단말(200)로부터 수신한 제1 보안 데이터에 대한 제1 오프체인(Off-chain) 블록(Block)을 생성한다(S201).Referring to FIG. 7, the off-chain data connection management unit 130 generates a first off-chain block for the first security data received from the client terminal 200 (S201).

오프체인 데이터 연결 관리부(130)는 제1 보안 데이터의 보안 고유번호, 모든 보안 정보, 그리고 Salt값을 조합하고, 조합 데이터에 대한 암호화를 수행한다(S202).The off-chain data connection management unit 130 combines the security identification number of the first security data, all security information, and Salt value, and performs encryption on the combined data (S202).

오프체인 데이터 연결 관리부(130)는 S202의 암호화 데이터에 대한 해시 연산을 수행하고(S203), 해시 연산값을 제1 오프체인 블록의 튜플데이터(TupleData) 항목에 기록한다(S204).The off-chain data connection management unit 130 performs a hash operation on the encrypted data in S202 (S203) and records the hash operation value in the TupleData item of the first off-chain block (S204).

오프체인 데이터 연결 관리부(130)는 제1 오프체인 블록보다 이전에 생성된 제2 오프체인 블록에 저장된 데이터들, 즉, 튜플 고유번호, 튜플데이터 항목의 값, 이전튜플 항목의 값들 및 Salt값을 조합하고, 조합 데이터에 대한 암호화 후 해시 연산을 수행한다(S205).The off-chain data connection management unit 130 stores data stored in the second off-chain block created before the first off-chain block, that is, the tuple unique number, the value of the tuple data item, the values of the previous tuple item, and the Salt value. Combine, encrypt the combined data, and then perform a hash operation (S205).

오프체인 데이터 연결 관리부(130)는 S205에서 연산된 해시값을 제1 오프체인 블록의 이전튜플 항목에 기록한다(S206).The off-chain data connection management unit 130 records the hash value calculated in S205 in the previous tuple item of the first off-chain block (S206).

도 8은 실시예에 따른 오프체인 데이터 상태 관리부의 동작을 설명하는 순서도로서, 도 1 ~ 도 5에서 설명한 구성 요소와 연계하여 설명한다.Figure 8 is a flowchart explaining the operation of the off-chain data state management unit according to the embodiment, and is explained in connection with the components described in Figures 1 to 5.

이때, 도 8은 도 6에서 S108 동작 및/또는 S110의 상태 정보 적용을 설명한다.At this time, FIG. 8 explains the application of state information in operation S108 and/or S110 in FIG. 6.

도 8을 참고하면, 오프체인 데이터 상태 관리부(120)는 도 6의 S102에서 제1 보안 데이터에 할당된 보안 고유번호로 식별되는 상태 정보를 생성한다(S301).Referring to FIG. 8, the off-chain data state management unit 120 generates state information identified by the security unique number assigned to the first security data in S102 of FIG. 6 (S301).

오프체인 데이터 상태 관리부(120)는 오프체인 데이터 연결 관리부(130)로부터 확인된 제1 보안 데이터에 대한 제1 오프체인 블록의 데이터 연결 동작 후 오프체인 블록의 연결을 나타내는 설정값을 상태 정보에 기록한다(S302).The off-chain data status management unit 120 records a setting value indicating the connection of the off-chain block in the status information after operating the data connection of the first off-chain block to the first security data confirmed by the off-chain data connection management unit 130. Do it (S302).

도 9는 한 실시예에 따른 오프체인 데이터 검증부의 동작을 설명하는 순서도로서, 도 1 ~ 도 5에서 설명한 구성 요소와 연계하여 설명한다.Figure 9 is a flowchart explaining the operation of the off-chain data verification unit according to an embodiment, and is explained in connection with the components described in Figures 1 to 5.

이때, 도 9는 도 6의 S108 이후의 동작일 수 있다.At this time, FIG. 9 may be an operation after S108 of FIG. 6.

도 9를 참고하면, 오프체인 데이터 검증부(140)는 검증 대상인 보안 데이터에 대한 해시 연산을 통해 해시값을 산출한다(S401).Referring to FIG. 9, the off-chain data verification unit 140 calculates a hash value through a hash operation on the security data subject to verification (S401).

오프체인 데이터 검증부(140)는 검증 대상인 보안 데이터의 오프체인 블록으로부터 튜플데이터(TupleData) 항목에 기록된 해시값을 추출한다(S402).The off-chain data verification unit 140 extracts the hash value recorded in the TupleData item from the off-chain block of the security data subject to verification (S402).

오프체인 데이터 검증부(140)는 S401에서 산출한 해시값을 S402에서 추출한 해시값과 비교하여 일치 여부를 판단하는 정합성 검증을 수행한다(S403).The off-chain data verification unit 140 compares the hash value calculated in S401 with the hash value extracted in S402 and performs consistency verification to determine whether they match (S403).

도 10은 다른 실시예에 따른 오프체인 데이터 검증부의 동작을 설명하는 순서도로서, 도 1 ~ 도 5에서 설명한 구성 요소와 연계하여 설명한다.Figure 10 is a flowchart explaining the operation of an off-chain data verification unit according to another embodiment, and is explained in connection with the components described in Figures 1 to 5.

이때, 도 10은 도 6의 S108 이후의 동작일 수 있다.At this time, FIG. 10 may be an operation after S108 of FIG. 6.

도 10을 참고하면, 오프체인 데이터 검증부(140)는 검증 대상 보안 데이터의 제1 오프체인 블록 이전의 제2 오프체인 블록의 튜플데이터(TupleData) 항목에 기록된 값, 제2 오프체인 블록의 이전 튜플(PreviousTuple) 항목에 기록된 값, 그리고 제2 오프체인 블록의 튜플 고유번호 및 Salt값을 조합하고, 조합 데이터의 암호화후 해시값을 연산한다(S501).Referring to FIG. 10, the off-chain data verification unit 140 determines the value recorded in the TupleData item of the second off-chain block before the first off-chain block of the security data to be verified and the value of the second off-chain block. The value recorded in the PreviousTuple item and the tuple unique number and Salt value of the second off-chain block are combined, and the hash value is calculated after encryption of the combined data (S501).

오프체인 데이터 검증부(140)는 제1 오프체인 블록으로부터 이전 튜플(PreviousTuple) 항목에 기록된 해시값을 추출한다(S502).The off-chain data verification unit 140 extracts the hash value recorded in the previous tuple item from the first off-chain block (S502).

오프체인 데이터 검증부(140)는 S501에서 연산한 해시값을 S502에서 추출한 해시값과 비교하여 일치 여부를 판단하는 정합성 검증을 수행한다(S503).The off-chain data verification unit 140 compares the hash value calculated in S501 with the hash value extracted in S502 and performs consistency verification to determine whether they match (S503).

한편, 도 11은 한 실시예에 따른 컴퓨팅 장치의 구성도이다.Meanwhile, Figure 11 is a configuration diagram of a computing device according to one embodiment.

도 11을 참고하면, 도 1 ~ 10에서 설명한 블록체인 오프체인 시스템(100)은 적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치(500)일 수 있다.Referring to FIG. 11, the blockchain off-chain system 100 described in FIGS. 1 to 10 may be a computing device 500 operated by at least one processor.

컴퓨팅 장치(500)는 하나 이상의 프로세서(510), 프로세서(510)에 의하여 수행되는 프로그램을 로드하는 메모리(520), 프로그램 및 각종 데이터를 저장하는 스토리지(530), 통신 인터페이스(540), 그리고 이들을 연결하는 버스(550)를 포함할 수 있다. 이외에도, 컴퓨팅 장치(500)는 다양한 구성 요소가 더 포함될 수 있다. 프로그램은 메모리(520)에 로드될 때 프로세서(510)로 하여금 본 개시의 다양한 실시예에 따른 방법/동작을 수행하도록 하는 명령어들(instruction)을 포함할 수 있다. 즉, 프로세서(510)는 명령어들을 실행함으로써, 본 개시의 다양한 실시예에 따른 방법/동작들을 수행할 수 있다. 명령어는 기능을 기준으로 묶인 일련의 컴퓨터 판독가능 명령어들로서 컴퓨터 프로그램의 구성 요소이자 프로세서에 의해 실행되는 것을 가리킨다.The computing device 500 includes one or more processors 510, a memory 520 that loads a program executed by the processor 510, a storage 530 that stores programs and various data, a communication interface 540, and these. It may include a connecting bus 550. In addition, the computing device 500 may further include various components. When loaded into the memory 520, the program may include instructions that cause the processor 510 to perform methods/operations according to various embodiments of the present disclosure. That is, the processor 510 can perform methods/operations according to various embodiments of the present disclosure by executing instructions. Instructions are a series of computer-readable instructions grouped by function and are a component of a computer program and are executed by a processor.

프로세서(510)는 도 1 ~ 도 10에서 설명한 오프체인 데이터 저장 관리부(110), 오프체인 데이터 상태 관리부(120), 오프체인 데이터 연결 관리부(130) 및 오프체인 데이터 검증부(140)의 동작을 수행하도록 하는 명령어들을 메모리(520)에 로드하여 실행할 수 있다.The processor 510 operates the off-chain data storage management unit 110, the off-chain data state management unit 120, the off-chain data connection management unit 130, and the off-chain data verification unit 140 described in FIGS. 1 to 10. Instructions to be executed can be loaded into the memory 520 and executed.

프로세서(510)는 컴퓨팅 장치(500)의 각 구성의 전반적인 동작을 제어한다. 프로세서(510)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 개시의 기술 분야에 잘 알려진 임의의 형태의 프로세서 중 적어도 하나를 포함하여 구성될 수 있다. 또한, 프로세서(510)는 본 개시의 다양한 실시예들에 따른 방법/동작을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. The processor 510 controls the overall operation of each component of the computing device 500. The processor 510 includes at least one of a Central Processing Unit (CPU), Micro Processor Unit (MPU), Micro Controller Unit (MCU), Graphic Processing Unit (GPU), or any type of processor well known in the art of the present disclosure. It can be configured to include. Additionally, the processor 510 may perform operations on at least one application or program to execute methods/operations according to various embodiments of the present disclosure.

메모리(520)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(520)는 본 개시의 다양한 실시예들에 따른 방법/동작을 실행하기 위하여 스토리지(530)로부터 하나 이상의 프로그램을 로드할 수 있다. 메모리(520)는 RAM과 같은 휘발성 메모리로 구현될 수 있을 것이나, 본 개시의 기술적 범위는 이에 한정되지 않는다. Memory 520 stores various data, commands and/or information. Memory 520 may load one or more programs from storage 530 to execute methods/operations according to various embodiments of the present disclosure. The memory 520 may be implemented as a volatile memory such as RAM, but the technical scope of the present disclosure is not limited thereto.

스토리지(530)는 프로그램을 비임시적으로 저장할 수 있다. 스토리지(530)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 개시가 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.Storage 530 may store programs non-temporarily. The storage 530 may be a non-volatile memory such as Read Only Memory (ROM), Erasable Programmable ROM (EPROM), Electrically Erasable Programmable ROM (EEPROM), flash memory, a hard disk, a removable disk, or a device well known in the art to which this disclosure pertains. It may be configured to include any known type of computer-readable recording medium.

통신 인터페이스(540)는 컴퓨팅 장치(500)의 유무선 통신을 지원한다. 이를 위해, 통신 인터페이스(540)는 본 개시의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다. The communication interface 540 supports wired and wireless communication of the computing device 500. To this end, the communication interface 540 may be configured to include a communication module well known in the technical field of the present disclosure.

버스(550)는 컴퓨팅 장치(500)의 구성 요소 간 통신 기능을 제공한다. 버스(550)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.Bus 550 provides communication functionality between components of computing device 500. The bus 550 may be implemented as various types of buses, such as an address bus, a data bus, and a control bus.

이상에서 설명한 본 개시의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 개시의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있다.The embodiments of the present disclosure described above are not only implemented through devices and methods, but may also be implemented through programs that implement functions corresponding to the configurations of the embodiments of the present disclosure or recording media on which the programs are recorded.

이상에서 본 개시의 실시예에 대하여 상세하게 설명하였지만 본 개시의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 개시의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 개시의 권리범위에 속하는 것이다.Although the embodiments of the present disclosure have been described in detail above, the scope of the rights of the present disclosure is not limited thereto, and various modifications and improvements made by those skilled in the art using the basic concept of the present disclosure defined in the following claims are also possible. It falls within the scope of rights.

Claims (13)

적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치가 보안 데이터를 관리하는 방법으로서,
클라이언트 단말로부터 수신한 제1 보안 데이터에 대한 제1 오프체인(Off-chain) 블록(Block)을 생성하는 단계,
상기 제1 보안 데이터에 대한 해시(Hash) 연산을 통해 제1 해시값을 산출하고 상기 제1 해시값을 상기 제1 오프체인 블록의 튜플데이터(TupleData) 항목에 기록하는 단계,
상기 제1 오프체인 블록보다 이전에 생성된 제2 오프체인 블록에 저장된 데이터들에 대한 해시 연산을 통해 제2 해시값을 산출하고 상기 제2 해시값을 상기 제1 오프체인 블록의 이전 튜플(PreviousTuple) 항목에 기록하는 단계, 그리고
보안 고유번호로 식별되는 상기 제1 보안 데이터에 대한 상태 정보를 생성하여 저장하는 단계를 포함하고,
상기 상태 정보는,
보안 데이터의 등록, 수정, 삭제 중 적어도 하나를 포함하는 상태 변화 정보, 그리고 보안 데이터간 상호 연결 여부를 나타내는 설정값을 포함하며,
상기 설정값은,
상기 이전 튜플 항목에 기록된 정보를 기초로 기록되며,
오프체인 블록에 보안 데이터가 저장되어 정상적으로 연결되었는지 여부에 따른 정상 연결 상태를 나타내는 설정값 및 미연결 상태를 나타내는 설정값
을 포함하는, 방법.
A method of managing secure data by a computing device operated by at least one processor, comprising:
Generating a first off-chain block for the first security data received from the client terminal,
Calculating a first hash value through a hash operation on the first security data and recording the first hash value in the TupleData item of the first off-chain block,
A second hash value is calculated through a hash operation on the data stored in the second off-chain block created before the first off-chain block, and the second hash value is calculated as the previous tuple (PreviousTuple) of the first off-chain block. ) Steps to record the items, and
Generating and storing status information about the first security data identified by a security unique number,
The status information is,
Contains status change information including at least one of registration, modification, and deletion of security data, and a setting value indicating whether or not security data is interconnected,
The above settings are:
It is recorded based on the information recorded in the previous tuple item,
A setting value indicating a normal connection state and a setting value indicating an unconnected state depending on whether security data is stored in an off-chain block and connected normally.
Method, including.
제1항에서,
상기 이전 튜플(PreviousTuple) 항목에 기록하는 단계는,
상기 제2 오프체인 블록의 튜플데이터 항목에 저장된 값 및 상기 제2 오프체인 블록의 이전 튜플 항목에 저장된 값을 조합하고, 조합한 값에 대한 해시 연산을 통해 상기 제2 해시값을 산출하고,
상기 제2 오프체인 블록의 이전 튜플 항목에는,
상기 제2 오프체인 블록보다 이전에 생성된 제3 오프체인 블록에 저장된 데이터들에 대한 해시 연산을 통해 산출된 제3 해시값이 기록되어 있는, 방법.
In paragraph 1:
The step of recording in the PreviousTuple item is,
Combining the value stored in the tuple data item of the second off-chain block and the value stored in the previous tuple item of the second off-chain block, calculating the second hash value through a hash operation on the combined value,
In the previous tuple item of the second off-chain block,
A method in which a third hash value calculated through a hash operation on data stored in a third off-chain block created before the second off-chain block is recorded.
제2항에서,
상기 이전 튜플(PreviousTuple) 항목에 기록하는 단계는,
상기 조합한 값에 상기 제2 오프체인 블록의 튜플 고유번호를 추가하여 상기 해시 연산을 수행하고,
상기 튜플 고유번호는,
오프체인 블록에 고유하게 할당되는 식별자인, 방법.
In paragraph 2,
The step of recording in the PreviousTuple item is,
Perform the hash operation by adding the tuple unique number of the second off-chain block to the combined value,
The tuple unique number is,
Method, which is an identifier uniquely assigned to an off-chain block.
제1항에서,
상기 제1 오프체인 블록 및 상기 제2 오프체인 블록은,
오프체인 블록에 고유하게 할당되는 식별자인 튜플 고유번호,
보안 데이터에 고유하게 할당되는 식별자인 보안 고유번호,
사용자 단말로부터 수신한 보안 데이터를 관리하는 보안 데이터 관리 저장소에 보안 데이터의 존재 유무에 따른 설정값이 기록되는 Division 항목,
상기 튜플 항목, 그리고
상기 이전 튜플 항목
을 포함하는, 방법.
In paragraph 1:
The first off-chain block and the second off-chain block are,
Tuple unique number, which is an identifier uniquely assigned to an off-chain block,
A security identification number, which is an identifier uniquely assigned to secure data;
Division item in which settings based on the presence or absence of security data are recorded in the security data management storage that manages security data received from the user terminal;
The tuple items above, and
The previous tuple item above
Method, including.
삭제delete 제1항에서,
상기 생성하는 단계 이전에,
클라이언트 단말로부터 제1 보안 데이터를 수신하는 단계, 그리고
상기 제1 보안 데이터에 보안 고유번호를 할당하는 단계를 더 포함하고,
상기 보안 고유번호는,
상기 제1 오프체인 블록에 포함되고, 상기 제1 보안 데이터에 대한 상태 정보를 식별하는데 사용되는, 방법.
In paragraph 1:
Before the generating step,
Receiving first security data from a client terminal, and
Further comprising assigning a security identification number to the first security data,
The security unique number is,
A method included in the first off-chain block and used to identify state information for the first secure data.
삭제delete 제1항에서,
상기 튜플데이터(TupleData) 항목에 기록하는 단계 이후,
상기 제1 보안 데이터에 대하여 연산한 해시값을 상기 제1 오프체인 블록의 튜플데이터(TupleData) 항목에 기록된 해시값과 비교하여 일치 여부를 판단하는 무결성 검증을 수행하는 단계
를 더 포함하는, 방법.
In paragraph 1:
After the step of recording in the TupleData item,
Comparing the hash value calculated for the first security data with the hash value recorded in the TupleData item of the first off-chain block to perform integrity verification to determine whether they match.
A method further comprising:
제1항에서,
상기 이전 튜플(PreviousTuple) 항목에 기록하는 단계 이후,
상기 제2 오프체인 블록의 튜플데이터(TupleData) 항목에 기록된 값, 그리고 상기 제2 오프체인 블록의 이전 튜플(PreviousTuple) 항목에 기록된 값에 대한 해시값을 연산하는 단계, 그리고
연산한 해시값을 상기 제1 오프체인 블록의 이전 튜플(PreviousTuple) 항목에 기록된 해시값과 비교하여 일치 여부를 판단하는 무결성 검증을 수행하는 단계
를 더 포함하는, 방법.
In paragraph 1:
After recording in the PreviousTuple item,
Calculating a hash value for the value recorded in the TupleData item of the second off-chain block and the value recorded in the PreviousTuple item of the second off-chain block, and
Comparing the calculated hash value with the hash value recorded in the PreviousTuple item of the first off-chain block to perform integrity verification to determine whether there is a match.
A method further comprising:
보안 데이터를 관리하는 블록 체인(block chain) 오프체인(Off-chain) 시스템으로서,
클라이언트 단말로부터 오프체인 관리 대상인 제1 보안 데이터를 수신하는 오프체인 데이터 저장 관리부,
상기 제1 보안 데이터에 대한 제1 오프체인 블록을 생성하고, 제1 오프체인 블록을 상기 제1 보안 데이터 이전에 수신된 제2 보안 데이터의 제2 오프체인 블록과 연결시키는 오프체인 데이터 연결 관리부, 그리고
상기 오프체인 데이터 저장 관리부가 수신하는 보안 데이터의 상태 정보 및 오프체인 블록들 간의 연결 상태를 관리하는 오프체인 데이터 상태 관리부를 포함하고,
상기 오프체인 데이터 상태 관리부는,
상기 제1 오프체인 블록의 이전 튜플 항목에 기록된 정보를 기초로, 보안 고유번호로 식별되는 상기 제1 보안 데이터에 대한 상태 정보를 생성하여 저장하고,
상기 상태 정보는,
보안 데이터의 등록, 수정, 삭제 중 적어도 하나를 포함하는 상태 변화 정보, 그리고 보안 데이터간 상호 연결 여부를 나타내는 설정값을 포함하며,
상기 설정값은,
상기 이전 튜플 항목에 기록된 정보를 기초로 기록되며,
오프체인 블록에 보안 데이터가 저장되어 정상적으로 연결되었는지 여부에 따른 정상 연결 상태를 나타내는 설정값 및 미연결 상태를 나타내는 설정값
을 포함하는, 블록체인 오프체인 시스템.
As a block chain off-chain system that manages secure data,
An off-chain data storage management unit that receives first security data subject to off-chain management from a client terminal,
An off-chain data connection management unit that generates a first off-chain block for the first security data and connects the first off-chain block with a second off-chain block of the second security data received before the first security data, and
An off-chain data state management unit that manages the state information of the security data received by the off-chain data storage management unit and the connection state between off-chain blocks,
The off-chain data state management unit,
Based on the information recorded in the previous tuple item of the first off-chain block, status information for the first security data identified by a security unique number is generated and stored,
The status information is,
Contains status change information including at least one of registration, modification, and deletion of security data, and a setting value indicating whether or not security data is interconnected,
The above settings are:
It is recorded based on the information recorded in the previous tuple item,
A setting value indicating a normal connection state and a setting value indicating an unconnected state depending on whether security data is stored in an off-chain block and connected normally.
Blockchain off-chain system, including.
제10항에서,
상기 오프체인 데이터 연결 관리부는,
상기 제1 보안 데이터에 대한 제1 오프체인(Off-chain) 블록(Block)을 생성하고, 상기 제1 보안 데이터에 대한 해시(Hash) 연산을 통해 산출한 제1 해시값을 상기 제1 오프체인 블록의 튜플데이터(TupleData) 항목에 기록하고, 상기 제1 오프체인 블록보다 이전에 생성된 제2 오프체인 블록으로부터 추출한 이전 데이터들에 대한 해시 연산을 통해 산출한 제2 해시값을 상기 제1 오프체인 블록의 이전 튜플(PreviousTuple) 항목에 기록하며,
상기 제2 해시값은,
상기 제2 오프체인 블록의 튜플데이터(TupleData) 항목에 기록된 해시값, 그리고 상기 제2 오프체인 블록의 이전 튜플(PreviousTuple) 항목에 기록된 해시값을 토대로 생성되는, 블록체인 오프체인 시스템.
In paragraph 10:
The off-chain data connection management unit,
A first off-chain block for the first security data is generated, and the first hash value calculated through a hash operation for the first security data is used as the first off-chain block. A second hash value is recorded in the TupleData item of the block and calculated through a hash operation on previous data extracted from the second off-chain block created before the first off-chain block. Recorded in the PreviousTuple item of the chain block,
The second hash value is,
A blockchain off-chain system generated based on the hash value recorded in the TupleData item of the second off-chain block and the hash value recorded in the PreviousTuple item of the second off-chain block.
삭제delete 제11항에서,
상기 제1 보안 데이터에 대하여 연산한 해시값을 상기 제1 오프체인 블록의 튜플데이터(TupleData) 항목에 기록된 해시값과 비교하여 일치 여부를 판단하는 무결성 검증과, 상기 제2 오프체인 블록의 튜플데이터(TupleData) 항목에 기록된 값, 그리고 상기 제2 오프체인 블록의 이전 튜플(PreviousTuple) 항목에 기록된 값에 대하여 연산한 해시값을 상기 제1 오프체인 블록의 이전 튜플(PreviousTuple) 항목에 기록된 해시값과 비교하여 일치 여부를 판단하는 무결성 검증을 수행하는 오프체인 데이터 검증부
를 더 포함하는, 블록체인 오프체인 시스템.
In paragraph 11:
Integrity verification that compares the hash value calculated for the first security data with the hash value recorded in the TupleData item of the first off-chain block to determine whether it matches, and the tuple of the second off-chain block The hash value calculated for the value recorded in the data (TupleData) item and the value recorded in the previous tuple (PreviousTuple) item of the second off-chain block is recorded in the previous tuple (PreviousTuple) item of the first off-chain block. Off-chain data verification unit that performs integrity verification by comparing the hash value and determining whether it matches.
A blockchain off-chain system that further includes.
KR1020210188739A 2021-11-24 2021-12-27 Method and off-chain system for security data management using block chain KR102656660B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210163508 2021-11-24
KR20210163508 2021-11-24

Publications (2)

Publication Number Publication Date
KR20230076699A KR20230076699A (en) 2023-05-31
KR102656660B1 true KR102656660B1 (en) 2024-04-11

Family

ID=86543874

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210188739A KR102656660B1 (en) 2021-11-24 2021-12-27 Method and off-chain system for security data management using block chain

Country Status (1)

Country Link
KR (1) KR102656660B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101977159B1 (en) * 2018-12-28 2019-06-21 (주)그린아이티코리아 Security service providing apparatus and method supporting lightweight security
JP2020182214A (en) * 2019-04-24 2020-11-05 國際信任機器股▲ふん▼有限公司 Verification system and method for cooperation of blockchain and off-chain device

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110727712B (en) * 2019-10-15 2021-06-04 腾讯科技(深圳)有限公司 Data processing method and device based on block chain network, electronic equipment and storage medium
KR102331451B1 (en) * 2020-03-16 2021-11-29 이화여자대학교 산학협력단 Digital content transaction method and blockchain system for digital content transaction

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101977159B1 (en) * 2018-12-28 2019-06-21 (주)그린아이티코리아 Security service providing apparatus and method supporting lightweight security
JP2020182214A (en) * 2019-04-24 2020-11-05 國際信任機器股▲ふん▼有限公司 Verification system and method for cooperation of blockchain and off-chain device

Also Published As

Publication number Publication date
KR20230076699A (en) 2023-05-31

Similar Documents

Publication Publication Date Title
US10846416B2 (en) Method for managing document on basis of blockchain by using UTXO-based protocol, and document management server using same
EP3452929B1 (en) System for evaluating telemetry data
US11334562B2 (en) Blockchain based data management system and method thereof
CN109033405B (en) Method and apparatus for maintaining blockchain, server, and computer-readable storage medium
US10762479B2 (en) Method and system for processing blockchain-based real-time transaction
CN109246179B (en) Method and apparatus for maintaining blockchain, server, and computer-readable storage medium
US20180293557A1 (en) Method of charging electronic currency automatically based on blockchain and system thereof
KR102002509B1 (en) Privite blockchain system including notarizing center and notarial method thereof
KR101986081B1 (en) Method for sharing and verifing a block between specific nodes in a blockchain
WO2021018088A1 (en) Trusted authentication method, network device, system and storage medium
JP2020528689A (en) Event lock encryption methods and systems implemented on the blockchain
JP2020515092A (en) Blockchain monitoring and management
WO2018222066A1 (en) Industrial network using a blockchain for access control, and access control method
CN111566641A (en) Storing and accessing medical data sets on blockchains
US20200364212A1 (en) System and method of supporting reflection of transactions between blockchain networks
CN110119390B (en) Financial information outsourcing management system based on block chain
CN108846297B (en) A method of distributing and retrieve data in the block chain network with peer node
KR102564106B1 (en) System and Method for Intelligent mediating based enhanced smart contract for privacy protection
KR20210142983A (en) Off-chain data sharing system and method thereof
KR102656660B1 (en) Method and off-chain system for security data management using block chain
US20210365433A1 (en) Method and apparatus for managing data based on blockchain
US20200160943A1 (en) Security system and node device used in same
US20220200809A1 (en) Management system, management method, upper block chain calculation device, and program
JP2023553593A (en) Device management method using blockchain network, related devices and computer programs
KR20210066348A (en) A terminal device and a method for consturcting secure block chain based on neural block clusters

Legal Events

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