KR102656660B1 - 블록체인 기술을 이용한 보안 데이터 관리 방법 및 오프체인 시스템 - Google Patents
블록체인 기술을 이용한 보안 데이터 관리 방법 및 오프체인 시스템 Download PDFInfo
- 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
- Legal status (The legal status 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 status listed.)
- Active
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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6245—Protecting personal data, e.g. for financial or medical purposes
-
- 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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
보안 데이터 관리 방법 및 그 시스템이 개시된다. 이 시스템은 클라이언트 단말로부터 수신한 제1 보안 데이터에 대한 제1 오프체인(Off-chain) 블록을 생성하는 단계, 상기 제1 보안 데이터에 대한 해시 연산을 통해 제1 해시값을 산출하고, 상기 제1 해시값을 상기 제1 오프체인 블록의 튜플데이터(TupleData) 항목에 기록하는 단계, 그리고 상기 제1 오프체인 블록보다 이전에 생성된 제2 오프체인 블록에 저장된 데이터들에 대한 해시 연산을 통해 산출된 제2 해시값을 상기 제1 오프체인 블록의 이전 튜플(PreviousTuple) 항목에 기록하는 단계를 포함함으로써, 상호 연결되는 블록체인 오프체인 구조를 통해 보안 데이터를 관리할 수 있다.
Description
본 개시는 블록체인 기술을 이용한 보안 데이터 관리 방법 및 오프체인 시스템에 관한 것이다.
블록 체인(block chain)에는 온체인(On-Chain) 방식과 오프체인(Off-Chain) 방식이 존재한다.
온체인(On-Chain)이란 블록체인 시스템 내부에 거래 내역(데이터)등을 기록하는 방식을 의미하며 온체인에 저장된 데이터는 모든 참여 노드가 공유하는 것을 의미한다.
오프체인(Off-Chain)이란 블록체인 시스템과 관련되어 있지만, 블록체인 시스템 외부에 위치하여 동작하는 것으로, 오프체인에 저장된 데이터는 동일한 사법관할에 속한 참여 노드에게만 공유되며, 블록체인 네트워크 외부에서 트랜잭션(Transaction)이 기록된다는 뜻으로 트랜잭션은 거래 뿐만 아니라 여러 액션(Actions)이 포함되어 있는 것을 의미한다.
이처럼, 블록 체인(block chain)의 온체인(on-chain)에는 기록하고자 하는 데이터를 저장할 수 있다. 다만, 온체인(on-chain)에는 개인정보 및 의료정보 등의 민감한 정보는 저장할 수 없다.
개인정보호보호법 제21조 제1항에 따르면, "개인정보처리자는 보유기간의 경과, 개인정보의 처리 목적 달성 등 그 개인정보가 불필요하게 되었을 때에는 지체없이 그 개인정보를 파기해야 한다" 라고 명시하고 있다. 동법 제36조 제1항에도 "정보주체는 개인정보처리자에게 그 개인정보의 정정이나 삭제를 요구할 수 있다"고 규정하고 있다.
따라서, 블록 체인(block chain)은 저장된 데이터를 삭제할 수 없는 특성상 개인 정보/의료 정보를 저장할 수 없기 때문에 개인정보 및 의료정보 등의 민감한 정보는 오프체인(Off-chain)에서 저장 관리할 수 밖에 없다.
그러나, 온체인(On-chain)은 데이터의 무결성과 안정성이 검증되었지만, 오프체인(Off-chain)은 악의적 공격, 시스템 결함, 인적 오류 등의 사고로 인한 데이터의 위변조 취약점이 존재한다. 이에 검증된 온체인(On-chain)의 핵심 기술을 활용하여 오프체인(Off-chain)의 데이터 무결성과 안정성을 강화할 필요가 있다.
본 개시는 개인 데이터, 의료 데이터 등과 같은 보안 데이터를 블록 체인(block chain)의 오프체인(Off-chain) 블록으로 생성하여 관리하고, 보안 데이터 간 상호 연결성을 부여하여 관리하는 방법 및 그 시스템을 제공하는 것이다.
한 특징에 따르면, 적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치가 보안 데이터를 관리하는 방법으로서, 클라이언트 단말로부터 수신한 제1 보안 데이터에 대한 제1 오프체인(Off-chain) 블록(Block)을 생성하는 단계, 상기 제1 보안 데이터에 대한 해시(Hash) 연산을 통해 제1 해시값을 산출하고 상기 제1 해시값을 상기 제1 오프체인 블록의 튜플데이터(TupleData) 항목에 기록하는 단계, 그리고 상기 제1 오프체인 블록보다 이전에 생성된 제2 오프체인 블록에 저장된 데이터들에 대한 해시 연산을 통해 제2 해시값을 산출하고 상기 제2 해시값을 상기 제1 오프체인 블록의 이전 튜플(PreviousTuple) 항목에 기록하는 단계를 포함한다.
상기 이전 튜플(PreviousTuple) 항목에 기록하는 단계는, 상기 제2 오프체인 블록의 튜플데이터 항목에 저장된 값 및 상기 제2 오프체인 블록의 이전 튜플 항목에 저장된 값을 조합하고, 조합한 값에 대한 해시 연산을 통해 상기 제2 해시값을 산출하고, 상기 제2 오프체인 블록의 이전 튜플 항목에는, 상기 제2 오프체인 블록보다 이전에 생성된 제3 오프체인 블록에 저장된 데이터들에 대한 해시 연산을 통해 산출된 제3 해시값이 기록되어 있을 수 있다.
상기 이전 튜플(PreviousTuple) 항목에 기록하는 단계는, 상기 조합한 값에 상기 제2 오프체인 블록의 튜플 고유번호를 추가하여 상기 해시 연산을 수행하고, 상기 튜플 고유번호는, 오프체인 블록에 고유하게 할당되는 식별자일 수 있다.
상기 제1 오프체인 블록 및 상기 제2 오프체인 블록은, 오프체인 블록에 고유하게 할당되는 식별자인 튜플 고유번호, 보안 데이터에 고유하게 할당되는 식별자인 보안 고유번호, 사용자 단말로부터 수신한 보안 데이터를 관리하는 보안 데이터 관리 저장소에 보안 데이터의 존재 유무에 따른 설정값이 기록되는 Division 항목, 상기 튜플데이터 항목, 그리고 상기 이전 튜플 항목을 포함할 수 있다.
상기 이전 튜플(PreviousTuple) 항목에 기록하는 단계 이후, 상기 제1 보안 데이터에 대한 보안 데이터 상호 연결을 나타내는 설정값을 포함하는 상태 정보를 생성하고, 상기 상태 정보를 저장하는 단계를 더 포함할 수 있다.
상기 생성하는 단계 이전에, 클라이언트 단말로부터 제1 보안 데이터를 수신하는 단계, 그리고 상기 제1 보안 데이터에 보안 고유번호를 할당하는 단계를 더 포함하고, 상기 보안 고유번호는, 상기 제1 오프체인 블록에 포함되고, 상기 제1 보안 데이터에 대한 상태 정보를 식별하는데 사용될 수 있다.
상기 할당하는 단계 이후, 상기 보안 고유번호를 식별자로 사용하는 상기 제1 보안 데이터에 대한 상태 정보를 생성하는 단계를 더 포함하고, 상기 상태 정보는, 상기 제1 보안 데이터의 등록, 수정, 삭제를 포함하는 상태 변화, 그리고오프체인 블록 간의 상호 연결 상태를 나타내는 설정값을 포함할 수 있다.
상기 튜플데이터(TupleData) 항목에 기록하는 단계 이후, 상기 제1 보안 데이터에 대하여 연산한 해시값을 상기 제1 오프체인 블록의 튜플데이터(TupleData) 항목에 기록된 해시값과 비교하여 일치 여부를 판단하는 무결성 검증을 수행하는 단계를 더 포함할 수 있다.
상기 이전 튜플(PreviousTuple) 항목에 기록하는 단계 이후, 상기 제2 오프체인 블록의 튜플데이터(TupleData) 항목에 기록된 값, 그리고 상기 제2 오프체인 블록의 이전 튜플(PreviousTuple) 항목에 기록된 값에 대한 해시값을 연산하는 단계, 그리고 연산한 해시값을 상기 제1 오프체인 블록의 이전 튜플(PreviousTuple) 항목에 기록된 해시값과 비교하여 일치 여부를 판단하는 무결성 검증을 수행하는 단계를 더 포함할 수 있다.
다른 특징에 따르면, 보안 데이터를 관리하는 블록 체인(block chain) 오프체인(Off-chain) 시스템으로서, 클라이언트 단말로부터 오프체인 관리 대상인 제1 보안 데이터를 수신하는 오프체인 데이터 저장 관리부, 상기 제1 보안 데이터에 대한 제1 오프체인 블록을 생성하고, 제1 오프체인 블록을 상기 제1 보안 데이터 이전에 수신된 제2 보안 데이터의 제2 오프체인 블록과 연결시키는 오프체인 데이터 연결 관리부, 그리고 상기 오프체인 데이터 저장 관리부가 수신하는 보안 데이터의 상태 정보 및 오프체인 블록들 간의 연결 상태를 관리하는 오프체인 데이터 상태 관리부를 포함한다.
상기 오프체인 데이터 연결 관리부는, 상기 제1 보안 데이터에 대한 제1 오프체인(Off-chain) 블록(Block)을 생성하고, 상기 제1 보안 데이터에 대한 해시(Hash) 연산을 통해 산출한 제1 해시값을 상기 제1 오프체인 블록의 튜플데이터(TupleData) 항목에 기록하고, 상기 제1 오프체인 블록보다 이전에 생성된 제2 오프체인 블록으로부터 추출한 이전 데이터들에 대한 해시 연산을 통해 산출한 제2 해시값을 상기 제1 오프체인 블록의 이전 튜플(PreviousTuple) 항목에 기록하며, 상기 제2 해시값은, 상기 제2 오프체인 블록의 튜플데이터(TupleData) 항목에 기록된 해시값, 그리고 상기 제2 오프체인 블록의 이전 튜플(PreviousTuple) 항목에 기록된 해시값을 토대로 생성될 수 있다.
상기 오프체인 데이터 상태 관리부는, 상기 제1 오프체인 블록의 이전 튜플 항목의 기록을 확인한 후, 상기 제1보안 데이터에 대한 오프체인 블록간 상호 연결을 나타내는 설정값을 포함하는 상태 정보를 생성할 수 있다.
상기 블록체인 오프체인 시스템은, 상기 제1 보안 데이터에 대하여 연산한 해시값을 상기 제1 오프체인 블록의 튜플데이터(TupleData) 항목에 기록된 해시값과 비교하여 일치 여부를 판단하는 무결성 검증과, 상기 제2 오프체인 블록의 튜플데이터(TupleData) 항목에 기록된 값, 그리고 상기 제2 오프체인 블록의 이전 튜플(PreviousTuple) 항목에 기록된 값에 대하여 연산한 해시값을 상기 제1 오프체인 블록의 이전 튜플(PreviousTuple) 항목에 기록된 해시값과 비교하여 일치 여부를 판단하는 무결성 검증을 수행하는 오프체인 데이터 검증부를 더 포함할 수 있다.
실시예에 따르면, 블록 체인(block chain)의 온체인(On-chain)에 기록할 수 없는 민감한 정보, 즉, 개인 데이터, 의료 데이터 등과 같은 보안 데이터를 오프체인(Off-chain) 블록을 생성하여 저장 및 관리하고, 보안 데이터들간 상호 연결성을 부여하여 데이터 무결성을 보장 및 안정성을 높일 수 있다.
도 1은 실시예에 따른 보안 데이터 관리 시스템을 개략적으로 도시한 도면이다.
도 2는 실시예에 따른 보안 데이터 관리를 위한 블록체인 오프체인 시스템의 구성을 나타낸 블록도이다.
도 3은 실시예에 따른 보안 데이터를 오프체인 블록에 기록하는 내용을 설명한다.
도 4는 실시예에 따른 오프체인 블록간 상호 연결 구조를 설명한다.
도 5는 실시예에 따른 보안 데이터의 정합성 검증 동작을 설명한다.
도 6은 실시예에 따른 보안 데이터 관리 방법을 설명하는 흐름도이다.
도 7은 실시예에 따른 오프체인 데이터 연결 관리부의 동작을 설명하는 순서도이다.
도 8은 실시예에 따른 오프체인 데이터 상태 관리부의 동작을 설명하는 순서도이다.
도 9는 한 실시예에 따른 오프체인 데이터 검증부의 동작을 설명하는 순서도이다.
도 10은 다른 실시예에 따른 오프체인 데이터 검증부의 동작을 설명하는 순서도이다.
도 11은 한 실시예에 따른 컴퓨팅 장치의 구성도이다
도 2는 실시예에 따른 보안 데이터 관리를 위한 블록체인 오프체인 시스템의 구성을 나타낸 블록도이다.
도 3은 실시예에 따른 보안 데이터를 오프체인 블록에 기록하는 내용을 설명한다.
도 4는 실시예에 따른 오프체인 블록간 상호 연결 구조를 설명한다.
도 5는 실시예에 따른 보안 데이터의 정합성 검증 동작을 설명한다.
도 6은 실시예에 따른 보안 데이터 관리 방법을 설명하는 흐름도이다.
도 7은 실시예에 따른 오프체인 데이터 연결 관리부의 동작을 설명하는 순서도이다.
도 8은 실시예에 따른 오프체인 데이터 상태 관리부의 동작을 설명하는 순서도이다.
도 9는 한 실시예에 따른 오프체인 데이터 검증부의 동작을 설명하는 순서도이다.
도 10은 다른 실시예에 따른 오프체인 데이터 검증부의 동작을 설명하는 순서도이다.
도 11은 한 실시예에 따른 컴퓨팅 장치의 구성도이다
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
또한, 명세서에 기재된 "…부", "…기", "…모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
본 발명에서 설명하는 장치들은 적어도 하나의 프로세서, 메모리 장치, 통신 장치 등을 포함하는 하드웨어로 구성되고, 지정된 장소에 하드웨어와 결합되어 실행되는 프로그램이 저장된다. 하드웨어는 본 발명의 방법을 실행할 수 있는 구성과 성능을 가진다. 프로그램은 도면들을 참고로 설명한 본 발명의 동작 방법을 구현한 명령어(instructions)를 포함하고, 프로세서와 메모리 장치 등의 하드웨어와 결합하여 본 발명을 실행한다.
본 명세서에서 "전송 또는 제공"은 직접적인 전송 또는 제공하는 것 뿐만 아니라 다른 장치를 통해 또는 우회 경로를 이용하여 간접적으로 전송 또는 제공도 포함할 수 있다.
본 명세서에서 단수로 기재된 표현은 "하나" 또는 "단일" 등의 명시적인 표현을 사용하지 않은 이상, 단수 또는 복수로 해석될 수 있다.
본 명세서에서 도면에 관계없이 동일한 도면번호는 동일한 구성요소를 지칭하며, "및/또는" 은 언급된 구성 요소들의 각각 및 하나 이상의 모든 조합을 포함한다.
본 명세서에서, 제1, 제2 등과 같이 서수를 포함하는 용어들은 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를들어, 본 개시의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
본 명세서에서 도면을 참고하여 설명한 흐름도에서, 동작 순서는 변경될 수 있고, 여러 동작들이 병합되거나, 어느 동작이 분할될 수 있고, 특정 동작은 수행되지 않을 수 있다.
도 1은 실시예에 따른 보안 데이터 관리 시스템을 개략적으로 도시한 도면이다.
도 1을 참고하면, 보안 데이터 관리 시스템은 블록체인 오프체인(BlockChain Off-Chain) 시스템(100), 클라이언트 단말(200), 서비스 서버(300) 및 블록체인 온체인(BlockChain On-Chain) 플랫폼(400)을 포함할 수 있다.
보안 데이터 관리 시스템은 오프체인과 온체인 혼합방식으로 블록체인의 보안성을 강화한다.
블록체인 오프체인 시스템(100)은 데이터 무결성과 안정성이 검증된 블록체인의 핵심기술을 활용하여 오프체인에 보안 데이터를 저장하고, 보안 데이터들을 상호 연결하여 관리함으로써, 데이터 무결성 보장 및 안정성을 강화한다.
여기서, 보안 데이터는 온체인에 저장할 수 없고, 오프체인에 저장해야 하는 개인 정보, 의료 정보, 민감 정보 등을 의미하며, 이들을 통칭하여 보안 데이터로 호칭하기로 한다.
블록체인 오프체인 시스템(100)은 오프체인에 저장되는 보안 데이터의 보안을 강화하기 위해 보안 데이터를 관리하고 보안 데이터간 상호연결을 관리한다. 블록체인 오프체인 시스템(100)은 보안 데이터를 해시(Hash)화하여 관리한다. 블록체인 오프체인 시스템(100)은 데이터의 연속성이 유지되도록 정합성을 검증한다.
한 실시예에 따르면, 블록체인 오프체인 시스템(100)은 데이터베이스 관리 시스템(Relational DataBase Management System, RDBMS)일 수 있다.
클라이언트 단말(200)은 서비스 서버(300)로 서비스 데이터를 전송하여 서비스 데이터의 저장을 요청할 수 있다.
서비스 서버(300)는 클라이언트 단말(200)로부터 수신한 서비스 데이터가 보안 데이터이면, 블록체인 오프체인 시스템(100)으로 보안 데이터를 전달하여 저장을 요청할 수 있다.
서비스 서버(300)는 클라이언트 단말(200)로부터 수신한 서비스 데이터가 보안 데이터가 아니라면, 블록체인 온체인 플랫폼(400)으로 보안 데이터를 전달하여 저장을 요청할 수 있다.
블록체인 온체인 플랫폼(400)은 복수의 블록체인 노드가 참여하는 상호 합의(또는, 분산 합의)의 과정을 통해 서비스 데이터를 온체인 데이터로 기록한다.
블록체인 온체인 플랫폼(400)은 이미 알려진 블록체인 네트워크의 구성에 해당하므로, 자세한 설명은 생략한다.
이때, 보안 데이터는 온체인에 기록/관리할 수 없는 오프체인 대상 데이터로서, 예를들어, 의료 정보, 개인 정보, 민감 정보 등을 말한다.
클라이언트 단말(200)과 서비스 서버(300)는 상호 접속되어, 보안 데이터의 등록, 변경, 삭제와 같은 처리를 수행할 수 있다. 예컨대, 클라이언트 단말(200)은 의료 기관 담당자 단말이고, 서비스 서버(300)는 의료 기관 서버일 수 있다. 이때, 보안 데이터는 의료 정보로서, 의료 기관 담당자가 환자의 의료 정보를 클라이언트 단말(200)을 통해 입력하면, 서비스 서버(300)로 전달될 수 있다.
도 2는 실시예에 따른 보안 데이터 관리를 위한 블록체인 오프체인 시스템의 구성을 나타낸 블록도이고, 도 3은 실시예에 따른 보안 데이터를 오프체인 블록에 기록하는 내용을 설명하는 도면이고, 도 4는 실시예에 따른 오프체인 블록간 상호 연결 구조를 설명하는 도면이고, 도 5는 실시예에 따른 보안 데이터의 정합성 검증 동작을 설명한다.
도 2를 참고하면, 블록체인 오프체인 시스템(100)은 적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치이다. 블록체인 오프체인 시스템(100)은 본 개시에서 설명하는 동작을 위한 컴퓨터 프로그램을 탑재하고, 컴퓨터 프로그램은 프로세서에 의해 실행된다.
블록체인 오프체인 시스템(100)은 오프체인 데이터 저장 관리부(110), 오프체인 데이터 상태 관리부(120), 오프체인 데이터 연결 관리부(130) 및 오프체인 데이터 검증부(140)를 포함한다.
오프체인 데이터 저장 관리부(110)는 클라이언트 단말(200)로부터 오프체인 관리 대상인 보안 데이터를 수신한다. 오프체인 데이터 저장 관리부(110)는 클라이언트 단말(200)로부터 저장 요청된 보안 데이터를 관리하기 위한 저장소를 구비할 수 있다.
오프체인 데이터 저장 관리부(110)는 수신한 보안 데이터에 고유한 번호, 즉, 보안 고유번호를 할당하여 보안 데이터를 구분할 수 있도록 한다. 보안 고유번호는 오프체인 블록 간 상호 연결성을 부여할 때 참조키로 이용된다.
오프체인 데이터 저장 관리부(110)는 보안 고유번호가 할당된 복수의 보안 정보로 구성된 보안 데이터를 오프체인 데이터 연결 관리부(130)로 전송하여 저장을 요청한다.
오프체인 데이터 저장 관리부(110)는 보안 고유번호를 오프체인 데이터 상태 관리부(120)에게 전달하여 공유한다.
오프체인 데이터 상태 관리부(120)는 보안 데이터의 상태 정보 및 오프체인 블록들 간의 연결 상태를 관리한다.
오프체인 데이터 상태 관리부(120)는 오프체인 데이터 저장 관리부(110)가 공유하는 보안 고유번호로 식별되는 보안 데이터의 상태 정보를 생성하여 저장 및 관리한다. 오프체인 데이터 상태 관리부(120)는 보안 고유번호로 식별되는 상태 정보를 저장 및 관리하는 저장소를 구비할 수 있다.
오프체인 데이터 상태 관리부(120)는 오프체인 데이터 저장 관리부(110) 및 오프체인 데이터 연결 관리부(130)와 연동하여 보안 데이터의 상태 변화 및 보안 데이터들간 연결 상태를 모니터링하고, 모니터링 결과에 따라 최신 상태 정보를 보안 데이터의 상태 정보에 반영한다.
오프체인 데이터 상태 관리부(120)는 오프체인 데이터 연결 관리부(130)와 연동하여 실시간으로 보안 데이터의 오프체인 기록/연결 상태를 모니터링하고, 모니터링 결과에 따른 상태 정보를 생성할 수 있다.
보안 데이터의 상태 정보는 복수의 항목으로 구성되며, 복수의 항목은 보안 고유번호, BlockNo, Txid, State, Whether을 포함한다.
BlockNo은 블록체인 기록후 반환되는 블록체인 블록번호가 기록된다.
Txid는 블록체인 기록후 반환되는 블록체인 트랜잭션이 기록된다.
BlockNo와 Txid에 기록되는 정보를 통해 보안 데이터가 아닌 블록체인 온체인 플랫폼(400)에 기록된 온체인 데이터에 대한 정보도 오프체인 데이터 상태 관리부(120)에서 관리할 수 있다. 즉, 오프체인 데이터 상태 관리부(120)는 블록체인 온체인 플랫폼(400)으로부터 비보안 데이터의 온체인 기록후 블록번호와 트랜잭션 해시를 전달받아 이를 각각 BlockNo와 Txid에 기록함으로써, 실제 블록체인에 기록된 데이터를 확인할 수 있다.
State는 보안 데이터의 상태 변화가 기록된다. 상태 변화는 보안 데이터의 등록 상태를 나타내는 설정값(I, Insert), 보안 데이터의 수정 상태를 나타내는 설정값(U, Update), 보안 데이터의 삭제 상태를 나타내는 설정값(D, Delete)을 포함한다. 오프체인 데이터 상태 관리부(120)는 오프체인 데이터 저장 관리부(110)로부터 보안 고유번호로 식별되는 보안 데이터의 등록, 수정, 삭제 여부를 수신하고, 그에 따른 보안 데이터의 상태를 나타내는 설정값(I, D, U)을 State에 기록한다.
Whether는 보안 데이터간 상호 연결 여부를 나타내는 설정값이 기록된다. Whether는 오프체인 블록에 보안 데이터가 저장되어 정상적으로 연결되었을 경우, 정상 연결 상태를 나타내는 설정값(Y), 미연결 상태를 나타내는 설정값(N)이 기록된다. 오프체인 데이터 상태 관리부(120)는 오프체인 데이터 연결 관리부(130)로부터 각 보안 데이터의 오프체인 블록 간 연결 유무를 수신하고, 그에 따른 연결 상태를 나타내는 설정값(Y, N)을 Whether에 기록한다.
오프체인 데이터 상태 관리부(120)는 오프체인 데이터 연결 관리부(130)로부터 기록 대상인 보안 데이터의 오프체인 블록으로부터 이전 튜플(TuplePrevious) 항목의 기록을 확인한 후, 확인 내용에 따라 설정값(Y 또는 N)을 Whether에 기록할 수 있다.
오프체인 데이터 연결 관리부(130)는 오프체인 데이터 저장 관리부(110)로부터 전달되는 보안 데이터에 대한 오프체인 블록을 생성한다. 오프체인 데이터 연결 관리부(130)는 상호 연결되는 구조의 오프체인 블록들을 저장 및 관리하는 저장소를 구비할 수 있다.
오프체인 데이터 연결 관리부(130)는 현재 요청된 보안 데이터에 대하여 생성한 제1 오프체인 블록(#1001)(1301)을 이전에 생성한 제2 오프체인 블록(#1002)(1302)과 상호 연결시킨다.
각각의 오프체인 블록(1301, 1302, 1303)은 복수의 항목을 포함하고, 복수의 항목은 튜플(Tuple) 고유번호, 보안 고유번호, Division, 튜플 데이터(TupleData), 이전튜플(TuplePrevious)을 포함한다.
튜플(Tuple) 고유번호는 보안 데이터 상호 연결시 부여되는 고유번호로서, 오프체인 블록의 식별자라 할 수 있다.
보안 고유번호는 오프체인 데이터 저장 관리부(110)로부터 전달된다.
Division는 오프체인 데이터 저장 관리부(110)에 보안 데이터의 존재 유무에 따른 설정값(1, 0)이 기록된다. 오프체인 데이터 저장 관리부(110)에 보안 데이터가 존재하는 경우, Division는 존재를 나타내는 설정값(1)이 기록된다. 오프체인 데이터 저장 관리부(110)에 보안 데이터가 없으면, Division는 비존재를 의미하는 설정값(0)이 기록된다. 이때, 보안 데이터가 수정된 경우, Division는 이전 값은 존재하지 않는 데이터 상태를 의미하는 설정값(0)이 기록된다.
상태 변화(수정/삭제)가 발생한 보안 데이터는 가장 최신의 보안 데이터만 정합성 검증 대상이 된다. 상태 변화(수정/삭제) 전의 데이터는 오프체인에 존재하지 않기 때문에 데이터 검증이 불가능하기 때문이다. 상태 변화에 따른 오프체인(Off-chain)에 보안 데이터의 존재 여부를 구분하기 위해 Division 항목으로 구분을 하며 값이 '0'인 경우 보안 데이터가 존재하지 않은 상태를 말하며, 값이 '1'로 설정된 보안 데이터만 정합성 검증 대상이 된다.
튜플데이터(TupleData)는 보안 정보 테이블의 한 Row(튜플)의 보안 데이터에 대한 해시 연산을 통해 산출된 해시값이 기록된다. 예를들어, 보안 데이터는 의료 정보, 개인 정보, 그밖에 민감 정보 등을 포함할 수 있다.
이전튜플(TuplePrevious)은 보안 데이터간(또는 오프체인 블록간) 상호 연결을 나타내는 값이 기록된다.
해시는 단방향 암호화 알고리즘으로 복호화가 불가능하고, 제3자에게 누출되더라도 확인이 거의 불가능하지만, 오프체인(Off-chain)에서 보안성을 극대화하고자 도 3 및 도 4와 같이 해시 연산 동작이 이루어진다.
도 3을 참조하면, 오프체인 데이터 연결 관리부(130)는 보안 고유번호, 튜플의 모든 보안 정보, 그리고 Salt값을 조합하고, 조합 데이터에 대한 암호화를 수행한다. 여기서, Salt값은 임의의 랜덤값을 의미한다.
오프체인 데이터 연결 관리부(130)는 암호화 데이터에 대한 Key Stretching Hash 연산을 통해 해시값(=Key Stretching Hash(암호화(보안고유번호+보안정보-1+보안정보-2+...+Salt값)))을 산출한다. 여기서, Key Stretching Hash는 적어도 2번 이상의 해시 함수(예, SHA256) 연산을 포함할 수 있다.
오프체인 데이터 연결 관리부(130)는 산출한 해시값을 기록 대상인 보안 데이터의 오프체인 블록(#1001)(1301)의 튜플데이터(TupleData)에 기록한다.
도 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)에 기록한다.
이전 오프체인 블록(#1002)(1302)의 이전튜플(TuplePrevious)에는 이전 오프체인 블록(#1002)(1302) 보다 이전에 생성된 오프체인 블록(#1003)(1303)으로부터 추출한 데이터들에 대한 해시값이 기록되어 있다. 즉, 오프체인 데이터 연결 관리부(130)는 오프체인 블록(#1003)(1303)으로부터 튜플 고유번호, 튜플데이터(TupleData)에 기록된 값, 이전튜플(TuplePrevious)에 기록된 값을 추출한다. 오프체인 데이터 연결 관리부(130)는 오프체인 블록(#1003)(1303)으로부터 추출한 값들과 Salt값을 조합하고, 조합 데이터에 암호화를 수행한다.
오프체인 데이터 연결 관리부(130)는 암호화 데이터에 대해 Key Stretching Hash 연산을 통해 해시값(=Key Stretching Hash(암호화(Tuple고유번호+TupleData+TuplePrevious+...+Salt값)))을 산출한다. 오프체인 데이터 연결 관리부(130)는 산출한 해시값을 보안 데이터의 오프체인 블록(#1002)(1302)의 이전튜플(TuplePrevious)에 기록한다.
이와 같이, 이전튜플(TuplePrevious)에는 이전 오프체인 블록의 데이터가 기록됨으로써, 오프체인 블록들(1301, 1302, 1303) 간에 상호 연결되는 구조가 형성된다. 따라서, 온체인(On-chain)에서 제한적으로 저장하지 못한 민감한 정보까지 오프-체인(Off-chain)내에 모두 해시(Hash)화하여 저장함으로써, 보안 데이터의 무결성을 보장하고 정합성 검증을 통해 안정성을 높일 수 있다.
오프체인 블록(1301, 1302, 1303)의 튜플데이터(TupleData)와 이전튜플(TuplePrevious)에는 클라이언트 단말(200)로부터 저장이 요청된 모든 보안 데이터가 해시(Hash)화 되어 기록되어 있다.
튜플데이터(TupleData)와 이전튜플(TuplePrevious)는 보안 데이터의 무결성을 보장하고, 정합성 검증을 통해 보안 데이터의 안정성을 높이는 용도로 이용된다. 오프체인 데이터 검증부(140)는 튜플데이터(TupleData)에 기록된 값, 이전튜플(TuplePrevious)에 기록된 값에 대한 정합성 검증을 수행한다.
오프체인 데이터 검증부(140)는 현재 요청된 보안 데이터에 대하여 연산한 해시값을 현재 오프체인 블록(#1001)(1301)의 튜플데이터(TupleData)에 기록된 해시값과 비교하여 일치 여부를 판단하는 정합성 검증을 수행한다.
오프체인 데이터 검증부(140)는 이전 오프체인 블록(#1002)(1302)으로 추출한 튜플 고유번호, 튜플데이터(TupleData)에 기록된 값, 이전튜플(PreviousTuple)에 기록된 값을 조합 및 암호화하여 해시값을 산출한다. 오프체인 데이터 검증부(140)는 산출한 해시값을 현재 오프체인 블록(#1001)(1301)의 이전 튜플(PreviousTuple)에 기록된 해시값과 비교하여 일치 여부를 판단하는 정합성 검증을 수행한다.
오프체인 데이터 검증부(140)는 보안 고유번호 또는 튜플 고유번호로 식별되는 보안 데이터의 정합성 검증 결과를 저장 및 관리하기 위한 저장소를 구비할 수 있다.
도 6은 실시예에 따른 보안 데이터 관리 방법을 설명하는 흐름도로서, 도 1 ~ 도 5에서 설명한 구성 요소와 연계하여 설명한다.
도 6을 참고하면, 오프체인 데이터 저장 관리부(110)는 클라이언트 단말(200)로부터 현재 시점의 보안 데이터, 즉, 제1 보안 데이터를 수신한다(S101).
오프체인 데이터 저장 관리부(110)는 제1 보안 데이터에 보안 고유번호를 할당한다(S102).
오프체인 데이터 저장 관리부(110)는 S102에서 할당한 보안 고유번호를 오프체인 데이터 상태 관리부(120)에 공유한다(S103).
오프체인 데이터 저장 관리부(110)는 오프체인 데이터 연결 관리부(130)에게 보안 고유번호 및 제1 보안 데이터를 전달하여 데이터 기록을 요청한다(S104).
오프체인 데이터 저장 관리부(110)는 S104에서 요청된 제1 보안 데이터에 대한 오프체인 블록을 생성한다(S105).
오프체인 데이터 저장 관리부(110)는 데이터 연결 관리 동작, 즉, 도 3 및 도 4에서 설명한 동작을 수행한다(S106).
오프체인 데이터 저장 관리부(110)는 오프체인 데이터 상태 관리부(120)와 데이터 연결 관리 상태 정보를 공유한다(S107). S107 과정에서 제1 보안 데이터에 대한 상태 정보의 Whether값이 설정될 수 있다.
오프체인 데이터 저장 관리부(110)는 제1 보안 데이터에 대한 상태 정보를 생성 및 저장한다(S108). S108은 S103 이후 수행될 수도 있고, S107 이후 수행될 수도 있으며, 특정 단계 이후 동작으로 제한받지는 않는다.
오프체인 데이터 저장 관리부(110)는 오프체인 데이터 저장 관리부(110)로부터 제1 보안 데이터에 대한 변경, 삭제와 같은 업데이트가 확인(S109)되면, 오프체인 데이터 연결 관리부(130)와 연동하여 업데이트된 데이터에 대한 연결 관리 동작을 수행하고, 상태 정보에 반영한다(S110).
도 7은 실시예에 따른 오프체인 데이터 연결 관리부의 동작을 설명하는 순서도로서, 도 1 ~ 도 5에서 설명한 구성 요소와 연계하여 설명한다.
이때, 도 7은 도 6의 S104 이후에 수행될 수 있다.
도 7을 참고하면, 오프체인 데이터 연결 관리부(130)는 클라이언트 단말(200)로부터 수신한 제1 보안 데이터에 대한 제1 오프체인(Off-chain) 블록(Block)을 생성한다(S201).
오프체인 데이터 연결 관리부(130)는 제1 보안 데이터의 보안 고유번호, 모든 보안 정보, 그리고 Salt값을 조합하고, 조합 데이터에 대한 암호화를 수행한다(S202).
오프체인 데이터 연결 관리부(130)는 S202의 암호화 데이터에 대한 해시 연산을 수행하고(S203), 해시 연산값을 제1 오프체인 블록의 튜플데이터(TupleData) 항목에 기록한다(S204).
오프체인 데이터 연결 관리부(130)는 제1 오프체인 블록보다 이전에 생성된 제2 오프체인 블록에 저장된 데이터들, 즉, 튜플 고유번호, 튜플데이터 항목의 값, 이전튜플 항목의 값들 및 Salt값을 조합하고, 조합 데이터에 대한 암호화 후 해시 연산을 수행한다(S205).
오프체인 데이터 연결 관리부(130)는 S205에서 연산된 해시값을 제1 오프체인 블록의 이전튜플 항목에 기록한다(S206).
도 8은 실시예에 따른 오프체인 데이터 상태 관리부의 동작을 설명하는 순서도로서, 도 1 ~ 도 5에서 설명한 구성 요소와 연계하여 설명한다.
이때, 도 8은 도 6에서 S108 동작 및/또는 S110의 상태 정보 적용을 설명한다.
도 8을 참고하면, 오프체인 데이터 상태 관리부(120)는 도 6의 S102에서 제1 보안 데이터에 할당된 보안 고유번호로 식별되는 상태 정보를 생성한다(S301).
오프체인 데이터 상태 관리부(120)는 오프체인 데이터 연결 관리부(130)로부터 확인된 제1 보안 데이터에 대한 제1 오프체인 블록의 데이터 연결 동작 후 오프체인 블록의 연결을 나타내는 설정값을 상태 정보에 기록한다(S302).
도 9는 한 실시예에 따른 오프체인 데이터 검증부의 동작을 설명하는 순서도로서, 도 1 ~ 도 5에서 설명한 구성 요소와 연계하여 설명한다.
이때, 도 9는 도 6의 S108 이후의 동작일 수 있다.
도 9를 참고하면, 오프체인 데이터 검증부(140)는 검증 대상인 보안 데이터에 대한 해시 연산을 통해 해시값을 산출한다(S401).
오프체인 데이터 검증부(140)는 검증 대상인 보안 데이터의 오프체인 블록으로부터 튜플데이터(TupleData) 항목에 기록된 해시값을 추출한다(S402).
오프체인 데이터 검증부(140)는 S401에서 산출한 해시값을 S402에서 추출한 해시값과 비교하여 일치 여부를 판단하는 정합성 검증을 수행한다(S403).
도 10은 다른 실시예에 따른 오프체인 데이터 검증부의 동작을 설명하는 순서도로서, 도 1 ~ 도 5에서 설명한 구성 요소와 연계하여 설명한다.
이때, 도 10은 도 6의 S108 이후의 동작일 수 있다.
도 10을 참고하면, 오프체인 데이터 검증부(140)는 검증 대상 보안 데이터의 제1 오프체인 블록 이전의 제2 오프체인 블록의 튜플데이터(TupleData) 항목에 기록된 값, 제2 오프체인 블록의 이전 튜플(PreviousTuple) 항목에 기록된 값, 그리고 제2 오프체인 블록의 튜플 고유번호 및 Salt값을 조합하고, 조합 데이터의 암호화후 해시값을 연산한다(S501).
오프체인 데이터 검증부(140)는 제1 오프체인 블록으로부터 이전 튜플(PreviousTuple) 항목에 기록된 해시값을 추출한다(S502).
오프체인 데이터 검증부(140)는 S501에서 연산한 해시값을 S502에서 추출한 해시값과 비교하여 일치 여부를 판단하는 정합성 검증을 수행한다(S503).
한편, 도 11은 한 실시예에 따른 컴퓨팅 장치의 구성도이다.
도 11을 참고하면, 도 1 ~ 10에서 설명한 블록체인 오프체인 시스템(100)은 적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치(500)일 수 있다.
컴퓨팅 장치(500)는 하나 이상의 프로세서(510), 프로세서(510)에 의하여 수행되는 프로그램을 로드하는 메모리(520), 프로그램 및 각종 데이터를 저장하는 스토리지(530), 통신 인터페이스(540), 그리고 이들을 연결하는 버스(550)를 포함할 수 있다. 이외에도, 컴퓨팅 장치(500)는 다양한 구성 요소가 더 포함될 수 있다. 프로그램은 메모리(520)에 로드될 때 프로세서(510)로 하여금 본 개시의 다양한 실시예에 따른 방법/동작을 수행하도록 하는 명령어들(instruction)을 포함할 수 있다. 즉, 프로세서(510)는 명령어들을 실행함으로써, 본 개시의 다양한 실시예에 따른 방법/동작들을 수행할 수 있다. 명령어는 기능을 기준으로 묶인 일련의 컴퓨터 판독가능 명령어들로서 컴퓨터 프로그램의 구성 요소이자 프로세서에 의해 실행되는 것을 가리킨다.
프로세서(510)는 도 1 ~ 도 10에서 설명한 오프체인 데이터 저장 관리부(110), 오프체인 데이터 상태 관리부(120), 오프체인 데이터 연결 관리부(130) 및 오프체인 데이터 검증부(140)의 동작을 수행하도록 하는 명령어들을 메모리(520)에 로드하여 실행할 수 있다.
프로세서(510)는 컴퓨팅 장치(500)의 각 구성의 전반적인 동작을 제어한다. 프로세서(510)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 개시의 기술 분야에 잘 알려진 임의의 형태의 프로세서 중 적어도 하나를 포함하여 구성될 수 있다. 또한, 프로세서(510)는 본 개시의 다양한 실시예들에 따른 방법/동작을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다.
메모리(520)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(520)는 본 개시의 다양한 실시예들에 따른 방법/동작을 실행하기 위하여 스토리지(530)로부터 하나 이상의 프로그램을 로드할 수 있다. 메모리(520)는 RAM과 같은 휘발성 메모리로 구현될 수 있을 것이나, 본 개시의 기술적 범위는 이에 한정되지 않는다.
스토리지(530)는 프로그램을 비임시적으로 저장할 수 있다. 스토리지(530)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 개시가 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
통신 인터페이스(540)는 컴퓨팅 장치(500)의 유무선 통신을 지원한다. 이를 위해, 통신 인터페이스(540)는 본 개시의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.
버스(550)는 컴퓨팅 장치(500)의 구성 요소 간 통신 기능을 제공한다. 버스(550)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
이상에서 설명한 본 개시의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 개시의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있다.
이상에서 본 개시의 실시예에 대하여 상세하게 설명하였지만 본 개시의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 개시의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 개시의 권리범위에 속하는 것이다.
Claims (13)
- 적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치가 보안 데이터를 관리하는 방법으로서,
클라이언트 단말로부터 수신한 제1 보안 데이터에 대한 제1 오프체인(Off-chain) 블록(Block)을 생성하는 단계,
상기 제1 보안 데이터에 대한 해시(Hash) 연산을 통해 제1 해시값을 산출하고 상기 제1 해시값을 상기 제1 오프체인 블록의 튜플데이터(TupleData) 항목에 기록하는 단계,
상기 제1 오프체인 블록보다 이전에 생성된 제2 오프체인 블록에 저장된 데이터들에 대한 해시 연산을 통해 제2 해시값을 산출하고 상기 제2 해시값을 상기 제1 오프체인 블록의 이전 튜플(PreviousTuple) 항목에 기록하는 단계, 그리고
보안 고유번호로 식별되는 상기 제1 보안 데이터에 대한 상태 정보를 생성하여 저장하는 단계를 포함하고,
상기 상태 정보는,
보안 데이터의 등록, 수정, 삭제 중 적어도 하나를 포함하는 상태 변화 정보, 그리고 보안 데이터간 상호 연결 여부를 나타내는 설정값을 포함하며,
상기 설정값은,
상기 이전 튜플 항목에 기록된 정보를 기초로 기록되며,
오프체인 블록에 보안 데이터가 저장되어 정상적으로 연결되었는지 여부에 따른 정상 연결 상태를 나타내는 설정값 및 미연결 상태를 나타내는 설정값
을 포함하는, 방법. - 제1항에서,
상기 이전 튜플(PreviousTuple) 항목에 기록하는 단계는,
상기 제2 오프체인 블록의 튜플데이터 항목에 저장된 값 및 상기 제2 오프체인 블록의 이전 튜플 항목에 저장된 값을 조합하고, 조합한 값에 대한 해시 연산을 통해 상기 제2 해시값을 산출하고,
상기 제2 오프체인 블록의 이전 튜플 항목에는,
상기 제2 오프체인 블록보다 이전에 생성된 제3 오프체인 블록에 저장된 데이터들에 대한 해시 연산을 통해 산출된 제3 해시값이 기록되어 있는, 방법. - 제2항에서,
상기 이전 튜플(PreviousTuple) 항목에 기록하는 단계는,
상기 조합한 값에 상기 제2 오프체인 블록의 튜플 고유번호를 추가하여 상기 해시 연산을 수행하고,
상기 튜플 고유번호는,
오프체인 블록에 고유하게 할당되는 식별자인, 방법. - 제1항에서,
상기 제1 오프체인 블록 및 상기 제2 오프체인 블록은,
오프체인 블록에 고유하게 할당되는 식별자인 튜플 고유번호,
보안 데이터에 고유하게 할당되는 식별자인 보안 고유번호,
사용자 단말로부터 수신한 보안 데이터를 관리하는 보안 데이터 관리 저장소에 보안 데이터의 존재 유무에 따른 설정값이 기록되는 Division 항목,
상기 튜플 항목, 그리고
상기 이전 튜플 항목
을 포함하는, 방법. - 삭제
- 제1항에서,
상기 생성하는 단계 이전에,
클라이언트 단말로부터 제1 보안 데이터를 수신하는 단계, 그리고
상기 제1 보안 데이터에 보안 고유번호를 할당하는 단계를 더 포함하고,
상기 보안 고유번호는,
상기 제1 오프체인 블록에 포함되고, 상기 제1 보안 데이터에 대한 상태 정보를 식별하는데 사용되는, 방법. - 삭제
- 제1항에서,
상기 튜플데이터(TupleData) 항목에 기록하는 단계 이후,
상기 제1 보안 데이터에 대하여 연산한 해시값을 상기 제1 오프체인 블록의 튜플데이터(TupleData) 항목에 기록된 해시값과 비교하여 일치 여부를 판단하는 무결성 검증을 수행하는 단계
를 더 포함하는, 방법. - 제1항에서,
상기 이전 튜플(PreviousTuple) 항목에 기록하는 단계 이후,
상기 제2 오프체인 블록의 튜플데이터(TupleData) 항목에 기록된 값, 그리고 상기 제2 오프체인 블록의 이전 튜플(PreviousTuple) 항목에 기록된 값에 대한 해시값을 연산하는 단계, 그리고
연산한 해시값을 상기 제1 오프체인 블록의 이전 튜플(PreviousTuple) 항목에 기록된 해시값과 비교하여 일치 여부를 판단하는 무결성 검증을 수행하는 단계
를 더 포함하는, 방법. - 보안 데이터를 관리하는 블록 체인(block chain) 오프체인(Off-chain) 시스템으로서,
클라이언트 단말로부터 오프체인 관리 대상인 제1 보안 데이터를 수신하는 오프체인 데이터 저장 관리부,
상기 제1 보안 데이터에 대한 제1 오프체인 블록을 생성하고, 제1 오프체인 블록을 상기 제1 보안 데이터 이전에 수신된 제2 보안 데이터의 제2 오프체인 블록과 연결시키는 오프체인 데이터 연결 관리부, 그리고
상기 오프체인 데이터 저장 관리부가 수신하는 보안 데이터의 상태 정보 및 오프체인 블록들 간의 연결 상태를 관리하는 오프체인 데이터 상태 관리부를 포함하고,
상기 오프체인 데이터 상태 관리부는,
상기 제1 오프체인 블록의 이전 튜플 항목에 기록된 정보를 기초로, 보안 고유번호로 식별되는 상기 제1 보안 데이터에 대한 상태 정보를 생성하여 저장하고,
상기 상태 정보는,
보안 데이터의 등록, 수정, 삭제 중 적어도 하나를 포함하는 상태 변화 정보, 그리고 보안 데이터간 상호 연결 여부를 나타내는 설정값을 포함하며,
상기 설정값은,
상기 이전 튜플 항목에 기록된 정보를 기초로 기록되며,
오프체인 블록에 보안 데이터가 저장되어 정상적으로 연결되었는지 여부에 따른 정상 연결 상태를 나타내는 설정값 및 미연결 상태를 나타내는 설정값
을 포함하는, 블록체인 오프체인 시스템. - 제10항에서,
상기 오프체인 데이터 연결 관리부는,
상기 제1 보안 데이터에 대한 제1 오프체인(Off-chain) 블록(Block)을 생성하고, 상기 제1 보안 데이터에 대한 해시(Hash) 연산을 통해 산출한 제1 해시값을 상기 제1 오프체인 블록의 튜플데이터(TupleData) 항목에 기록하고, 상기 제1 오프체인 블록보다 이전에 생성된 제2 오프체인 블록으로부터 추출한 이전 데이터들에 대한 해시 연산을 통해 산출한 제2 해시값을 상기 제1 오프체인 블록의 이전 튜플(PreviousTuple) 항목에 기록하며,
상기 제2 해시값은,
상기 제2 오프체인 블록의 튜플데이터(TupleData) 항목에 기록된 해시값, 그리고 상기 제2 오프체인 블록의 이전 튜플(PreviousTuple) 항목에 기록된 해시값을 토대로 생성되는, 블록체인 오프체인 시스템. - 삭제
- 제11항에서,
상기 제1 보안 데이터에 대하여 연산한 해시값을 상기 제1 오프체인 블록의 튜플데이터(TupleData) 항목에 기록된 해시값과 비교하여 일치 여부를 판단하는 무결성 검증과, 상기 제2 오프체인 블록의 튜플데이터(TupleData) 항목에 기록된 값, 그리고 상기 제2 오프체인 블록의 이전 튜플(PreviousTuple) 항목에 기록된 값에 대하여 연산한 해시값을 상기 제1 오프체인 블록의 이전 튜플(PreviousTuple) 항목에 기록된 해시값과 비교하여 일치 여부를 판단하는 무결성 검증을 수행하는 오프체인 데이터 검증부
를 더 포함하는, 블록체인 오프체인 시스템.
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 (ko) | 2023-05-31 |
KR102656660B1 true KR102656660B1 (ko) | 2024-04-11 |
Family
ID=86543874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210188739A Active KR102656660B1 (ko) | 2021-11-24 | 2021-12-27 | 블록체인 기술을 이용한 보안 데이터 관리 방법 및 오프체인 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102656660B1 (ko) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101977159B1 (ko) * | 2018-12-28 | 2019-06-21 | (주)그린아이티코리아 | 경량화된 보안 방식을 지원하는 보안 서비스 제공 장치 및 방법 |
JP2020182214A (ja) * | 2019-04-24 | 2020-11-05 | 國際信任機器股▲ふん▼有限公司 | ブロックチェーンおよびオフチェーン装置の連携のための検証システムおよび方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110727712B (zh) * | 2019-10-15 | 2021-06-04 | 腾讯科技(深圳)有限公司 | 基于区块链网络的数据处理方法、装置、电子设备及存储介质 |
KR102331451B1 (ko) * | 2020-03-16 | 2021-11-29 | 이화여자대학교 산학협력단 | 디지털 콘텐츠 거래를 위한 블록체인 네트워크 시스템 및 디지털 콘텐츠 거래 방법 |
-
2021
- 2021-12-27 KR KR1020210188739A patent/KR102656660B1/ko active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101977159B1 (ko) * | 2018-12-28 | 2019-06-21 | (주)그린아이티코리아 | 경량화된 보안 방식을 지원하는 보안 서비스 제공 장치 및 방법 |
JP2020182214A (ja) * | 2019-04-24 | 2020-11-05 | 國際信任機器股▲ふん▼有限公司 | ブロックチェーンおよびオフチェーン装置の連携のための検証システムおよび方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20230076699A (ko) | 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 | |
JP6775086B2 (ja) | ブロックチェーン監視及び管理 | |
CN109033405B (zh) | 维护区块链的方法和装置、服务器和计算机可读存储介质 | |
US10762479B2 (en) | Method and system for processing blockchain-based real-time transaction | |
US20210103581A1 (en) | Blockchain based data management system and method thereof | |
KR102002509B1 (ko) | 공증센터를 포함하는 프라이빗 블록체인 시스템 및 이의 공증방법 | |
US20180293557A1 (en) | Method of charging electronic currency automatically based on blockchain and system thereof | |
KR101986081B1 (ko) | 블록체인에서 특정 노드들간 블록을 공유 및 검증하는 방법 | |
TW201842757A (zh) | 區塊鏈上之快速分散式共識 | |
US20210176251A1 (en) | Access Control Method and Industrial Network Using a Blockchain for Access Control | |
WO2021018088A1 (zh) | 可信认证方法,网络设备、系统及存储介质 | |
Kumar et al. | Enhancing security mechanisms for healthcare informatics using ubiquitous cloud | |
CN108923932A (zh) | 一种去中心化协同验证模型及验证算法 | |
CN110119390B (zh) | 基于区块链的金融信息外包管理系统 | |
CN112651001A (zh) | 访问请求的鉴权方法、装置、设备及可读存储介质 | |
KR20210142983A (ko) | 오프-체인 데이터 공유 시스템 및 그 방법 | |
US12081675B2 (en) | Content use system, permission terminal, browsing terminal, distribution terminal, and content use program | |
CN108846297A (zh) | 一种在具有对等节点的区块链网络上分发和检索数据的方法 | |
KR102564106B1 (ko) | 개인정보 보호를 위해 개선된 스마트 컨트랙트 기반의 지능형 중개를 위한 장치 및 방법 | |
US20200160943A1 (en) | Security system and node device used in same | |
KR102656660B1 (ko) | 블록체인 기술을 이용한 보안 데이터 관리 방법 및 오프체인 시스템 | |
JP2023152299A (ja) | データ受け渡しシステム、データ受け渡し方法 | |
KR102204428B1 (ko) | 개인정보 관리를 위한 블록체인 시스템 | |
EP4339864A1 (en) | Data processing method of trusted execution environment using smart contract |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20211227 |
|
PA0201 | Request for examination | ||
PG1501 | Laying open of application | ||
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20230614 Patent event code: PE09021S01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20240126 |
|
PG1601 | Publication of registration |