KR102337673B1 - 데이터 열람 검증 시스템 및 그 방법 - Google Patents

데이터 열람 검증 시스템 및 그 방법 Download PDF

Info

Publication number
KR102337673B1
KR102337673B1 KR1020200087954A KR20200087954A KR102337673B1 KR 102337673 B1 KR102337673 B1 KR 102337673B1 KR 1020200087954 A KR1020200087954 A KR 1020200087954A KR 20200087954 A KR20200087954 A KR 20200087954A KR 102337673 B1 KR102337673 B1 KR 102337673B1
Authority
KR
South Korea
Prior art keywords
data
verification
module
fingerprint
record
Prior art date
Application number
KR1020200087954A
Other languages
English (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 (주)휴먼스케이프
Priority to KR1020200087954A priority Critical patent/KR102337673B1/ko
Priority to US17/068,499 priority patent/US11645406B2/en
Application granted granted Critical
Publication of KR102337673B1 publication Critical patent/KR102337673B1/ko

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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • 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
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/16Program or content traceability, e.g. by watermarking
    • 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
    • G06K9/00006
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2133Verifying human interaction, e.g., Captcha

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 데이터 열람 검증 시스템 및 그 방법을 개시한다. 상기 데이터 열람 검증 시스템은, 클라이언트로부터 원본 데이터에 대한 데이터 열람 요청을 수신하고, 클라이언트에게 제1 검증 데이터를 회신하는 서비스 모듈, 상기 서비스 모듈로부터 상기 원본 데이터에 대응하는 제1 데이터 고유값을 수신하고, 상기 제1 데이터 고유값에 대응하는 제1 검증 지문을 생성하는 검증 모듈, 상기 제1 검증 지문을 수신하여 상기 원본 데이터에 주입하여 상기 제1 검증 데이터를 생성하고, 상기 제1 검증 데이터를 해싱(hashing)하여 제1 무결성 값을 생성하는 데이터 모듈; 및 상기 제1 데이터 고유값, 상기 제1 검증 지문, 상기 제1 무결성 값을 포함하는 데이터 열람 정보를 상기 원본 데이터로 식별되는 하나의 레코드에 저장하는 검증 데이터베이스를 포함한다.

Description

데이터 열람 검증 시스템 및 그 방법{System for verifying data access and Method thereof}
본 발명은 데이터 열람 검증 시스템 및 그 방법에 관한 것이다. 구체적으로, 본 발명은 데이터 열람에 대한 검증 지문을 삽입하여 데이터를 발급하고, 이를 통해서 검증을 수행하는 시스템 및 방법에 관한 것이다.
최근에 급속도로 발전된 기술의 영향으로 전세계 어디에서나 온라인에서 데이터를 열람하는 것은 어렵지 않은 일이 되었다. 대신에, 보안이 필요한 데이터에 대한 접근을 제한하고 관리하는 일이 중요한 문제로 대두되고 있다. 특히, 특정인의 개인정보나, 환자의 의료정보와 같은 제한적으로 열람이 필요한 정보에 대해서는 열람된 후의 데이터에 대한 검증이 필요할 수 있다.
이를 위해서, 원본 데이터에 일종의 디지털 서명인 워터마크를 삽입하는 워터마킹 기술이 제안되었다. 디지털 워터마킹이란, 디지털 데이터에 워터마크(watermark)라는 특정 데이터를 삽입하고, 그 데이터 내용을 다시 추출하는 기술로 저작권 문제를 해결하는 저작권 보호 기술의 일종이다.
데이터에 대한 검증은 데이터의 진위 여부에 대한 검증을 포함할 수 있다. 즉, 누군가가 열람한 데이터를 위조 왜곡하는 경우에는 검증을 통해서 이를 판별할 수 있어야 한다. 이러한 검증 단계를 통해서, 열람된 데이터가 실제 원본 데이터와 같은 정보를 포함한다는 것을 인증할 수 있다.
또한, 데이터에 대한 검증은 데이터의 출처가 어디인지 즉, 저작권에 대한 검증을 포함할 수 있다. 즉, 데이터의 열람 권한을 가지고 있지 않은 자가 비정상적으로 데이터를 획득하는 경우에는 이를 제한할 수 있어야 한다.
이를 위해서, 데이터에 대한 열람 정보 자체를 데이터를 통해서 검증할 수 있다면, 데이터를 보유한 자는 데이터에 대한 신뢰를 가질 수 있고, 데이터의 제공자는 비정상적인 데이터 보유자를 제한할 수 있는 근거를 확보할 수 있다.
본 발명의 과제는, 데이터 열람에 대한 독립적인 검증 지문을 통해서 데이터를 검증하는 데이터 열람 검증 시스템을 제공하는 것이다.
또한, 본 발명의 다른 과제는, 데이터 열람에 대한 독립적인 검증 지문을 통해서 데이터를 검증하는 데이터 열람 검증 방법을 제공하는 것이다.
본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시예에 의해 보다 분명하게 이해될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따른 데이터 열람 검증 시스템은, 클라이언트로부터 원본 데이터에 대한 데이터 열람 요청을 수신하고, 클라이언트에게 제1 검증 데이터를 회신하는 서비스 모듈, 상기 서비스 모듈로부터 상기 원본 데이터에 대응하는 제1 데이터 고유값을 수신하고, 상기 제1 데이터 고유값에 대응하는 제1 검증 지문을 생성하는 검증 모듈, 상기 제1 검증 지문을 수신하여 상기 원본 데이터에 주입하여 상기 제1 검증 데이터를 생성하고, 상기 제1 검증 데이터를 해싱(hashing)하여 제1 무결성 값을 생성하는 데이터 모듈; 및 상기 제1 데이터 고유값, 상기 제1 검증 지문, 상기 제1 무결성 값을 포함하는 데이터 열람 정보를 상기 원본 데이터로 식별되는 하나의 레코드에 저장하는 검증 데이터베이스를 포함한다.
또한, 상기 검증 데이터베이스는 복수의 노드를 포함하고, 상기 데이터 열람 정보는 복수의 블록 체인 형태로 상기 복수의 노드에 각각 저장될 수 있다.
또한, 상기 서비스 모듈은 상기 클라이언트로부터 제2 검증 데이터 및 데이터 검증 요청을 수신하고, 이에 대한 검증 응답을 회신하고, 상기 데이터 모듈은 상기 제2 검증 데이터를 해싱하여 제2 무결성 값을 생성하고, 상기 검증 데이터베이스는 상기 제2 무결성 값에 대응하여 상기 검증 응답을 생성할 수 있다.
또한, 상기 검증 응답은 제1 검증 응답 및 제2 검증 응답을 포함하고, 상기 제1 검증 응답은 상기 제2 무결성 값에 대응하는 레코드가 있는지에 대한 응답이고, 상기 검증 데이터베이스는 상기 제2 무결성 값에 대응하는 레코드가 있는 경우 상기 제2 무결성 값에 대응하는 원본 데이터를 확인하고, 상기 데이터 모듈은 상기 원본 데이터와 상기 제2 검증 데이터를 대조하여 제2 검증 지문을 생성하고, 상기 제2 검증 응답은 상기 제2 무결성 값과 상기 제2 검증 데이터가 같은 레코드에 있는지에 대한 응답일 수 있다.
또한, 상기 데이터 열람 정보는 상기 클라이언트에 대한 조회자 정보 및 상기 데이터 열람 요청에 대응하는 요청 시각을 포함할 수 있다.
또한, 상기 검증 데이터베이스는 상기 데이터 고유값 및 상기 제1 검증 지문을 상기 원본 데이터로 식별되는 하나의 레코드에 1차 저장한 후에, 상기 제1 무결성 값을 상기 레코드에 추가적으로 2차 저장하여 갱신할 수 있다.
또한, 상기 데이터 열람 요청은 상기 원본 데이터에 대응하는 키(key) 값을 포함하는 제2 데이터 고유값을 포함하고, 상기 서비스 모듈은 상기 제2 데이터 고유값에 대응하는 제1 데이터 고유값을 생성할 수 있다.
또한, 상기 제1 및 제2 데이터 고유값은 서로 동일한 값일 수 있다.
상기 다른 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따른 데이터 열람 검증 방법은 클라이언트로부터 원본 데이터에 대응하는 데이터 열람 요청을 수신하고, 상기 원본 데이터에 대응하는 제1 검증 지문를 임의적으로 생성하고, 상기 원본 데이터의 고유값, 상기 제1 검증 지문, 상기 클라이언트에 대한 조회자 정보를 제1 레코드에 저장하고, 상기 제1 검증 지문을 상기 원본 데이터에 삽입하여 제1 검증 데이터를 생성하고, 상기 제1 검증 데이터를 해싱(hashing)하여 제1 무결성 값을 생성하고, 상기 제1 무결성 값을 상기 제1 레코드에 추가로 저장하여 상기 제1 레코드를 갱신하는 것을 포함한다.
또한, 상기 클라이언트로부터 제2 검증 데이터 및 상기 제2 검증 데이터의 검증 요청을 수신하고, 상기 제2 검증 데이터를 해싱하여 제2 무결성 값을 생성하고, 상기 제2 무결성 값을 통해서 상기 제2 검증 데이터를 검증하여 상기 클라이언트에게 회신하는 것을 포함할 수 있다.
또한, 상기 제2 무결성 값을 통해서 상기 제2 검증 데이터를 검증하는 것은, 상기 제2 무결성 값이 저장된 제2 레코드가 존재하는지와 상기 제2 레코드에 대응하는 원본 데이터를 확인하고, 상기 원본 데이터와 상기 제2 검증 데이터를 대조하여 제2 검증 지문을 추출하고, 상기 제2 검증 지문과 상기 제2 무결성 값이 상기 제2 레코드에 같이 저장되어 있는지를 판단하는 것을 포함할 수 있다.
또한, 상기 제1 검증 데이터를 생성하는 것은, 상기 원본 데이터의 미리 지정된 입력 가능 위치에 상기 제1 검증 지문을 삽입하는 것을 포함할 수 있다.
또한, 상기 입력 가능 위치는 상기 원본 데이터의 데이터 타입에 따라 미리 지정될 수 있다.
또한, 상기 입력 가능 위치는 상기 원본 데이터의 비활용 영역에 위치할 수 있다.
또한, 상기 제1 레코드에 저장하는 것은, 상기 데이터 열람 요청에 대응하는 요청 시각을 상기 제1 레코드에 저장하는 것을 포함할 수 있다.
또한, 상기 제1 검증 데이터의 외형은 상기 원본 데이터의 외형과 완전히 동일한 것을 포함할 수 있다.
또한, 상기 제1 검증 데이터의 외형은 상기 원본 데이터의 외형과 서로 다른 것을 포함할 수 있다.
본 발명의 데이터 열람 검증 시스템 및 그 방법은, 각각의 데이터 열람에 대해서 독립적으로 검증이 가능하므로 데이터의 상태에 대한 세부적인 추적이 가능하다.
또한, 각 열람의 요청자의 정보와 요청 시각 등이 기록되어 데이터 열람 요청에 대한 세부적인 사항을 확인할 수 있어 데이터에 대한 관리를 세밀하게 할 수 있다.
상술한 내용과 더불어 본 발명의 구체적인 효과는 이하 발명을 실시하기 위한 구체적인 사항을 설명하면서 함께 기술한다.
도 1은 본 발명의 몇몇 실시예들에 따른 데이터 열람 검증 시스템을 설명하기 위한 개념도이다.
도 2는 도 1의 데이터 열람 검증 시스템이 원본 데이터에 검증 지문을 삽입하는 것을 세부적으로 설명하기 위한 블록도이다.
도 3은 본 발명의 몇몇 실시예들에 따른 데이터 열람 검증 시스템의 각 모듈의 동작을 나타낸 순서도이다.
도 4는 도 2의 검증 데이터베이스를 설명하기 위한 개념도이다.
도 5는 도 2의 검증 데이터베이스에 저장되는 테이블을 설명하기 위한 예시도이다.
도 6은 도 2의 데이터 모듈과 워터마킹 모듈을 설명하기 위한 블록도이다.
도 7은 도 6의 데이터 모듈과 워터마킹 모듈의 동작을 나타낸 순서도이다.
도 8은 본 발명의 몇몇 실시예들에 따른 데이터 열람 검증 시스템이 원본 데이터를 검증 데이터로 변환하는 것을 설명하기 위한 예시도이다.
도 9는 본 발명의 몇몇 실시예들에 따른 데이터 열람 검증 시스템의 주입 위치 프리셋 리스트와 입력 가능 위치를 설명하기 위한 도면이다.
도 10은 도 1의 데이터 열람 검증 시스템이 검증 데이터를 검증하는 것을 세부적으로 설명하기 위한 블록도이다.
도 11은 본 발명의 몇몇 실시예들에 따른 데이터 열람 검증 시스템이 검증 데이터를 검증하는 것에 대한 각 모듈의 동작을 나타낸 순서도이다.
도 12는 본 발명의 몇몇 실시예들에 따른 데이터 열람 검증 방법을 설명하기 위한 순서도이다.
도 13은 도 12의 주입 위치를 추출하고, 제1 검증 데이터를 생성하는 단계를 세부적으로 설명하기 위한 순서도이다.
도 14는 도 13의 입력 가능 위치를 추출하는 단계를 세부적으로 설명하기 위한 순서도이다.
도 15는 도 14의 가용 영역 리스트 중 적어도 일부를 입력 가능 위치로 추출하는 단계를 세부적으로 설명하기 위한 순서도이다.
도 16은 본 발명의 몇몇 실시예들에 따른 데이터 열람 검증 방법에서 검증 데이터를 검증하는 것을 설명하기 위한 순서도이다.
도 17은 본 발명의 실시예들에 따른 데이터 열람 검증 시스템이 구현된 전자 시스템의 블록도이다.
본 명세서 및 특허청구범위에서 사용된 용어나 단어는 일반적이거나 사전적인 의미로 한정하여 해석되어서는 아니된다. 발명자가 그 자신의 발명을 최선의 방법으로 설명하기 위해 용어나 단어의 개념을 정의할 수 있다는 원칙에 따라, 본 발명의 기술적 사상과 부합하는 의미와 개념으로 해석되어야 한다. 또한, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명이 실현되는 하나의 실시예에 불과하고, 본 발명의 기술적 사상을 전부 대변하는 것이 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 및 응용 가능한 예들이 있을 수 있음을 이해하여야 한다.
본 명세서 및 특허청구범위에서 사용된 제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. '및/또는' 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
본 명세서 및 특허청구범위에서 사용된 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서 "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해서 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.
일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 본 발명의 각 실시예에 포함된 각 구성, 과정, 공정 또는 방법 등은 기술적으로 상호 간 모순되지 않는 범위 내에서 공유될 수 있다.
이하, 도 1 내지 도 11을 참조하여, 본 발명의 몇몇 실시예들에 따른 데이터 열람 검증 시스템을 설명한다.
도 1은 본 발명의 몇몇 실시예들에 따른 데이터 열람 검증 시스템을 설명하기 위한 개념도이다.
도 1을 참조하면, 본 발명의 몇몇 실시예들에 따른 데이터 열람 검증 시스템(100)은 클라이언트(10)로부터 데이터 열람 요청을 수신할 수 있다. 클라이언트(10)는 데이터 열람 요청을 전송하면서 제1 데이터 고유값(I1)을 같이 전송할 수 있다. 데이터 열람 검증 시스템(100)은 클라이언트(10)에게 제1 검증 데이터(Dv1)를 제공할 수 있다.
구체적으로, 클라이언트(10)는 데이터 열람 검증 시스템(100)으로부터 데이터의 열람 및 조회를 요청하는 조회자일 수 있다. 클라이언트(10)는 데이터 열람 검증 시스템(100)이 가지는 원본 데이터를 열람할 수 있는 정당한 권원을 가진자일 수 있다.
클라이언트(10)는 네트워크를 통해서 데이터 열람 검증 시스템(100)으로 데이터를 전송할 수 있다. 네트워크는 유선 인터넷 기술, 무선 인터넷 기술 및 근거리 통신 기술에 의한 네트워크를 포함할 수 있다. 유선 인터넷 기술은 예를 들어, 근거리 통신망(LAN, Local area network) 및 광역 통신망(WAN, wide area network) 중 적어도 하나를 포함할 수 있다.
무선 인터넷 기술은 예를 들어, 무선랜(Wireless LAN: WLAN), DLNA(Digital Living Network Alliance), 와이브로(Wireless Broadband: Wibro), 와이맥스(World Interoperability for Microwave Access: Wimax), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), IEEE 802.16, 롱 텀 에볼루션(Long Term Evolution: LTE), LTE-A(Long Term Evolution-Advanced), 광대역 무선 이동 통신 서비스(Wireless Mobile Broadband Service: WMBS) 및 5G NR(New Radio) 기술 중 적어도 하나를 포함할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
근거리 통신 기술은 예를 들어, 블루투스(Bluetooth), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association: IrDA), UWB(Ultra-Wideband), 지그비(ZigBee), 인접 자장 통신(Near Field Communication: NFC), 초음파 통신(Ultra Sound Communication: USC), 가시광 통신(Visible Light Communication: VLC), 와이 파이(Wi-Fi), 와이 파이 다이렉트(Wi-Fi Direct), 5G NR (New Radio) 중 적어도 하나를 포함할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
네트워크를 통해서 통신하는 클라이언트(10) 및 데이터 열람 검증 시스템(100)은 이동통신을 위한 기술표준 및 표준 통신 방식을 준수할 수 있다. 예를 들어, 표준 통신 방식은 GSM(Global System for Mobile communication), CDMA(Code Division Multi Access), CDMA2000(Code Division Multi Access 2000), EV-DO(Enhanced Voice-Data Optimized or Enhanced Voice-Data Only), WCDMA(Wideband CDMA), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), LTE(Long Term Evolution), LTEA(Long Term Evolution-Advanced) 및 5G NR(New Radio) 중 적어도 하나를 포함할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
클라이언트(10)는 사용자 단말기를 통해서 데이터 열람 검증 시스템(100)과 통신할 수 있다. 상기 사용자 단말기는 클라이언트(10)가 소유하는 데이터 처리 단말기를 의미할 수 있다. 사용자 단말기는 예를 들어, PC(personal computer), 워크스테이션(workstation), 데이터 센터, 인터넷 데이터 센터(internet data center(IDC)), DAS(direct attached storage) 시스템, SAN(storage area network) 시스템, NAS(network attached storage) 시스템, RAID(redundant array of inexpensive disks, or redundant array of independent disks) 시스템, 또는 모바일 장치로 구현될 수 있으나 이에 제한되는 것은 아니다.
또한, 상기 모바일 장치는 랩탑 컴퓨터(laptop computer), 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), 모바일 인터넷 장치(mobile internet device(MID)), 웨어러블 컴퓨터, 사물 인터넷(internet of things(IoT)) 장치, 만물 인터넷(internet of everything(IoE)) 장치, 드론(drone), 또는 e-북(e-book)으로 구현될 수 있으나, 이에 제한되는 것은 아니다.
제1 데이터 고유값(I1)은 클라이언트(10)가 열람을 요청하는 원본 데이터를 식별할 수 있는 값일 수 있다. 예를 들어, 제1 데이터 고유값(I1)은 원본 데이터의 키(key) 값일 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
데이터 열람 검증 시스템(100)은 클라이언트(10)로부터 제1 데이터 고유값(I1) 및 데이터 열람 요청을 수신하고, 이에 대응하여 제1 검증 데이터(Dv1)를 클라이언트(10)에게 전송할 수 있다.
이때, 데이터 열람 검증 시스템(100)이 제1 검증 데이터(Dv1)를 클라이언트(10)에게 전송하는 것도 상기 네트워크를 통할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
제1 검증 데이터(Dv1)는 클라이언트(10)가 요청한 데이터로서, 원본 데이터에 검증을 위한 검증 지문이 포함된 데이터일 수 있다. 제1 검증 데이터(Dv1)는 원본 데이터(Do)와 검증 지문을 제외하고는 동일한 데이터일 수 있다.
도 2는 도 1의 데이터 열람 검증 시스템이 원본 데이터에 검증 지문을 삽입하는 것을 세부적으로 설명하기 위한 블록도이다.
도 1 및 도 2를 참조하면, 데이터 열람 검증 시스템(100)은 서비스 모듈(110), 데이터 모듈(120), 데이터 웨어하우스(130), 검증 모듈(140), 검증 데이터베이스(150) 및 워터마킹 모듈(160)을 포함할 수 있다.
서비스 모듈(110)은 클라이언트(10)와 직접 통신하는 모듈일 수 있다. 서비스 모듈(110)은 클라이언트(10)로부터 제1 데이터 고유값(I1)을 수신할 수 있다. 서비스 모듈(110)은 제1 데이터 고유값(I1)과 같이 데이터 열람 요청을 수신할 수 있다. 서비스 모듈(110)은 클라이언트(10)에게 데이터 열람 요청에 대응하여 제1 검증 데이터(Dv1)를 전송할 수 있다.
데이터 모듈(120)은 워터마킹 모듈(160)과 같이 원본 데이터(Do)로부터 입력 가능 위치(Li)를 도출하고, 제1 검증 지문(Fp1)을 원본 데이터(Do)에 삽입하여 제1 검증 데이터(Dv1)를 생성할 수 있다. 또한, 데이터 모듈(120)은 제1 검증 데이터(Dv1)의 제1 무결성 값(H1)을 생성할 수 있다. 또한, 데이터 모듈(120)은 데이터 웨어하우스(130)와 직접 통신하는 모듈일 수 있다.
구체적으로, 데이터 모듈(120)은 서비스 모듈(110)로부터 제1 데이터 고유값(I1) 및 제1 검증 지문(Fp1)을 수신할 수 있다. 데이터 모듈(120)은 서비스 모듈(110)로 원본 데이터(Do), 제1 검증 데이터(Dv1) 및 제1 무결성 값(H1)을 전송할 수 있다.
이때, 원본 데이터(Do)는 클라이언트(10)의 데이터 열람 요청에 대응하는 데이터이자, 제1 데이터 고유값(I1)에 의해서 식별되는 데이터일 수 있다. 원본 데이터(Do)는 예를 들어, 이미지, 동영상 또는 문서와 같이 다양한 형태의 데이터 중 적어도 하나일 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
제1 검증 지문(Fp1)은 검증 모듈(140)에 의해서 생성될 수 있다. 제1 검증 지문(Fp1)은 데이터 모듈(120)에 의해서 원본 데이터(Do)에 삽입되어 제1 검증 데이터(Dv1)를 생성하게 할 수 있다. 제1 검증 지문(Fp1)은 원본 데이터(Do)의 비활용 영역에 삽입되어 원본 데이터(Do)의 내용을 훼손하지 않고 제1 검증 데이터(Dv1)를 생성하게 할 수 있다.
이때, 제1 검증 데이터(Dv1)는 원본 데이터(Do)의 외형의 일부를 변화시킬 수도 있고, 그렇지 않을 수도 있다. 즉, 원본 데이터(Do)의 데이터 타입에 따라서, 원본 데이터(Do)의 외형을 전혀 변화시키지 않는 부분이 존재할 수도 있고, 그렇지 않을 수도 있다. 따라서, 제1 검증 데이터(Dv1)는 원본 데이터(Do)와 외형이 완전히 동일할 수 있다. 또는, 제1 검증 데이터(Dv1)는 원본 데이터(Do)와 외형이 서로 다를 수도 있다.
다만, 어느 경우에도 제1 검증 데이터(Dv1)는 원본 데이터(Do)의 내용을 훼손하지 않을 수 있다. 즉, 원본 데이터(Do)의 유의미한 부분은 제1 검증 데이터(Dv1)에서도 그대로 보존되고, 무의미한 부분이 변경될 수 있다.
제1 무결성 값(H1)은 데이터 모듈(120)에 의해서 제1 검증 데이터(Dv1)를 해싱(hashing)하여 생성된 값일 수 있다. 제1 무결성 값(H1)은 단방향 해시함수를 이용하여 생성될 수 있다. 예를 들어, 제1 무결성 값(H1)은 MD5, SHA-1 및 SHA-2(즉, SHA-224, SHA-256, SHA-384 및 SHA-512) 중 적어도 하나를 이용하여 생성될 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
데이터 모듈(120)은 데이터 웨어하우스(130)로 제1 데이터 고유값(I1)을 전송할 수 있다. 데이터 모듈(120)은 데이터 웨어하우스(130)로부터 원본 데이터(Do)를 수신할 수 있다. 데이터 모듈(120)은 워터마킹 모듈(160)로 원본 데이터(Do)를 전송할 수 있다. 데이터 모듈(120)은 워터마킹 모듈(160)로부터 데이터 타입 정보(It), 주입 위치 프리셋 리스트(Lp) 및 입력 가능 위치(Li)를 수신할 수 있다.
이때, 데이터 타입은 원본 데이터(Do)의 파일 타입을 의미할 수 있다. 예를 들어, 데이터 타입은 PDF 또는 JPG와 같은 파일 타입을 의미할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
주입 위치 프리셋 리스트(Lp)는 각각의 데이터 타입별로 미리 설정된 제1 검증 지문(Fp1)이 삽입될 위치의 리스트를 의미할 수 있다. 즉, 데이터 타입 별로 주입 위치 프리셋 리스트(Lp)가 다를 수 있다. 주입 위치 프리셋 리스트(Lp)는 데이터 타입 별로 원본 데이터(Do)의 비활용 영역에 위치할 수 있다. 이때, 비활용 영역이란, 제1 검증 지문(Fp1)의 삽입으로 인하여 원본 데이터(Do)의 내용이 변경되지 않거나 최소한 클라이언트(10)가 변경을 확인하기 어려운 영역을 의미할 수 있다.
주입 위치 프리셋 리스트(Lp)는 원본 데이터(Do) 내에서 오프셋 및 정규표현식으로 복수의 영역을 나타낼 수 있다. 여기서, “오프셋”이란 “앞에서 n바이트(비트)” 또는 “뒤에서 n바이트(비트)”와 같이 데이터 내의 위치를 표현하는 방식을 의미할 수 있다.
또한, “정규표현식”이란 원본 데이터(Do) 내의 “특정 표현이나 문자열의 앞” 또는 “특정 표현이나 문자열의 뒤”와 같이 헥스(hex) 코드에서 데이터 내의 위치와 영역을 표시할 수 있는 모든 방법을 포함한다.
입력 가능 위치(Li)는 주입 위치 프리셋 리스트(Lp) 중에 최종적으로 제1 검증 지문(Fp1)의 입력이 되는 영역을 의미할 수 있다. 즉, 주입 위치 프리셋 리스트(Lp) 중에 최종 필터링 되어 제1 검증 지문(Fp1)이 입력되는 비활용 영역을 의미할 수 있다.
데이터 웨어하우스(130)는 내부에 원본 데이터(Do)를 저장할 수 있다. 데이터 웨어하우스(130)는 데이터 모듈(120)로부터 제1 데이터 고유값(I1)을 수신할 수 있다. 데이터 웨어하우스(130)는 제1 데이터 고유값(I1)에 대응하는 원본 데이터(Do)를 데이터 모듈(120)로 회신할 수 있다.
검증 모듈(140)은 제1 검증 지문(Fp1)을 생성하고, 검증 데이터베이스(150)와 직접 통신하는 모듈일 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
구체적으로, 검증 모듈(140)은 서비스 모듈(110)로부터 제2 데이터 고유값(I2), 조회자 정보(Ireq) 및 제1 무결성 값(H1)을 수신할 수 있다. 검증 모듈(140)은 서비스 모듈(110)로 제1 검증 지문(Fp1) 및 제2 응답(Ack2)을 전송할 수 있다.
서비스 모듈(110)은 제1 데이터 고유값(I1)에 대응하여 제2 데이터 고유값(I2)을 생성할 수 있다. 이때, 제2 데이터 고유값(I2)은 원본 데이터(Do)를 특정 내지 식별할 수 있는 고유한 값일 수 있다. 예를 들어, 제2 데이터 고유값(I2)은 원본 데이터(Do)를 식별할 수 있는 키(key) 값일 수 있다. 이때, 제2 데이터 고유값(I2)은 제1 데이터 고유값(I1)과 동일한 값일 수도 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
또는, 제2 데이터 고유값(I2)은 원본 데이터(Do)를 해싱(hashing)한 값일 수도 있다. 이때, 제2 데이터 고유값(I2)은 단방향 해시함수를 이용하여 생성될 수 있다. 예를 들어, 제2 데이터 고유값(I2)은 MD5, SHA-1 및 SHA-2(즉, SHA-224, SHA-256, SHA-384 및 SHA-512) 중 적어도 하나를 이용하여 생성될 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
제2 데이터 고유값(I2)은 상술한 값들 외에도 원본 데이터(Do)를 식별할 수 있는 다른 형식의 값일 수도 있다.
조회자 정보(Ireq)는 클라이언트(10)의 신원정보를 의미할 수 있다. 조회자 정보(Ireq)는 예를 들어, 클라이언트(10)의 개인 정보, 클라이언트(10)의 아이디 및 클라이언트(10)의 열람 이력 중 적어도 하나를 포함할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
제2 응답(Ack2)은 검증 모듈(140)이 검증 데이터베이스(150)로 제1 무결성 값(H1)을 전송하면서 검증 지문 갱신 요청을 하는 경우에, 이에 대한 응답일 수 있다. 즉, 검증 데이터베이스(150)는 먼저 제2 데이터 고유값(I2), 제1 검증 지문(Fp1), 요청 시각(T) 및 조회자 정보(Ireq)를 같은 레코드에 저장하고, 추후에 검증 지문 갱신 요청과 함께 제1 무결성 값(H1)을 수신할 수 있다.
여기서, “같은 레코드”란 하나의 원본 데이터(Do)에 연계된 복수의 레이블(label)값으로 저장됨을 의미할 수 있다. 예를 들어, 원본 데이터(Do)에 대한 제2 데이터 고유값(I2), 제1 검증 지문(Fp1), 요청 시각(T), 조회자 정보(Ireq) 및 제1 무결성 값(H1)은 각각 테이블에서 하나의 로우(row) 형태로 저장될 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
이때, 검증 데이터베이스(150)는 제1 무결성 값(H1)을 같은 레코드에 미리 저장되어 있던 제2 데이터 고유값(I2), 제1 검증 지문(Fp1), 요청 시각(T) 및 조회자 정보(Ireq)와 같은 레코드에 저장할 수 있다. 이어서, 검증 데이터베이스(150)는 제1 무결성 값(H1)이 제2 데이터 고유값(I2), 제1 검증 지문(Fp1), 요청 시각(T) 및 조회자 정보(Ireq)와 같은 레코드와 저장되었다는 의미의 제2 응답(Ack2)을 검증 모듈(140)로 전송할 수 있다. 검증 모듈(140)은 제2 응답(Ack2)을 서비스 모듈(110)로 전송할 수 있다.
또한, 검증 모듈(140)은 검증 데이터베이스(150)로 제2 데이터 고유값(I2), 제1 검증 지문(Fp1), 요청 시각(T), 조회자 정보(Ireq) 및 제1 무결성 값(H1)을 전달할 수 있다. 검증 모듈(140)은 검증 데이터베이스(150)로부터 제1 응답(Ack1) 및 제2 응답(Ack2)을 수신할 수 있다.
요청 시각(T)은 검증 모듈(140)이 검증 데이터베이스(150)로 제2 데이터 고유값(I2), 제1 검증 지문(Fp1) 및 조회자 정보(Ireq)를 저장하라고 요청한 시각일 수 있다. 또는 요청 시각(T)은 클라이언트(10)가 데이터 열람 검증 시스템(100)에 데이터 열람 요청을 전달한 시각일 수 있다.
요청 시각(T)은 하나의 데이터 열람 요청에 대해서 하나의 고유한 값으로 저장될 수 있다. 즉, 요청 시각(T)은 데이터 열람 요청을 식별할 수 있는 시각인 경우 모두 가능할 수 있다.
제1 응답(Ack1)은 검증 모듈(140)이 검증 데이터베이스(150)에 제2 데이터 고유값(I2), 제1 검증 지문(Fp1), 요청 시각(T) 및 조회자 정보(Ireq)를 저장하는 것을 요청한 것에 대한 응답일 수 있다. 즉, 검증 데이터베이스(150)는 제2 데이터 고유값(I2), 제1 검증 지문(Fp1), 요청 시각(T) 및 조회자 정보(Ireq)를 저장한 후에 검증 모듈(140)로 제1 응답(Ack1)을 전송할 수 있다. 제1 응답(Ack1)은 제2 데이터 고유값(I2), 제1 검증 지문(Fp1), 요청 시각(T) 및 조회자 정보(Ireq)의 저장이 성공적임을 의미할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
검증 데이터베이스(150)는 원본 데이터(Do)에 대한 제2 데이터 고유값(I2), 제1 검증 지문(Fp1), 요청 시각(T), 조회자 정보(Ireq) 및 제1 무결성 값(H1)을 같은 레코드에 저장할 수 있다.
검증 데이터베이스(150)는 데이터를 저장할 수 있는 일반적인 저장 장소일 수 있다. 또는, 검증 데이터베이스(150)는 일반적인 저장 서버의 형태 또는 블록 체인 시스템으로 구현될 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
워터마킹 모듈(160)은 데이터 모듈(120)과 함께 원본 데이터(Do)에 제1 검증 지문(Fp1)을 삽입하여 제1 검증 데이터(Dv1)를 생성할 수 있다. 워터마킹 모듈(160)에 대해서는 추후에 더 자세히 설명한다.
도 3은 본 발명의 몇몇 실시예들에 따른 데이터 열람 검증 시스템의 각 모듈의 동작을 나타낸 순서도이다.
도 2 및 도 3을 참조하면, 먼저, 클라이언트(10)가 서비스 모듈(110)로 제1 데이터 고유값(I1)을 전송한다(S10). 이때, 클라이언트(10)는 데이터 열람 요청을 같이 전송할 수 있다.
이어서, 서비스 모듈(110)은 데이터 모듈(120)로 제1 데이터 고유값(I1)을 전송한다(S11).
이어서, 데이터 모듈(120)은 데이터 웨어하우스(130)로 제1 데이터 고유값(I1)을 전송한다(S12).
이어서, 데이터 웨어하우스(130)는 제1 데이터 고유값(I1)에 대응하는 원본 데이터(Do)를 데이터 모듈(120)로 전송한다(S13).
이어서, 데이터 모듈(120)은 원본 데이터(Do)를 서비스 모듈(110)로 전송한다(S14).
이어서, 서비스 모듈(110)은 제2 데이터 고유값(I2) 및 조회자 정보(Ireq)를 검증 모듈(140)로 전송한다(S15). 여기서, 제2 데이터 고유값(I2)은 제1 데이터 고유값(I1)에 대응하는 값일 수 있다. 예를 들어, 제2 데이터 고유값(I2)은 제1 데이터 고유값(I1)과 동일한 값이거나, 원본 데이터(Do)의 키 값 혹은 해싱된 값일 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다. 서비스 모듈(110)은 제1 데이터 고유값(I1)을 기초로 제2 데이터 고유값(I2)을 생성할 수 있다. 또한, 서비스 모듈(110)은 클라이언트(10)의 정보를 기초로 조회자 정보(Ireq)를 생성할 수 있다. 이때, 조회자 정보(Ireq)는 클라이언트(10)로부터 수신할 수도 있고, 미리 등록된 클라이언트(10)인 경우 서비스 모듈(110)이 보유하고 있을 수도 있다.
이어서, 검증 모듈(140)은 제1 검증 지문(Fp1)을 생성한다(S16). 제1 검증 지문(Fp1)은 임의적으로(randomly) 생성될 수 있다. 제1 검증 지문(Fp1)의 크기는 미리 정해질 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
이어서, 검증 모듈(140)은 검증 데이터베이스(150)로 제2 데이터 고유값(I2), 제1 검증 지문(Fp1), 요청 시각(T) 및 조회자 정보(Ireq)를 전송한다(S17). 이때, 요청 시각(T)은 서비스 모듈(110)이 클라이언트(10)로부터 데이터 열람을 받은 시각일 수 있다. 이 경우, 요청 시각(T)은 서비스 모듈(110)이 생성하여 검증 모듈(140)로 전송할 수 있다.
또는, 요청 시각(T)은 검증 모듈(140)이 검증 데이터베이스(150)로 제2 데이터 고유값(I2), 제1 검증 지문(Fp1) 및 조회자 정보(Ireq)를 전송하는 시각일 수도 있다. 이 경우, 요청 시각(T)은 검증 모듈(140)이 생성할 수 있다.
이어서, 검증 데이터베이스(150)는 데이터 열람 요청 정보를 제1 레코드에 저장한다(S18). 여기서, 데이터 열람 요청 정보는 제2 데이터 고유값(I2), 제1 검증 지문(Fp1), 요청 시각(T) 및 조회자 정보(Ireq)를 포함할 수 있다. 제1 레코드에 저장된 데이터 열람 정보는 모두 원본 데이터(Do)를 식별할 수 있게 원본 데이터(Do)와 대응하도록 저장될 수 있다. 여기서, “제1 레코드”는 복수의 레코드 중 특정한 레코드를 의미할 뿐, 첫번째 레코드로 제한되는 것은 아니다.
이어서, 검증 데이터베이스(150)는 검증 모듈(140)로 제1 응답(Ack1)을 전송한다(S19). 제1 응답(Ack1)은 데이터 열람 요청 정보가 제1 레코드에 저장되었다는 응답일 수 있다.
이어서, 검증 모듈(140)은 서비스 모듈(110)로 제1 검증 지문(Fp1)을 전송한다(S20). 검증 모듈(140)은 검증 데이터베이스(150)로부터 제1 응답(Ack1)을 수신한 후에 제1 검증 지문(Fp1)을 서비스 모듈(110)로 전송할 수 있다. 만일 검증 데이터베이스(150)에 데이터 열람 요청 정보가 저장되기 전에 제1 검증 지문(Fp1)이 서비스 모듈(110)로 전송되면 추후 검증이 올바르게 이루어지지 않을 수 있다. 따라서, 검증 모듈(140)이 서비스 모듈(110)로 제1 검증 지문(Fp1)을 전송하는 시기는 검증 데이터베이스(150)가 제1 응답(Ack1)을 검증 모듈(140)로 전송한 이후이어야 한다.
이어서, 서비스 모듈(110)은 데이터 모듈(120)로 제1 검증 지문(Fp1)을 전송한다(S21).
이어서, 데이터 모듈(120)은 제1 검증 지문(Fp1)을 원본 데이터(Do)에 주입하여 제1 검증 데이터(Dv1)를 생성한다(S22). 제1 검증 데이터(Dv1)는 원본 데이터(Do)와 제1 검증 지문(Fp1)이 삽입된 부분을 제외하고는 완전히 동일한 데이터일 수 있다.
이어서, 데이터 모듈(120)은 제1 검증 데이터(Dv1)를 서비스 모듈(110)로 전송한다(S23).
이어서, 데이터 모듈(120)은 제1 검증 데이터(Dv1)를 해싱하여 제1 무결성 값(H1)을 생성한다(S24).
상술한 S23 단계 및 S24 단계는 순차적인 것으로 설명되었지만, 본 실시예가 이에 제한되는 것은 아니다. S23 단계 및 S24 단계는 서로 병렬적으로 수행될 수 있다.
이어서, 데이터 모듈(120)은 제1 무결성 값(H1)을 서비스 모듈(110)로 전송한다(S25).
이어서, 서비스 모듈(110)은 검증 모듈(140)로 제1 무결성 값(H1)을 전송한다(S26).
이어서, 검증 모듈(140)은 검증 데이터베이스(150)로 제1 무결성 값(H1)을 전송한다(S27).
이어서, 검증 데이터베이스(150)는 제1 무결성 값(H1)을 제1 레코드에 저장한다(S28). 제1 레코드는 제1 무결성 값(H1)이 추가되어 갱신될 수 있다. 따라서, 제1 레코드에는 제2 데이터 고유값(I2), 제1 검증 지문(Fp1), 요청 시각(T), 조회자 정보(Ireq) 및 제1 무결성 값(H1)이 저장될 수 있다.
이어서, 검증 데이터베이스(150)는 검증 모듈(140)로 제2 응답(Ack2)을 전송한다(S29). 제2 응답(Ack2)은 제1 레코드에 제1 무결성 값(H1)이 추가되어 제1 레코드가 갱신되었다는 응답일 수 있다.
이어서, 검증 모듈(140)은 제2 응답(Ack2)을 서비스 모듈(110)로 전송한다(S30).
이어서, 서비스 모듈(110)은 제2 응답(Ack2)을 수신한 후, 클라이언트(10)에게 제1 검증 데이터(Dv1)를 제공한다(S31).
상술한 도 3은 하나의 예시적인 모듈들의 동작 순서에 불과하고, 본 실시예가 이에 제한되는 것은 아니다. 따라서, 도 3과 다른 순서와 방식으로 본 발명의 몇몇 실시예들에 따른 데이터 열람 검증 시스템이 동작할 수도 있다.
도 4는 도 2의 검증 데이터베이스를 설명하기 위한 개념도이다.
도 4을 참조하면, 검증 데이터베이스(150)는 단순한 저장 서버가 아니라 블록 체인 형태로 구현될 수도 있다.
구체적으로, 검증 데이터베이스(150)는 복수의 노드(151)를 포함할 수 있다. 검증 데이터베이스(150)는 상술한 원본 데이터(Do)에 대한 제2 데이터 고유값(I2), 제1 검증 지문(Fp1), 요청 시각(T), 조회자 정보(Ireq) 및 제1 무결성 값(H1)을 포함한 레코드를 블록의 형태로 저장할 수 있다. 상기 블록은 블록 헤더와 트랜잭션을 포함할 수 있고, 상기 트랜잭션에 상기 레코드가 포함될 수 있다. 상기 블록 헤더는 상기 트랜잭션의 해쉬(hash)값을 저장하여 무결성을 체크할 수 있다.
검증 데이터베이스(150)는 이렇게 생성된 블록을 기존에 완료된 기존 블록 체인 코드에 결합하여 블록 체인 코드를 생성할 수 있다. 이러한 블록 체인 코드는 복수의 노드(151)에 각각 저장될 수 있다. 이에 따라서, 복수의 노드(151) 중 어느 하나에 저장된 블록 체인 코드가 변경되어도 나머지 노드(151)에 저장된 블록 체인 코드가 존재하므로 검증 데이터베이스(150)는 저장된 레코드가 변경되지 않게 안전하게 저장할 수 있다.
특히, 검증 데이터베이스(150)에 해킹에 의해서 데이터를 변경하려는 공격이 있는 경우에도, 검증 데이터베이스(150)의 복수의 노드(151)가 모두 공격당하지 않는 경우 저장된 레코드의 변경을 차단할 수 있다. 이에 따라서, 검증 데이터베이스(150)는 향상된 보안 및 신뢰성을 가질 수 있고, 이를 통해서 본 발명의 몇몇 실시예들에 따른 데이터 열람 검증 시스템도 향상된 신뢰성을 가질 수 있다.
도 5는 도 2의 검증 데이터베이스에 저장되는 테이블을 설명하기 위한 예시도이다.
도 2 및 도 5를 참조하면, 검증 데이터베이스(150)는 내부에 테이블을 포함할 수 있다. 검증 데이터베이스(150)의 테이블은 원본 데이터(Do)에 대응하는 데이터 고유값, 검증 지문, 조회자 정보, 요청 시각 및 무결성 값을 포함할 수 있다. 즉, 예를 들어, 상술한 설명의 제2 데이터 고유값(I2), 제1 검증 지문(Fp1), 조회자 정보(Ireq), 요청 시각(T) 및 제1 무결성 값(H1)이 이에 각각 대응될 수 있다.
검증 데이터베이스(150)의 테이블은 하나의 로우에 데이터 고유값, 검증 지문, 조회자 정보, 요청 시각 및 무결성 값을 포함할 수 있다. 이를 통해서, 하나의 원본 데이터(Do)에 레이블 형식으로 연계된 정보들을 포함할 수 있다. 이를 통해서, 추후 하나의 검증 데이터에서 추출된 검증 지문과 무결성 값이 같은 레코드 즉, 같은 로우에 위치하는 지를 검증하여 검증 데이터를 검증할 수 있다.
상술한 설명에서, 같은 레코드를 테이블에서 같은 로우에 위치한 정보로 설명하였으나, 본 실시예가 이에 제한되는 것은 아니다. 같은 레코드가 테이블에서 같은 컬럼으로 구성될 수도 있고, 다른 형식으로 구성될 수도 있다. 즉, 데이터 고유값, 검증 지문, 조회자 정보, 요청 시각 및 무결성 값이 하나의 원본 데이터를 식별할 수 있도록 정보가 배치된 경우라면 정보의 배치 형태는 무방할 수 있다.
도 6은 도 2의 데이터 모듈과 워터마킹 모듈을 설명하기 위한 블록도이다.
도 6을 참조하면, 워터마킹 모듈(160)은 해석 모듈(161), 프리셋 모듈(162) 및 프리셋 데이터베이스(163)를 포함할 수 있다.
해석 모듈(161)은 원본 데이터(Do)의 데이터 타입을 판단하고, 입력 가능 위치(Li)를 해석할 수 있다. 구체적으로, 해석 모듈(161)은 데이터 모듈(120)로부터 원본 데이터(Do) 및 주입 위치 프리셋 리스트(Lp)를 수신할 수 있다. 해석 모듈(161)은 데이터 모듈(120)로 데이터 타입 정보(It) 및 입력 가능 위치(Li)를 전송할 수 있다.
프리셋 모듈(162)은 데이터 타입 별로 미리 지정된 주입 위치 프리셋 리스트(Lp)를 회신하기 위해서 프리셋 데이터베이스(163)와 직접 통신할 수 있다. 프리셋 모듈(162)은 데이터 모듈(120)로부터 데이터 타입 정보(It)를 수신할 수 있다. 프리셋 모듈(162)은 데이터 모듈(120)로 주입 위치 프리셋 리스트(Lp)를 전송할 수 있다.
프리셋 데이터베이스(163)는 내부에 주입 위치 프리셋 리스트(Lp)를 저장할 수 있다. 프리셋 데이터베이스(163)는 프리셋 모듈(162)로부터 데이터 타입 정보(It)를 수신하고, 이에 대응하는 주입 위치 프리셋 리스트(Lp)를 프리셋 모듈(162)로 전송할 수 있다.
도 7은 도 6의 데이터 모듈과 워터마킹 모듈의 동작을 나타낸 순서도이다.
도 6 및 도 7을 참조하면, 서비스 모듈(110)은 데이터 모듈(120)로 제1 검증 지문(Fp1)을 전송한다(S21). 본 단계는 상술한 도 3의 S21 단계와 동일한 단계일 수 있다.
이어서, 데이터 모듈(120)은 해석 모듈(161)로 원본 데이터(Do)를 전송한다(S22a).
이어서, 해석 모듈(161)은 원본 데이터(Do)의 데이터 타입을 분석하여 데이터 타입 정보(It)를 데이터 모듈(120)로 전송한다(S22b).
이어서, 데이터 모듈(120)은 프리셋 모듈(162)로 데이터 타입 정보(It)를 전송한다(S22c).
이어서, 프리셋 모듈(162)은 프리셋 데이터베이스(163)로 데이터 타입 정보(It)를 전송한다(S22d).
이어서, 프리셋 데이터베이스(163)는 수신한 데이터 타입 정보(It)에 대응하는 주입 위치 프리셋 리스트(Lp)를 프리셋 모듈(162)로 회신한다(S22e). 프리셋 데이터베이스(163) 내부에는 여러 종류의 데이터 타입 정보(It)에 대응하는 주입 위치 프리셋 리스트(Lp)가 미리 저장되어 있을 수 있다.
이어서, 프리셋 모듈(162)은 데이터 모듈(120)로 주입 위치 프리셋 리스트(Lp)를 전송한다(S22f).
이어서, 데이터 모듈(120)은 주입 위치 프리셋 리스트(Lp)를 해석 모듈(161)로 전송한다(S22g).
이어서, 해석 모듈(161)은 주입 위치 프리셋 리스트(Lp)를 필터링하여 입력 가능 위치(Li)를 도출한다(S22h).
이어서, 해석 모듈(161)은 입력 가능 위치(Li)를 데이터 모듈(120)로 전달한다(S22i).
이어서, 데이터 모듈(120)은 원본 데이터(Do)의 입력 가능 위치(Li)에 제1 검증 지문(Fp1)을 주입한다(S22j). 이를 통해서, 제1 검증 데이터(Dv1)가 생성될 수 있다.
이어서, 데이터 모듈(120)은 제1 검증 지문(Fp1)이 주입된 제1 검증 데이터(Dv1)를 서비스 모듈(110)로 전송한다(S23). 본 단계는 상술한 도 3의 S23 단계와 동일한 단계일 수 있다.
상술한 도 7은 하나의 예시적인 모듈들의 동작 순서에 불과하고, 본 실시예가 이에 제한되는 것은 아니다. 따라서, 도 7과 다른 순서와 방식으로 본 발명의 몇몇 실시예들에 따른 데이터 열람 검증 시스템이 동작할 수도 있다.
도 8은 본 발명의 몇몇 실시예들에 따른 데이터 열람 검증 시스템이 원본 데이터를 검증 데이터로 변환하는 것을 설명하기 위한 예시도이다.
도 6 내지 도 8을 참조하면, 원본 데이터(Do)는 헥스(hex) 코드 즉, 16진수로 표시될 수 있다. 원본 데이터(Do)는 해석 모듈(161)에 의해서 도출된 입력 가능 위치(Li)를 포함할 수 있다. 데이터 모듈(120)은 입력 가능 위치(Li)에 제1 검증 지문(Fp1)을 주입할 수 있다. 제1 검증 지문(Fp1)도 헥스 코드로 표시될 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
제1 검증 지문(Fp1)이 주입되면, 원본 데이터(Do)는 제1 검증 데이터(Dv1)로 변환될 수 있다. 제1 검증 데이터(Dv1)는 원본 데이터(Do)와 제1 검증 데이터(Dv1)를 제외한 모든 부분이 동일할 수 있다.
도 9는 본 발명의 몇몇 실시예들에 따른 데이터 열람 검증 시스템의 주입 위치 프리셋 리스트와 입력 가능 위치를 설명하기 위한 도면이다.
도 6 내지 도 9를 참조하면, 해석 모듈(161)은 수신한 주입 위치 프리셋 리스트(Lp)를 기초로 입력 가능 위치(Li)를 선정할 수 있다.
주입 위치 프리셋 리스트(Lp)는 복수의 영역을 포함할 수 있다. 주입 위치 프리셋 리스트(Lp)에 포함된 복수의 영역 중 적어도 일부는 제1 검증 지문(Fp1)이 주입되어도 원본 데이터(Do)의 내용이 훼손되지 않을 수 있다. 다만, 주입 위치 프리셋 리스트(Lp) 중에서도 유의미한 값이 존재하는 영역이 있을 수 있다. 따라서, 해석 모듈(161)이 이러한 부분을 필터링하여 최종적으로 입력 가능 위치(Li)를 선정할 수 있다.
도 9에서 주입 위치 프리셋 리스트(Lp) 중 입력 불가능 영역(Lp0)은 “7667 778e”의 코드가 기재되어 유의미한 값이 존재하는 영역이므로 주입 위치 프리셋 리스트(Lp)에 포함되었지만, 최종적으로 입력 가능 위치(Li)로 선정될 수는 없다.
입력 가능 위치(Li)는 치환가능 영역(Li1), 삽입가능 영역(Li2) 및 결합 영역(Li3)을 포함할 수 있다. 치환가능 영역(Li1)은 “0000 0000”과 같은 무의미한 값이 존재하는 영역으로 제1 검증 지문(Fp1)이 치환되면서 삽입될 수 있다.
삽입가능 영역(Li2)은 애초에 아무런 값이 존재하지 않는 영역일 수 있다. 삽입가능 영역(Li2)은 제1 검증 지문(Fp1)이 치환될 필요도 없이 바로 삽입될 수 있다. 이 경우, 삽입가능 영역(Li2)에 제1 검증 지문(Fp1)이 삽입됨에 따라서 원본 데이터(Do)에 비해서 제1 검증 데이터(Dv1)의 크기가 커질 수 있다.
결합 영역(Li3)은 치환가능 영역(Li1) 및 삽입가능 영역(Li2)이 병합된 영역일 수 있다. 제1 검증 지문(Fp1)의 크기는 미리 지정되어 있을 수 있다. 그러나, 주입 위치 프리셋 리스트(Lp)에 포함된 복수의 영역의 크기는 미리 지정되어 있지 않을 수 있다. 즉, 주입 위치 프리셋 리스트(Lp)에 포함된 복수의 영역의 크기는 제1 검증 지문(Fp1)이 삽입되기 충분할 정도로 클 수도 있으나, 제1 검증 지문(Fp1)이 삽입되지 못할 정도로 작을 수도 있다.
만일, 주입 위치 프리셋 리스트(Lp)에 포함된 복수의 영역 중 일부가 제1 검증 지문(Fp1)이 삽입되지 못할 정도로 작은 경우에는 해석 모듈(161)이 병합을 통해서 더 큰 영역을 생성할 수 있다. 이때, 병합을 통해서 생성된 병합 영역은 제1 검증 지문(Fp1)이 삽입되기 충분할 정도로 클 수 있다.
병합을 통해서 생성된 병합 영역은 치환가능 영역(Li1)끼리 병합된 영역, 삽입가능 영역(Li2)끼리 병합된 영역 및 치환가능 영역(Li1)과 삽입가능 영역(Li2)이 서로 병합된 영역으로 분류될 수 있다. 이 중, 치환가능 영역(Li1)과 삽입가능 영역(Li2)이 서로 병합된 영역을 결합 영역(Li3)으로 정의할 수 있다.
따라서, 결합 영역(Li3)은 2개 이상의 영역으로 구성되어 있고, 각각의 서브 영역 중 적어도 하나가 치환가능 영역(Li1)이고, 각각의 서브 영역 중 적어도 하나가 삽입가능 영역(Li2)일 수 있다.
데이터 모듈(120)은 제1 검증 지문(Fp1)을 1개 이상 원본 데이터(Do)에 삽입할 수 있다. 즉, 제1 검증 지문(Fp1)은 데이터 모듈(120)에 의해서 중복해서 원본 데이터(Do)에 삽입될 수 있다.
도 10은 도 1의 데이터 열람 검증 시스템이 검증 데이터를 검증하는 것을 세부적으로 설명하기 위한 블록도이다.
도 10을 참조하면, 서비스 모듈(110)은 도 1의 클라이언트(10)로부터 제2 검증 데이터(Dv2)를 수신하고, 제4 응답(Ack4)을 회신할 수 있다. 여기서, 제2 검증 데이터(Dv2)는 도 1의 클라이언트(10)가 보유하고 있는 검증 데이터일 수 있다. 제4 응답(Ack4)은 검증 데이터베이스(150)에 제2 검증 지문(Fp2)과 제2 무결성 값(H2)이 같은 레코드에 위치하였는 지에 대한 응답으로 제2 검증 데이터(Dv2)가 검증되었다는 응답일 수 있다.
서비스 모듈(110)은 데이터 모듈(120)로 제2 검증 데이터(Dv2) 및 제1 데이터 고유값(I1)을 전송할 수 있다. 데이터 모듈(120)은 제2 무결성 값(H2) 및 제2 검증 지문(Fp2)을 추출하여 서비스 모듈(110)로 전송할 수 있다.
제1 데이터 고유값(I1)은 도 2의 제1 데이터 고유값(I1)과 동일한 값일 수 있다. 제1 데이터 고유값(I1)은 원본 데이터(Do)에 대응하는 키 값일 수 있다. 서비스 모듈(110)은 검증 모듈(140)로부터 제2 데이터 고유값(I2)을 수신하여 이에 대응하는 제1 데이터 고유값(I1)을 데이터 모듈(120)로 전송할 수 있다.
제2 무결성 값(H2)은 데이터 모듈(120)에 의해서 제2 검증 데이터(Dv2)를 해싱(hashing)하여 생성된 값일 수 있다. 제2 무결성 값(H2)은 상술한 도 2의 제1 무결성 값(H1)을 생성하기 위한 해시함수와 동일한 해시함수를 이용할 수 있다.
제2 검증 지문(Fp2)은 데이터 모듈(120)이 제2 검증 데이터(Dv2) 및 원본 데이터(Do)를 대조하여 추출할 수 있다. 제2 검증 지문(Fp2)은 제2 검증 데이터(Dv2) 및 원본 데이터(Do)가 차이나는 부분일 수 있다.
데이터 모듈(120)은 제1 데이터 고유값(I1)을 데이터 웨어하우스(130)로 전송하고, 제1 데이터 고유값(I1)에 대응하는 원본 데이터(Do)를 수신할 수 있다.
서비스 모듈(110)은 검증 모듈(140)로 제2 무결성 값(H2)과 제2 검증 지문(Fp2)을 전송하고, 제2 데이터 고유값(I2) 및 제4 응답(Ack4)을 수신할 수 있다. 제2 데이터 고유값(I2)은 상술한 도 2의 제2 데이터 고유값(I2)과 동일한 값일 수 있다. 제2 데이터 고유값(I2)은 검증 데이터베이스(150)가 제2 무결성 값(H2)을 수신한 후에 같은 레코드에 있는 제2 데이터 고유값(I2)을 검증 모듈(140)에 회신한 값일 수 있다. 서비스 모듈(110)은 수신한 제2 데이터 고유값(I2)에 대응하는 제1 데이터 고유값(I1)을 데이터 모듈(120)로 전송할 수 있다.
검증 모듈(140)은 검증 데이터베이스(150)로 제2 무결성 값(H2) 및 제2 검증 지문(Fp2)을 전송하고, 제3 응답(Ack3) 및 제4 응답(Ack4)을 수신할 수 있다. 여기서, 제3 응답(Ack3)은 제2 무결성 값(H2)에 대응하는 레코드가 존재하는 지에 대한 응답일 수 있다. 제4 응답(Ack4)은 제2 무결성 값(H2)과 제2 검증 지문(Fp2)이 같은 레코드에 있는지에 대한 응답일 수 있다.
검증 데이터베이스(150)는 검증 모듈(140)로부터 제2 무결성 값(H2) 및 제2 검증 지문(Fp2)을 수신할 수 있다. 검증 데이터베이스(150)는 검증 모듈(140)로 제3 응답(Ack3) 및 제4 응답(Ack4)을 전송할 수 있다.
도 11은 본 발명의 몇몇 실시예들에 따른 데이터 열람 검증 시스템이 검증 데이터를 검증하는 것에 대한 각 모듈의 동작을 나타낸 순서도이다.
도 11을 참조하면, 먼저 클라이언트(10)가 서비스 모듈(110)로 제2 검증 데이터(Dv2)를 전송한다(S40).
이어서, 서비스 모듈(110)은 데이터 모듈(120)로 제2 검증 데이터(Dv2)를 전송한다(S41).
이어서, 데이터 모듈(120)은 제2 검증 데이터(Dv2)를 해싱하여 제2 무결성 값(H2)을 생성한다(S42). 만일, 제2 검증 데이터(Dv2)가 상술한 제1 검증 데이터(Dv1)와 동일한 경우 제2 무결성 값(H2)은 제1 무결성 값(H1)과 동일할 수 있다.
이어서, 데이터 모듈(120)은 서비스 모듈(110)로 제2 무결성 값(H2)을 전송한다(S43).
이어서, 서비스 모듈(110)은 검증 모듈(140)로 제2 무결성 값(H2)을 전송한다(S44).
이어서, 검증 모듈(140)은 검증 데이터베이스(150)로 제2 무결성 값(H2)을 전송한다(S45).
이어서, 검증 데이터베이스(150)는 제2 무결성 값(H2)에 대응하는 레코드가 있는지 확인하고, 그에 대응하는 원본 데이터를 확인한다(S46). 만일 제2 무결성 값(H2)이 상술한 제1 무결성 값(H1)과 동일한 경우 상술한 제1 레코드 및 제1 레코드에 대응하는 원본 데이터(Do)가 확인될 수 있다. 나아가, 제1 레코드에 대응하는 제2 데이터 고유값(I2)이 확인될 수 있다.
이어서, 검증 데이터베이스(150)는 검증 모듈(140)로 제3 응답(Ack3)을 전송한다(S47). 만일, 검증 데이터베이스(150)에 의해서 제1 레코드 및 제1 레코드에 대응하는 원본 데이터(Do)가 확인되는 경우, 제3 응답(Ack3)은 제1 레코드 및 제1 레코드에 대응하는 원본 데이터(Do)가 확인되었다는 응답일 수 있다. 나아가, 제1 레코드에 대응하는 제2 데이터 고유값(I2)이 확인되었다는 응답일 수도 있다.
이어서, 검증 모듈(140)은 확인된 제2 데이터 고유값(I2)을 서비스 모듈(110)로 전송한다(S48).
이어서, 서비스 모듈(110)은 제1 데이터 고유값(I1)을 데이터 모듈(120)로 전송한다(S49). 이때, 제1 데이터 고유값(I1)은 제2 데이터 고유값(I2)과 동일하거나, 제2 데이터 고유값(I2)에 대응하는 값일 수 있다. 제1 데이터 고유값(I1)은 원본 데이터(Do)에 대응하는 키 값일 수 있다. 서비스 모듈(110)은 제2 데이터 고유값(I2)을 수신하고, 이에 대응하는 제1 데이터 고유값(I1)을 생성할 수 있다.
이어서, 데이터 모듈(120)은 데이터 웨어하우스(130)에 제1 데이터 고유값(I1)을 전송한다(S50).
이어서, 데이터 웨어하우스(130)는 원본 데이터(Do)를 데이터 모듈(120)로 전송한다(S51). 원본 데이터(Do)는 제1 데이터 고유값(I1)과 대응할 수 있다.
이어서, 데이터 모듈(120)은 원본 데이터(Do) 및 제2 검증 데이터(Dv2)를 대조하여 제2 검증 지문(Fp2)을 추출한다(S52). 이때, 제2 검증 지문(Fp2)은 원본 데이터(Do) 및 제2 검증 데이터(Dv2)의 차이로 추출될 수 있다. 만일 제2 검증 데이터(Dv2)가 상술한 제1 검증 데이터(Dv1)와 동일한 경우 제2 검증 지문(Fp2)은 제1 검증 지문(Fp1)과 동일할 수 있다.
이어서, 데이터 모듈(120)은 추출된 제2 검증 지문(Fp2)을 서비스 모듈(110)로 전송한다(S53).
이어서, 서비스 모듈(110)은 제2 검증 지문(Fp2)을 검증 모듈(140)로 전송한다(S54).
이어서, 검증 모듈(140)은 검증 데이터베이스(150)로 제2 검증 지문(Fp2)을 전송한다(S55).
이어서, 검증 데이터베이스(150)는 제2 검증 지문(Fp2) 및 제2 무결성 값(H2)이 같은 레코드에 존재하는지를 확인한다(S56). 이때, 제2 검증 지문(Fp2) 및 제2 무결성 값(H2)이 각각 제1 검증 지문(Fp1) 및 제1 무결성 값(H1)과 동일한 경우 같은 레코드인 제1 레코드에 존재할 수 있다.
이어서, 검증 데이터베이스(150)는 제4 응답(Ack4)을 검증 모듈(140)로 전송한다(S57). 여기서, 제4 응답(Ack4)은 제2 검증 지문(Fp2) 및 제2 무결성 값(H2)이 같은 레코드에 존재하는 것에 대한 응답일 수 있다. 이를 통해서, 제2 검증 데이터(Dv2)가 원본 데이터(Do)로부터 위조나 변경이 없고, 정당하게 열람된 데이터라는 점이 검증될 수 있다.
이어서, 검증 모듈(140)은 서비스 모듈(110)로 제4 응답(Ack4)을 전송한다(S58).
이어서, 서비스 모듈(110)은 클라이언트(10)에게 제4 응답(Ack4)을 전송한다(S59).
상술한 도 11은 하나의 예시적인 모듈들의 동작 순서에 불과하고, 본 실시예가 이에 제한되는 것은 아니다. 따라서, 도 11과 다른 순서와 방식으로 본 발명의 몇몇 실시예들에 따른 데이터 열람 검증 시스템이 동작할 수도 있다.
본 실시예는 S46 단계에서 제2 무결성 값(H2)이 레코드에 존재하는 지를 확인하는 경우 1차적으로 제2 검증 데이터(Dv2)가 위조나 변경이 없고, 정당하게 열람된 데이터라는 점이 검증될 수 있다.
다만, 제2 무결성 값(H2)이 길이가 짧게 형성되는 해시 값이므로, 서로 다른 검증 데이터에서 동일한 해시 값으로 나올 확률을 배제하기 위해서 S56 단계를 더 수행할 수 있다.
이를 통해서, 본 실시예는 더욱 정확하고 정밀한 데이터의 검증을 수행할 수 있다.
또한, 본 실시예는 검증 데이터베이스(150)에 저장된 정보에 의해서, 요청된 검증 데이터가 언제 누구에 의해서 열람된 데이터인지를 명확하게 파악할 수 있다. 이에 따라서, 데이터의 보안에 따른 제한적인 열람을 쉽고 빠르게 관리할 수 있다.
나아가, 데이터의 열람 권한이 없는 자가 비정상적인 루트로 데이터를 보유하는 경우에는 이를 명확하게 파악하고 제지할 수 있다.
이하, 도 1 내지 도 3, 도 6 내지 도 9 및 도 12 내지 도 16을 참조하여 본 발명의 몇몇 실시예들에 따른 데이터 열람 검증 방법을 설명한다. 상술한 실시예와 중복되는 설명은 생략하거나, 간략히 한다.
도 12는 본 발명의 몇몇 실시예들에 따른 데이터 열람 검증 방법을 설명하기 위한 순서도이고, 도 13은 도 12의 주입 위치를 추출하고, 제1 검증 데이터를 생성하는 단계를 세부적으로 설명하기 위한 순서도이다. 도 14는 도 13의 입력 가능 위치를 추출하는 단계를 세부적으로 설명하기 위한 순서도이고, 도 15는 도 14의 가용 영역 리스트 중 적어도 일부를 입력 가능 위치로 추출하는 단계를 세부적으로 설명하기 위한 순서도이다. 도 16은 본 발명의 몇몇 실시예들에 따른 데이터 열람 검증 방법에서 검증 데이터를 검증하는 것을 설명하기 위한 순서도이다.
도 12를 참조하면, 클라이언트로부터 데이터 열람 요청을 수신한다(S110).
구체적으로, 도 1 내지 도 3을 참조하면, 클라이언트(10)는 데이터 열람 검증 시스템(100)에 제1 데이터 고유값(I1)을 전송하면서, 데이터 열람 요청을 같이 전송할 수 있다. 제1 데이터 고유값(I1)은 클라이언트(10)가 요청하는 원본 데이터를 식별할 수 있는 값일 수 있다.
다시, 도 12를 참조하면, 데이터 열람 요청에 대응하는 원본 데이터가 존재하는지를 판단한다(S120).
구체적으로, 도 1 내지 도 3을 참조하면, 데이터 웨어하우스(130)는 제1 데이터 고유값(I1)에 대응하는 원본 데이터(Do)가 있는지를 판단할 수 있다. 만일, 대응하는 원본 데이터(Do)가 없는 경우 클라이언트에게 요청 실패 메시지를 전송한다(S220).
다시, 도 12를 참조하면, 제1 데이터 고유값에 대응하는 원본 데이터가 있는 경우, 원본 데이터를 로드한다(S130).
구체적으로, 도 1 내지 도 3을 참조하면, 데이터 웨어하우스(130)는 제1 데이터 고유값(I1)에 대응하는 원본 데이터(Do)를 데이터 모듈(120)로 회신할 수 있다.
다시, 도 12를 참조하면, 원본 데이터에 대응하는 제1 검증 지문을 생성한다(S140).
구체적으로, 도 1 내지 도 3을 참조하면, 제1 검증 지문(Fp1)은 검증 모듈(140)에 의해서 생성될 수 있다. 제1 검증 지문(Fp1)은 랜덤하게 생성될 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
다시, 도 12를 참조하면, 데이터 열람 요청 정보를 제1 레코드에 저장한다(S150).
구체적으로, 도 1 내지 도 3을 참조하면, 검증 데이터베이스(150)가 데이터 열람 요청 정보를 제1 레코드에 저장한다. 여기서, 데이터 열람 요청 정보는 제2 데이터 고유값(I2), 제1 검증 지문(Fp1), 요청 시각(T) 및 조회자 정보(Ireq)를 포함할 수 있다.
다시, 도 12를 참조하면, 데이터 열람 요청 정보의 저장에 성공하였는지를 판단한다(S160).
만일, 데이터 열람 요청 정보의 저장에 실패한 경우에는 클라이언트에게 요청 실패 메시지를 전송한다(S220).
만일, 데이터 열람 요청 정보의 저장에 성공한 경우 에는 원본 데이터 타입에 따른 입력 가능 위치를 추출한다(S170).
구체적으로, 도 1 내지 도 3을 참조하면, 데이터 모듈(120) 및 워터마킹 모듈(160)이 원본 데이터 타입에 따른 입력 가능 위치(Li)를 추출한다.
다시, 도 12를 참조하면, 원본 데이터에 제1 검증 지문을 주입하여 제1 검증 데이터를 생성한다(S180).
구체적으로, 도 1 내지 도 3을 참조하면, 데이터 모듈(120)은 원본 데이터(Do)에 제1 검증 데이터(Dv1)를 주입하여 제1 검증 데이터(Dv1)를 생성한다.
다시, 도 12를 참조하면, 제1 검증 데이터에 대한 제1 무결성 값을 생성한다(S190).
구체적으로, 도 1 및 도 3을 참조하면, 제1 무결성 값(H1)은 데이터 모듈(120)에 의해서 제1 검증 데이터(Dv1)를 해싱(hashing)하여 생성된 값일 수 있다. 제1 무결성 값(H1)은 단방향 해시함수를 이용하여 생성될 수 있다. 예를 들어, 제1 무결성 값(H1)은 MD5, SHA-1 및 SHA-2(즉, SHA-224, SHA-256, SHA-384 및 SHA-512) 중 적어도 하나를 이용하여 생성될 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.
다시, 도 12를 참조하면, 제1 무결성 값을 제1 레코드에 저장한다(S200).
구체적으로, 도 1 내지 도 3을 참조하면, 검증 데이터베이스(150)는 제1 무결성 값(H1)을 제1 레코드에 저장한다(S28). 제1 레코드는 제1 무결성 값(H1)이 추가되어 갱신될 수 있다.
다시, 도 12를 참조하면, 제1 검증 데이터를 클라이언트에 전송한다(S210).
구체적으로, 도 1 및 도 3을 참조하면, 서비스 모듈(110)은 클라이언트(10)에게 데이터 열람 요청에 대응하여 제1 검증 데이터(Dv1)를 전송할 수 있다.
이하, 도 2, 도 3, 도 6, 도 7 및 도 13을 참조하여, 상술한 도 12의 S170 및 S180단계를 자세히 설명한다.
세부적으로 도 13을 참조하면, 원본 데이터 및 제1 검증 지문을 수신한다(S310).
구체적으로, 도 2, 도 3, 도 6 및 도 7을 참조하면, 데이터 모듈(120)은 원본 데이터(Do) 및 제1 검증 지문(Fp1)을 수신할 수 있다.
다시, 도 13을 참조하면, 원본 데이터의 데이터 타입을 확인한다(S320).
구체적으로, 도 6 및 도 7을 참조하면, 해석 모듈(161)은 데이터 모듈(120)로부터 원본 데이터(Do)를 수신하고, 원본 데이터(Do)의 데이터 타입을 확인한다. 해석 모듈(161)은 원본 데이터(Do)의 데이터 타입에 대한 데이터 타입 정보(It)를 데이터 모듈(120)로 회신한다.
다시, 도 13을 참조하면, 데이터 타입에 따른 주입 위치 프리셋 리스트를 수신한다(S330).
구체적으로, 도 6 및 도 7을 참조하면, 데이터 모듈(120)은 데이터 타입 정보(It)를 프리셋 모듈(162)로 전송한다. 프리셋 모듈(162)은 데이터 타입 정보(It)를 다시 프리셋 데이터베이스(163)로 전송한다. 프리셋 데이터베이스(163)는 내부에 저장된 데이터 타입 정보(It)에 대응하는 주입 위치 프리셋 리스트(Lp)를 프리셋 모듈(162)로 회신한다. 프리셋 모듈(162)은 주입 위치 프리셋 리스트(Lp)를 데이터 모듈(120)로 전송한다.
다시, 도 13을 참조하면, 주입 위치 프리셋 리스트 중 입력 가능 위치를 추출한다(S340).
구체적으로, 도 6 및 도 7을 참조하면, 데이터 모듈(120)은 주입 위치 프리셋 리스트(Lp)를 해석 모듈(161)로 전송한다. 해석 모듈(161)은 주입 위치 프리셋 리스트의 영역 중 입력 가능 위치(Li)를 추출한다.
다시, 도 13을 참조하면, 입력 가능 위치에 제1 검증 지문을 삽입한다(S350).
구체적으로, 도 2 및 도 3을 참조하면, 제1 검증 지문(Fp1)은 데이터 모듈(120)에 의해서 원본 데이터(Do)에 삽입되어 제1 검증 데이터(Dv1)를 생성하게 할 수 있다. 제1 검증 지문(Fp1)은 원본 데이터(Do)의 비활용 영역에 삽입되어 원본 데이터(Do)의 내용을 훼손하지 않고 제1 검증 데이터(Dv1)를 생성하게 할 수 있다.
이하, 도 6 내지 도 9 및 도 14를 참조하여, 상술한 도 13의 S340 단계를 자세히 설명한다.
세부적으로 도 14를 참조하면, 주입 위치 프리셋 리스트 중 검토 영역을 지정한다(S341).
구체적으로 도 6 및 도 9를 참조하면, 주입 위치 프리셋 리스트(Lp)는 서로 분리된 복수의 영역을 포함할 수 있다. 해석 모듈(161)은 주입 위치 프리셋 리스트(Lp)의 복수의 영역을 전체를 순차적으로 판단할 수 있다. 즉, 해석 모듈(161)은 주입 위치 프리셋 리스트(Lp)의 어느 영역을 검토 영역으로 지정하여 판단하고, 이후 나머지 영역도 순차적으로 검토 영역으로 지정하여 판단할 수 있다.
다시, 도 14를 참조하면, 검토 영역이 사용되었는지를 판단한다(S342a). 만일 검토 영역이 사용되었다면, 검토 영역을 사용할 수 없으므로 다시 검토 영역을 지정한다(S341). 만일 검토 영역이 사용되지 않은 경우 계속해서 검토 영역을 검토한다.
구체적으로 도 6 및 도 9를 참조하면, 주입 위치 프리셋 리스트(Lp) 중 입력 불가능 영역(Lp0)은 “7667 778e”의 코드가 기재되어 유의미한 값이 존재하는 영역이므로 주입 위치 프리셋 리스트(Lp)에 포함되었지만, 최종적으로 입력 가능 위치(Li)로 선정될 수는 없다. 따라서, 이러한 경우 입력 가능 위치(Li)에서 제외될 수 있다.
그 외에, “0000 0000”과 같은 무의미한 값이 존재하여 치환이 가능한 치환가능 영역(Li1)이나, 애초에 아무런 값이 존재하지 않는 삽입가능 영역(Li2)인 경우 계속해서 검토할 수 있다.
다시, 도 14를 참조하면, 검토 영역의 길이가 검증 지문의 길이보다 작은지를 판단한다(S342b).
구체적으로 도 6 및 도 9를 참조하면, 제1 검증 지문(Fp1)의 크기는 미리 지정되어 있을 수 있다. 그러나, 주입 위치 프리셋 리스트(Lp)에 포함된 복수의 영역의 크기는 미리 지정되어 있지 않을 수 있다. 즉, 주입 위치 프리셋 리스트(Lp)에 포함된 복수의 영역의 크기는 제1 검증 지문(Fp1)이 삽입되기 충분할 정도로 클 수도 있으나, 제1 검증 지문(Fp1)이 삽입되지 못할 정도로 작을 수도 있다.
다시, 도 14를 참조하면, 검토 영역의 길이가 검증 지문의 길이보다 크거나 같은 경우, 검토 영역을 가용 영역 리스트에 추가한다(S343). 반대로, 검토 영역의 길이가 검증 지문의 길이보다 작은 경우, 검토 영역을 예비 가용 영역 리스트에 추가한다(S344).
이어서, 주입 위치 프리셋 리스트의 모든 영역을 확인하였는지를 판단한다(S345). 만일 아닌 경우 다시 검토 영역을 지정하고(S341), 만일 모든 영역을 확인한 경우 다음 단계로 넘어간다.
이어서, 예비 가용 영역 리스트에 추가된 검토 영역이 2개 이상인지를 판단한다(S346a). 만일 예비 가용 영역 리스트에 추가된 검토 영역이 2개 미만이라면, 바로 가용 영역 리스트 중 적어도 일부를 입력 가능 위치로 추출한다(S348).
만일 예비 가용 영역 리스트에 추가된 검토 영역이 2개 이상이라면, 예비 가용 영역 리스트에 추가된 검토 영역을 합한 병합 영역의 길이가 검증 지문의 길이보다 작은지를 판단한다(S346b).
만일 예비 가용 영역 리스트에 추가된 검토 영역을 합한 병합 영역의 길이가 검증 지문의 길이보다 크거나 같은 경우, 병합 영역을 가용 영역 리스트에 추가한다(S347).
만일 예비 가용 영역 리스트에 추가된 검토 영역을 합한 병합 영역의 길이가 검증 지문의 길이보다 작은 경우에는 병합 영역을 가용 영역 리스트에 추가하지 않는다.
이어서, 가용 영역 리스트 중 적어도 일부를 입력 가능 위치로 추출한다(S348).
구체적으로, 도 6 및 도 9를 참조하면, 이러한 과정을 통해서 해석 모듈(161)이 입력 가능 위치(Li)를 도출할 수 있다.
이때, 입력 가능 위치(Li)는 주어진 가용 영역 리스트의 전체를 모두 활용할 수 있다. 이러한 경우, 원본 데이터(Do)가 제1 검증 데이터(Dv1)로 변환되면서 변화되는 부분이 가장 많은 경우에 해당될 수 있다. 본 실시예는 이를 통해서, 추후 검증 데이터의 추출이 용이하게 하고, 변환 절차 중에 에러가 일어나는 경우에도 검증이 가능할 수 있게 할 수 있다.
또는, 입력 가능 위치(Li)는 주어진 가용 영역 리스트의 중 일부만을 무작위로 선정하여 추출될 수 있다. 이러한 경우는 원본 데이터(Do)의 변화를 최소화하여 예상하지 못한 원본 데이터(Do)의 내용을 훼손을 최소화할 수 있다.
또는, 입력 가능 위치(Li)는 주어진 가용 영역 리스트의 중 영역의 특성에 따라서 순차적으로 입력가능 위치를 추출할 수 있다. 이하, 도 6 내지 도 9 및 도 15를 참조하여, 영역의 특성에 따르는 경우, 상술한 도 14의 S348 단계를 자세히 설명한다.
도 15를 참조하면, 가용 영역 리스트 중 치환가능 영역, 삽입가능 영역 및 결합 영역 여부를 확인한다(S348a).
구체적으로 도 6 및 도 9를 참조하면, 결합 영역(Li3)은 치환가능 영역(Li1) 및 삽입가능 영역(Li2)이 병합 영역일 수 있다. 병합 영역은 치환가능 영역(Li1)끼리 병합된 영역, 삽입가능 영역(Li2)끼리 병합된 영역 및 치환가능 영역(Li1)과 삽입가능 영역(Li2)이 서로 병합된 영역으로 분류될 수 있다. 이 중, 치환가능 영역(Li1)과 삽입가능 영역(Li2)이 서로 병합된 영역을 결합 영역(Li3)으로 정의할 수 있다.
따라서, 결합 영역(Li3)은 2개 이상의 영역으로 구성되어 있고, 각각의 서브 영역 중 적어도 하나가 치환가능 영역(Li1)이고, 각각의 서브 영역 중 적어도 하나가 삽입가능 영역(Li2)일 수 있다.
해석 모듈(161)은 가용 영역 리스트 중 치환가능 영역(Li1), 삽입가능 영역(Li2) 및 결합 영역(Li3)을 확인할 수 있다.
다시, 도 15를 참조하면, 치환가능 영역을 입력 가능 위치로 추출한다(S348b).
구체적으로 도 8 및 도 9를 참조하면, 치환가능 영역(Li1)은 삽입가능 영역(Li2) 및 결합 영역(Li3)에 비해서 제1 검증 지문(Fp1)이 삽입됨에 따라서 원본 데이터(Do)의 사이즈가 늘어나지 않을 수 있다. 따라서, 치환가능 영역(Li1)을 우선적으로 먼저 입력 가능 위치로 추출할 수 있다.
다시, 도 15를 참조하면, 입력 가능 위치 추출이 더 필요한지를 판단한다(S348c).
구체적으로 도 8 및 도 9를 참조하면, 입력 가능 위치(Li)의 개수는 미리 지정될 수 있다. 따라서, 치환가능 영역(Li1)만으로 입력 가능 위치(Li)의 필요한 개수가 충족되는 경우에는 더 이상 입력 가능 위치(Li)를 추출할 필요가 없다.
만일, 치환가능 영역(Li1)만으로 입력 가능 위치의 필요한 개수가 충족되지 않는 경우에는 계속해서 입력 가능 위치(Li)를 추출해야 한다.
다시, 도 15를 참조하면, 결합 영역을 입력 가능 위치로 추출한다(S348d).
구체적으로 도 8 및 도 9를 참조하면, 결합 영역(Li3)은 삽입가능 영역(Li2)에 비해서 원본 데이터(Do)의 확대되는 사이즈가 상대적으로 더 작을 수 있다. 따라서, 치환가능 영역(Li1) 다음으로 결합 영역(Li3)을 삽입가능 영역(Li2)보다 우선적으로 입력 가능 위치(Li)로 추출할 수 있다.
다시, 도 15를 참조하면, 입력 가능 위치 추출이 더 필요한지를 판단한다(S348e).
구체적으로 도 8 및 도 9를 참조하면, 치환가능 영역(Li1) 및 결합 영역(Li3)만으로 입력 가능 위치(Li)의 필요한 개수가 충족되는 경우에는 더 이상 입력 가능 위치(Li)를 추출할 필요가 없다.
만일, 치환가능 영역(Li1) 및 결합 영역(Li3)만으로 입력 가능 위치의 필요한 개수가 충족되지 않는 경우에는 계속해서 입력 가능 위치(Li)를 추출해야 한다.
다시, 도 15를 참조하면, 삽입가능 영역을 입력 가능 위치로 추출한다(S348f).
구체적으로 도 8 및 도 9를 참조하면, 삽입가능 영역(Li2)은 원본 데이터(Do)의 확대되는 사이즈가 치환가능 영역(Li1)이나 결합 영역(Li3)에 비해서 상대적으로 가장 크므로 가장 마지막으로 입력 가능 위치(Li)로 추출될 수 있다.
이하, 도 1, 도 10, 도 11 및 도 16을 참조하여, 본 발명의 몇몇 실시예들에 따른 데이터 열람 검증 방법의 검증 방법을 설명한다.
도 16을 참조하면, 클라이언트로부터 제2 검증 데이터 및 데이터 검증 요청을 수신한다(S410).
구체적으로, 도 1, 도 10 및 도 11을 참조하면, 서비스 모듈(110)은 도 1의 클라이언트(10)로부터 제2 검증 데이터(Dv2)를 수신할 수 있다. 여기서, 제2 검증 데이터(Dv2)는 도 1의 클라이언트(10)가 보유하고 있는 검증 데이터일 수 있다. 클라이언트(10)는 제2 검증 데이터(Dv2)와 함께 데이터 검증 요청을 서비스 모듈(110)로 전송할 수 있다.
다시, 도 16을 참조하면, 제2 검증 데이터의 제2 무결성 값을 생성한다(S420).
구체적으로, 도 1, 도 10 및 도 11을 참조하면, 데이터 모듈(120)은 제2 검증 데이터(Dv2)를 수신하고 이를 해싱하여 제2 무결성 값(H2)을 생성할 수 있다.
다시, 도 16을 참조하면, 제2 무결성 값에 대응하는 제2 레코드가 존재하는지를 판단한다(S430).
구체적으로, 도 1, 도 10 및 도 11을 참조하면, 만일 제2 검증 데이터(Dv2)가 상술한 제1 검증 데이터(Dv1)와 동일한 경우 제2 무결성 값(H2)과 제1 무결성 값(H1)이 서로 동일할 수 있다. 또한, 제2 레코드는 제1 레코드와 동일할 수 있다.
만일, 제2 무결성 값(H2)에 대응하는 제2 레코드가 존재하지 않는 경우, 클라이언트에게 요청 실패 메시지를 전송한다(S490).
만일, 제2 무결성 값(H2)에 대응하는 제2 코드가 존재하는 경우, 검증 절차를 계속해서 진행할 수 있다.
다시, 도 16을 참조하면, 제2 레코드에 대응하는 원본 데이터를 로드한다(S440).
구체적으로, 도 1, 도 10 및 도 11을 참조하면, 데이터 모듈(120)은 원본 데이터(Do)에 대응하는 제1 데이터 고유값(I1)을 데이터 웨어하우스(130)로 전송하고, 원본 데이터(Do)를 수신할 수 있다.
다시, 도 16을 참조하면, 원본 데이터와 제2 검증 데이터를 대조하여 제2 검증 지문을 추출한다(S450).
구체적으로, 도 1, 도 10 및 도 11을 참조하면, 데이터 모듈(120)은 원본 데이터(Do) 및 제2 검증 데이터(Dv2)를 대조하여 제2 검증 지문(Fp2)을 추출할 수 있다. 이때, 제2 검증 데이터(Dv2)가 상술한 제1 검증 데이터(Dv1)와 동일한 경우 제2 검증 지문(Fp2)은 제1 검증 지문(Fp1)과 동일할 수 있다.
다시, 도 16을 참조하면, 추출에 성공하였는지를 판단한다(S460).
만일, 제2 검증 지문의 추출에 실패한 경우, 클라이언트에게 요청 실패 메시지를 전송한다(S490).
만일, 제2 검증 지문의 추출에 실패한 경우, 검증 절차를 계속해서 진행할 수 있다.
이어서, 제2 검증 지문과 제2 무결성 값으로 검증한다(S470).
구체적으로, 도 1, 도 10 및 도 11을 참조하면, 검증 데이터베이스(150)는 검증 모듈(140)로부터 제2 무결성 값(H2) 및 제2 검증 지문(Fp2)을 수신할 수 있다. 검증 데이터베이스(150)는 검증 모듈(140)로 및 제4 응답(Ack4)을 전송할 수 있다. 제4 응답(Ack4)은 검증 데이터베이스(150)에 제2 검증 지문(Fp2)과 제2 무결성 값(H2)이 같은 레코드에 위치하였는 지에 대한 응답일 수 있다. 제2 검증 지문(Fp2)과 제2 무결성 값(H2)이 같은 레코드 즉, 제2 레코드에 존재하는 경우 제2 검증 데이터(Dv2)에 대한 검증이 완료될 수 있다.
이어서, 검증 결과를 클라이언트에게 전송한다(S480).
구체적으로, 도 1, 도 10 및 도 11을 참조하면, 서비스 모듈(110)은 검증 모듈(140)로부터 제4 응답(Ack4)을 수신할 수 있다. 서비스 모듈(110)은 클라이언트(10)에게 제4 응답(Ack4)을 회신할 수 있다.
도 17은 본 발명의 실시예들에 따른 데이터 열람 검증 시스템이 구현된 전자 시스템의 블록도이다.
도 17을 참조하면, 본 발명의 실시예에 따른 전자 시스템(1100)은 컨트롤러(1110), 입출력 장치(1120, I/O), 기억 장치(1130, memory device), 인터페이스(1140) 및 버스(1150, bus)를 포함할 수 있다. 컨트롤러(1110), 입출력 장치(1120), 기억 장치(1130) 및/또는 인터페이스(1140)는 버스(1150)를 통하여 서로 결합될 수 있다. 버스(1150)는 데이터들이 이동되는 통로(path)에 해당한다.
컨트롤러(1110)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit), 마이크로프로세서, 디지털 신호 프로세스, 마이크로컨트롤러, 어플리케이션 프로세서(AP, application processor) 및 이들과 유사한 기능을 수행할 수 있는 논리 소자들 중에서 적어도 하나를 포함할 수 있다. 입출력 장치(1120)는 키패드(keypad), 키보드, 터치스크린 및 디스플레이 장치 등을 포함할 수 있다. 기억 장치(1130)는 데이터 및/또는 명령어 등을 저장할 수 있다.
인터페이스(1140)는 통신 네트워크로 데이터를 전송하거나 통신 네트워크로부터 데이터를 수신하는 기능을 수행할 수 있다. 인터페이스(1140)는 유선 또는 무선 형태일 수 있다. 예컨대, 인터페이스(1140)는 안테나 또는 유무선 트랜시버 등을 포함할 수 있다. 도시하지 않았지만, 전자 시스템(1100)은 컨트롤러(1110)의 동작을 향상시키기 위한 동작 메모리로서, 고속의 디램 및/또는 에스램 등을 더 포함할 수도 있다.
전자 시스템(1100)은 개인 휴대용 정보 단말기(PDA, personal digital assistant) 포터블 컴퓨터(portable computer), 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 디지털 뮤직 플레이어(digital music player), 메모리 카드(memory card), 또는 정보를 무선환경에서 송신 및/또는 수신할 수 있는 모든 전자 제품에 적용될 수 있다.
또는 본 발명의 실시예들에 따른 데이터 열람 검증 시스템은 복수의 전자 시스템(1100)이 네트워크를 통해서 서로 연결되어 형성된 시스템일 수 있다. 이러한 경우에는 각각의 모듈 또는 모듈의 조합들이 전자 시스템(1100)으로 구현될 수 있다.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (17)

  1. 클라이언트로부터 제1 원본 데이터에 대한 데이터 열람 요청을 수신하고, 클라이언트에게 제1 검증 데이터를 회신하는 서비스 모듈;
    상기 서비스 모듈로부터 상기 제1 원본 데이터에 대응하는 제1 데이터 고유값을 수신하고, 상기 제1 데이터 고유값에 대응하는 제1 검증 지문을 생성하는 검증 모듈;
    상기 제1 검증 지문을 수신하여 상기 제1 원본 데이터에 주입하여 상기 제1 검증 데이터를 생성하고, 상기 제1 검증 데이터를 해싱(hashing)하여 제1 무결성 값을 생성하는 데이터 모듈; 및
    상기 제1 데이터 고유값, 상기 제1 검증 지문, 상기 제1 무결성 값을 포함하는 데이터 열람 정보를 상기 원본 데이터로 식별되는 하나의 레코드에 저장하는 검증 데이터베이스를 포함하되,
    상기 서비스 모듈은 헥스(Hex) 코드로 표현되는 제2 검증 지문을 포함하는 제2 검증 데이터 및 데이터 검증 요청을 상기 클라이언트로부터 수신하고, 이에 대한 제1 및 제2 검증 응답을 회신하고,
    상기 데이터 모듈은 상기 제2 검증 데이터를 해싱하여 제2 무결성 값을 생성하고, 제2 원본 데이터와 상기 제2 검증 데이터를 대조하여 상기 제2 검증 지문을 생성하고,
    상기 검증 데이터베이스는 상기 제2 무결성 값이 저장된 제2 레코드가 존재하는 경우, 상기 제2 무결성 값에 대응하는 상기 제2 원본 데이터를 확인하고, 상기 제2 검증 지문과 상기 제2 무결성 값이 상기 제2 레코드에 같이 저장되어 있는지를 판단하고,
    상기 제1 검증 응답은 상기 제2 무결성 값에 대응하는 상기 제2 레코드가 있는지에 대한 응답이고,
    상기 제2 검증 응답은 상기 제2 무결성 값과 상기 제2 검증 데이터가 같은 레코드에 있는지에 대한 응답인
    데이터 열람 검증 시스템.
  2. 제1 항에 있어서,
    상기 검증 데이터베이스는 복수의 노드를 포함하고,
    상기 데이터 열람 정보는 복수의 블록 체인 형태로 상기 복수의 노드에 각각 저장되는 데이터 열람 검증 시스템.
  3. 삭제
  4. 삭제
  5. 제1 항에 있어서,
    상기 데이터 열람 정보는 상기 클라이언트에 대한 조회자 정보 및 상기 데이터 열람 요청에 대응하는 요청 시각을 포함하는 데이터 열람 검증 시스템.
  6. 제1 항에 있어서,
    상기 검증 데이터베이스는 상기 데이터 고유값 및 상기 제1 검증 지문을 상기 원본 데이터로 식별되는 하나의 레코드에 1차 저장한 후에, 상기 제1 무결성 값을 상기 레코드에 추가적으로 2차 저장하여 갱신하는 데이터 열람 검증 시스템.
  7. 제1 항에 있어서,
    상기 데이터 열람 요청은 상기 원본 데이터에 대응하는 키(key) 값을 포함하는 제2 데이터 고유값을 포함하고,
    상기 서비스 모듈은 상기 제2 데이터 고유값에 대응하는 제1 데이터 고유값을 생성하는 데이터 열람 검증 시스템.
  8. 제7 항에 있어서,
    상기 제1 및 제2 데이터 고유값은 서로 동일한 값인 데이터 열람 검증 시스템.
  9. 클라이언트로부터 제1 원본 데이터에 대응하는 데이터 열람 요청을 수신하고,
    상기 제1 원본 데이터에 대응하는 제1 검증 지문를 임의적으로 생성하고,
    상기 제1 원본 데이터의 고유값, 상기 제1 검증 지문, 상기 클라이언트에 대한 조회자 정보를 제1 레코드에 저장하고,
    상기 제1 검증 지문을 상기 제1 원본 데이터에 삽입하여 제1 검증 데이터를 생성하고,
    상기 제1 검증 데이터를 해싱(hashing)하여 제1 무결성 값을 생성하고,
    상기 제1 무결성 값을 상기 제1 레코드에 추가로 저장하여 상기 제1 레코드를 갱신하는 것을 포함하고,
    상기 클라이언트로부터 헥스(Hex) 코드로 표현되는 제2 검증 지문을 포함하는 제2 검증 데이터 및 상기 제2 검증 데이터의 검증 요청을 수신하고,
    상기 제2 검증 데이터를 해싱하여 제2 무결성 값을 생성하고,
    상기 제2 무결성 값이 저장된 제2 레코드가 존재하는지와 상기 제2 레코드에 대응하는 제2 원본 데이터를 확인하고,
    상기 무결성 값에 대응하는 상기 제2 레코드가 존재하는 경우, 제1 검증 응답을 전송하고,
    상기 제2 원본 데이터와 상기 제2 검증 데이터를 대조하여 제2 검증 지문을 추출하고,
    상기 제2 검증 지문과 상기 제2 무결성 값이 상기 제2 레코드에 같이 저장되어 있는지를 판단하고,
    상기 제2 검증 지문과 상기 제2 무결성 값이 상기 제2 레코드에 같이 저장된 경우, 제2 검증 응답을 전송하는
    데이터 열람 검증 방법.
  10. 삭제
  11. 삭제
  12. 제9 항에 있어서,
    상기 제1 검증 데이터를 생성하는 것은,
    상기 원본 데이터의 미리 지정된 입력 가능 위치에 상기 제1 검증 지문을 삽입하는 것을 포함하는 데이터 열람 검증 방법.
  13. 제12 항에 있어서,
    상기 입력 가능 위치는 상기 원본 데이터의 데이터 타입에 따라 미리 지정된 데이터 열람 검증 방법.
  14. 제12 항에 있어서,
    상기 입력 가능 위치는 상기 원본 데이터의 비활용 영역에 위치하는 데이터 열람 검증 방법.
  15. 제9 항에 있어서,
    상기 제1 레코드에 저장하는 것은,
    상기 데이터 열람 요청에 대응하는 요청 시각을 상기 제1 레코드에 저장하는 것을 포함하는 데이터 열람 검증 방법.
  16. 제9 항에 있어서,
    상기 제1 검증 데이터의 외형은 상기 원본 데이터의 외형과 완전히 동일한 것을 포함하는 데이터 열람 검증 방법.
  17. 제9 항에 있어서,
    상기 제1 검증 데이터의 외형은 상기 원본 데이터의 외형과 서로 다른 것을 포함하는 데이터 열람 검증 방법.
KR1020200087954A 2020-07-16 2020-07-16 데이터 열람 검증 시스템 및 그 방법 KR102337673B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200087954A KR102337673B1 (ko) 2020-07-16 2020-07-16 데이터 열람 검증 시스템 및 그 방법
US17/068,499 US11645406B2 (en) 2020-07-16 2020-10-12 System for verifying data access and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200087954A KR102337673B1 (ko) 2020-07-16 2020-07-16 데이터 열람 검증 시스템 및 그 방법

Publications (1)

Publication Number Publication Date
KR102337673B1 true KR102337673B1 (ko) 2021-12-09

Family

ID=78866398

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200087954A KR102337673B1 (ko) 2020-07-16 2020-07-16 데이터 열람 검증 시스템 및 그 방법

Country Status (2)

Country Link
US (1) US11645406B2 (ko)
KR (1) KR102337673B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003134108A (ja) * 2001-10-30 2003-05-09 Ricoh Co Ltd 電子署名システム、電子署名検証装置、電子署名検証方法、プログラム、及び記録媒体
KR20110054778A (ko) * 2009-11-18 2011-05-25 중소기업은행 보안성을 강화한 문서 보안 시스템 및 그 동작방법
KR20140110155A (ko) * 2013-03-04 2014-09-17 황선철 디지털 핑거프린팅 방법
KR20200063609A (ko) * 2018-11-28 2020-06-05 남윤형 문서 위변조 방지 시스템 및 방법

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7778437B2 (en) 1994-03-17 2010-08-17 Digimarc Corporation Media and methods employing steganographic marking
US20030133592A1 (en) 1996-05-07 2003-07-17 Rhoads Geoffrey B. Content objects with computer instructions steganographically encoded therein, and associated methods
US7024016B2 (en) 1996-05-16 2006-04-04 Digimarc Corporation Digital watermarking apparatus and methods
JP3349910B2 (ja) 1997-02-12 2002-11-25 日本電気株式会社 画像データエンコードシステム
US6785815B1 (en) 1999-06-08 2004-08-31 Intertrust Technologies Corp. Methods and systems for encoding and protecting data using digital signature and watermarking techniques
AU2001255445A1 (en) 2000-04-17 2001-10-30 Digimarc Corporation Authentication of physical and electronic media objects using digital watermarks
DE60136227D1 (de) 2000-12-14 2008-11-27 Silanis Technology Inc Webgestütztes verfahren und system zum anbringen einer legal durchsetzbaren signatur an einem elektronischen dokument
AU2002349780C1 (en) 2001-06-25 2006-09-21 Jp Morgan Chase Bank Electronic vouchers and a system and method for issuing the same
KR100646948B1 (ko) 2002-10-17 2006-11-17 주식회사 로마켓아시아 전자문서의 공증 및 검증 처리가 가능한 공증 센터 서버 및 그 방법
KR100430469B1 (ko) 2003-08-30 2004-05-08 주식회사 마크애니 문서 위조/변조 방지 시스템
US8140848B2 (en) 2004-07-01 2012-03-20 Digimarc Corporation Digital watermark key generation
KR20070061605A (ko) 2005-12-10 2007-06-14 배기봉 합법적 네트워크 마케팅 유통 지원 및 저작권 파일 무단전송/복제의 차단 및 탐지 가능한 저작권 보호 p2p 시스템
FR2907622A1 (fr) 2006-10-19 2008-04-25 St Microelectronics Sa Procede de transmission de donnees utilisant un code d'accuse de reception comportant des bits d'authentification caches
KR20080048159A (ko) 2006-11-28 2008-06-02 주식회사 마크애니 전자문서 자동 위변조 검증 시스템
KR20090075643A (ko) 2008-01-04 2009-07-08 (주)유스텍 온라인을 통한 인감 관리 서비스 제공 방법 및 그 시스템
US7999657B2 (en) 2009-12-07 2011-08-16 Konica Minolta Systems Laboratory, Inc. Image registration method for image comparison and document authentication
KR20120005364A (ko) 2010-07-08 2012-01-16 정보통신산업진흥원 전자 주소, 및 전자문서 유통 시스템
US8442997B2 (en) 2011-02-17 2013-05-14 Media Mark Technologies Limited Method and apparatus for monitoring the distribution of electronic files
KR101145110B1 (ko) 2011-04-21 2012-05-15 아스텔 주식회사 연성 워터마크 삽입/추출 장치 및 방법
CN102833298A (zh) * 2011-06-17 2012-12-19 英业达集团(天津)电子技术有限公司 分布式的重复数据删除系统及其处理方法
US9716711B2 (en) 2011-07-15 2017-07-25 Pagemark Technology, Inc. High-value document authentication system and method
US9043866B2 (en) 2011-11-14 2015-05-26 Wave Systems Corp. Security systems and methods for encoding and decoding digital content
US20150074397A1 (en) 2012-03-13 2015-03-12 Cognilore Inc. Method of distributing digital publications incorporating user generated and encrypted content with unique fingerprints
US9158770B1 (en) 2012-10-09 2015-10-13 Robert Beadles Memorytag hybrid multidimensional bar text code
JP6110517B2 (ja) * 2013-08-19 2017-04-05 華為技術有限公司Huawei Technologies Co.,Ltd. データオブジェクト処理方法及び装置
KR20160086680A (ko) 2015-01-12 2016-07-20 한국전자통신연구원 오디오 신호 통신 방법 및 시스템
KR101664228B1 (ko) 2015-05-27 2016-10-10 유니닥스주식회사 진본성 검증이 가능한 전자고지서를 이용한 전자문서 기반의 거래방법
FR3037174B1 (fr) 2015-06-08 2017-06-02 Jean Marc Marie Joseph Rietsch Securisation de donnees numeriques
KR101758727B1 (ko) 2015-10-15 2017-07-18 (주)레인보우와이어리스 문자 배열 디지털 코드로 구성되는 메시지를 이용하여 은닉 정보를 전송하는 방법
KR101746167B1 (ko) 2016-01-28 2017-06-13 경일대학교산학협력단 프라이버시 보호를 위한 영상 처리 장치, 이를 위한 방법 및 이 방법이 기록된 컴퓨터 판독 가능한 기록매체
EP3236401A1 (en) 2016-04-18 2017-10-25 Alitheon, Inc. Authentication-triggered processes
FR3059801B1 (fr) 2016-12-07 2021-11-26 Lamark Procede d’enregistrement d’un contenu multimedia, procede de detection d’une marque au sein d’un contenu multimedia, dispositifs et programme d’ordinateurs correspondants
KR101962275B1 (ko) 2017-07-06 2019-03-26 동국대학교 산학협력단 동영상 스테가노그래피 데이터의 암호화 및 복호화 방법
KR101979115B1 (ko) 2017-11-20 2019-05-15 경일대학교산학협력단 실시간 영상의 정보 보호를 위한 장치, 이를 위한 방법 및 이 방법이 기록된 컴퓨터 판독 가능한 기록매체
KR101880175B1 (ko) 2018-02-13 2018-07-19 주식회사 마크로젠 복수의 블록체인에 기반을 둔 생명정보 데이터 제공 방법, 생명정보 데이터 저장 방법 및 생명정보 데이터 전송 시스템
KR101893729B1 (ko) 2018-03-28 2018-10-04 주식회사 마크로젠 복수의 블록체인에 기반한 데이터 공유 방법
KR102114391B1 (ko) 2018-04-16 2020-05-25 이세희 전산화된 기록물의 보안출력 시스템 및 방법
CN110750811B (zh) * 2018-07-05 2021-05-25 腾讯科技(深圳)有限公司 数据存储方法、数据校验方法、装置、设备及介质
US10452964B1 (en) 2018-08-31 2019-10-22 Xerox Corporation Hidden bar code system via vector pattern correlation marks
KR101976098B1 (ko) 2018-11-02 2019-05-29 주식회사 블록젠 은닉 정보를 동영상 데이터에 삽입하는 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003134108A (ja) * 2001-10-30 2003-05-09 Ricoh Co Ltd 電子署名システム、電子署名検証装置、電子署名検証方法、プログラム、及び記録媒体
KR20110054778A (ko) * 2009-11-18 2011-05-25 중소기업은행 보안성을 강화한 문서 보안 시스템 및 그 동작방법
KR20140110155A (ko) * 2013-03-04 2014-09-17 황선철 디지털 핑거프린팅 방법
KR20200063609A (ko) * 2018-11-28 2020-06-05 남윤형 문서 위변조 방지 시스템 및 방법

Also Published As

Publication number Publication date
US11645406B2 (en) 2023-05-09
US20220019683A1 (en) 2022-01-20

Similar Documents

Publication Publication Date Title
CN110175840B (zh) 联盟链中实现轻钱包机制的方法、客户端、联盟链及系统
US10432411B2 (en) System and method for file time-stamping using a blockchain network
US9740849B2 (en) Registration and authentication of computing devices using a digital skeleton key
US10002151B2 (en) Client computer for updating a database stored on a server via a network
CN113326317B (zh) 基于同构多链架构的区块链存证方法及系统
EP4216131A1 (en) Transaction verification method and apparatus, device, and storage medium
US20130207780A1 (en) Scalable rfid systems: a privacy-preserving protocol with constant-time identification
EP2105860A2 (en) Method and apparatus for verifying integrity of redacted documents
CN110287262A (zh) 有效保护用户隐私的比特币交易查询方法
CN111209591B (zh) 一种按时间排序的存储结构与快速查询的方法
US20190342753A1 (en) Device configuration method, apparatus and system
US20130339749A1 (en) Distributed biometric data storage and validation
KR101424569B1 (ko) 시간 기반 인증 시스템 및 방법
US8284944B2 (en) Unified and persistent system and method for automatic configuration of encryption
US11329817B2 (en) Protecting data using controlled corruption in computer networks
US11621826B2 (en) Method and system for HTTP session management using hash chains
US11943374B2 (en) System, method, and computer program product for detecting malicious changelog modifications with blockchain
KR102125784B1 (ko) 블록체인을 활용한 음성 녹취 데이터 검증 방법
KR102337673B1 (ko) 데이터 열람 검증 시스템 및 그 방법
KR102337677B1 (ko) 디지털 검증 지문 삽입 시스템 및 그 방법
CN116579026A (zh) 一种云数据完整性审计方法、装置、设备及存储介质
CN110399706A (zh) 授权认证方法、装置和计算机系统
CN113870416B (zh) 基于全链路加密的三维实景模型展示方法以及相关装置
KR102423507B1 (ko) 정보 비교 검증 시스템 및 이를 이용한 정보 비교 검증 방법
US12051063B2 (en) Systems and methods for blockchain-based transaction break prevention

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant