KR102490756B1 - 암호화된 문서 컨텐츠를 제공하는 서버와 그 문서 컨텐츠의 뷰어 디바이스 - Google Patents

암호화된 문서 컨텐츠를 제공하는 서버와 그 문서 컨텐츠의 뷰어 디바이스 Download PDF

Info

Publication number
KR102490756B1
KR102490756B1 KR1020220098721A KR20220098721A KR102490756B1 KR 102490756 B1 KR102490756 B1 KR 102490756B1 KR 1020220098721 A KR1020220098721 A KR 1020220098721A KR 20220098721 A KR20220098721 A KR 20220098721A KR 102490756 B1 KR102490756 B1 KR 102490756B1
Authority
KR
South Korea
Prior art keywords
data
user
identification information
book
information
Prior art date
Application number
KR1020220098721A
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 KR1020220098721A priority Critical patent/KR102490756B1/ko
Application granted granted Critical
Publication of KR102490756B1 publication Critical patent/KR102490756B1/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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services

Abstract

본 발명은 암호화된 문서 컨텐츠를 제공하는 서버 및 뷰어 디바이스에 대한 것으로, 사용자가 지정한 특정 단말기와 통신을 연결하는 통신부와, 사용자가 구매한 전자도서의 일부분을 스캔하여, 상기 사용자가 구매한 전자도서의 일부분에 대응하는 이미지 데이터를 생성하는 스캔부와, 상기 이미지 데이터를 문자열 데이터로 인코딩(encoding)하는 변환부와, 상기 사용자의 식별 정보와 상기 특정 단말기 식별 정보의 조합으로 암호화 키를 생성 및, 생성된 암호화 키로 상기 문자열 데이터로 변환된 이미지 데이터를 암호화하여 암호화된 부분 도서 데이터를 생성하는 암호화부 및, 상기 사용자의 구매 요청 및 결제 완료에 대한 응답으로 상기 전자도서의 일 부분에 대한 구매를 승인하며, 상기 사용자의 구매 요청 및 결제에 대한 응답으로 상기 암호화된 부분 도서 데이터를 상기 특정 단말기에 전송하는 제어부를 포함하는 것을 특징으로 한다.

Description

암호화된 문서 컨텐츠를 제공하는 서버와 그 문서 컨텐츠의 뷰어 디바이스{A SERVER PROVIDING ENCRYPTED DOCUMENT CONTENT, A VIEWER DEVICE OF THE DOCUMENT CONTENTS}
본 발명은 문서 컨텐츠 뷰어를 제공하는 시스템에 대한 것으로, 특히 암호화된 문서 컨텐츠를 복호화하여 표시하는 뷰어 디바이스 및, 상기 암호화된 문서 컨텐츠를 제공하는 서버에 대한 것이다.
정보 통신망 관련 기술이 발전하면서, 다양한 정보들이 디지털 데이터의 형태로 제공되고 있다. 더욱이 PC 또는 이동 단말기 관련 기술이 발전하면서, 종래 하드 카피(hard copy)의 형태로 제공되던 정보들을 디지털 데이터의 형태로 제공하는 사례가 증가하고 있다.
이러한 디지털 데이터 활용 방안의 일환으로, 컨텐츠를 종이 매체를 이용하지 않고 디지털 데이터의 형태로 생성하여 제공하는 전자책(E-book)이 등장하였다. 전자책은 종이 매체가 아닌 디지털 형태로 출간된 책을 의미하는 것으로, 사용자의 PC 또는 이동 단말기를 통해 사용자가 이용할 수 있어서 매우 편리하다는 이점이 있다.
그런데 복사 및 유통이 매우 용이하다는 디지털 데이터의 특징에 따라 전자책 역시 마찬가지로 복사 및 유통이 매우 용이하다는 특징이 있다. 따라서 전자책의 경우 저작권 보호가 무척 취약하며, 전자책 컨텐츠의 무단 사용을 방지하기 어렵다는 단점을 가진다. 그리고 이러한 디지털 컨텐츠의 단점을 보완하고 저작권을 보호하기 위하여 디지털 컨텐츠에 대한 DRM(Digital Right Management) 관련 기술이 등장하였다.
이러한 DRM 기술의 일환으로 암호화된 디지털 컨텐츠를 제공하고, 제공된 암호화된 디지털 컨텐츠에 대하여 인증된 사용자에 한하여 상기 디지털 컨텐츠를 이용할 수 있도록 하는 방안이 등장하였다. 그러나 이와 같은 DRM 기술은 적법한 사용자라고 할지라도, 디지털 컨텐츠를 확인하기 위해서는 암호화된 디지털 컨텐츠를 복호화하기 위한 지정된 키 또는 패스워드를 입력하여야 한다는 문제가 있다. 즉, 사용자가 디지털 컨텐츠를 확인할 때마다 지정된 키 또는 패스워드가 입력되어야 하므로, 사용자에게 불편을 준다는 문제가 있으며, 또한 지정된 키 또는 패스워드가 반복적으로 입력됨에 따라 상기 키 또는 패스워드가 유출될 가능성이 높아진다는 문제가 있다.
또한 현재 DRM의 경우 사용자의 악의적인 키 또는 패스워드 이용에 대해서는 이를 제지할 방안이 없다는 문제가 있다. 즉, 디지털 컨텐츠가 암호화되어 전송된다고 할지라도, 사용자가 자신의 키 또는 패스워드를 복수의 다른 사용자와 공유하는 경우, 상기 복수의 다른 사용자가 상기 사용자의 키 또는 패스워드를 이용하여 상기 암호화된 디지털 컨텐츠를 이용하는 것을 제한할 수 없다는 문제가 있다.
본 발명은 전술한 문제 및 다른 문제를 해결하는 것을 목적으로 하는 것으로, 사용자의 지정된 키 또는 패스워드 입력 없이도 암호화된 디지털 컨텐츠가 자동으로 복호화될 수 있도록 하는 암호화된 문서 컨텐츠를 제공하는 서버와 그 문서 컨텐츠의 뷰어 디바이스를 제공하는 것을 그 목적으로 한다.
또한 본 발명은, 사용자가 자신의 키 또는 패스워드를 복수의 다른 사용자와 공유하는 경우에도, 공유된 키 또는 패스워드에 근거하여 상기 복수의 다른 사용자가 상기 암호화된 문서 컨텐츠를 복호화할 수 없도록 하는 암호화된 문서 컨텐츠를 제공하는 서버와 그 문서 컨텐츠의 뷰어 디바이스를 제공하는 것을 그 목적으로 한다.
상기 또는 다른 목적을 달성하기 위해 본 발명의 일 측면에 따르면, 본 발명의 실시 예에 따라 암호화된 부분 도서 데이터를 전송하는 서비스 서버는, 사용자가 지정한 특정 단말기와 통신을 연결하는 통신부와, 사용자가 구매한 전자도서의 일부분을 스캔하여, 상기 사용자가 구매한 전자도서의 일부분에 대응하는 이미지 데이터를 생성하는 스캔부와, 상기 이미지 데이터를 문자열 데이터로 인코딩(encoding)하는 변환부와, 상기 사용자의 식별 정보와 상기 특정 단말기 식별 정보의 조합으로 암호화 키를 생성 및, 생성된 암호화 키로 상기 문자열 데이터로 변환된 이미지 데이터를 암호화하여 암호화된 부분 도서 데이터를 생성하는 암호화부 및, 상기 사용자의 구매 요청 및 결제 완료에 대한 응답으로 상기 전자도서의 일 부분에 대한 구매를 승인하며, 상기 사용자의 구매 요청 및 결제에 대한 응답으로 상기 암호화된 부분 도서 데이터를 상기 특정 단말기에 전송하는 제어부를 포함하는 것을 특징으로 한다.
일 실시 예에 있어서, 상기 제어부는, 상기 전자도서의 일 부분에 대한 구매가 승인되면, 구매가 승인된 시각의 정보를 검출하고, 상기 사용자의 식별 정보와 상기 특정 단말기 식별 정보 및, 상기 구매 승인 시각의 정보의 조합으로 상기 암호화 키를 생성하며, 상기 암호화 키로서, 상기 구매 승인 시각의 정보만을 상기 특정 단말기에 전송하는 것을 특징으로 한다.
일 실시 예에 있어서, 상기 제어부는, 상기 구매 승인 시각의 정보를 상기 전자도서의 일 부분에 대한 구매가 승인되었음을 알리는 알림 정보에 포함하여 상기 특정 단말기로 전송하며, 상기 전송된 구매 승인 시각의 정보는, 대응하는 암호화된 부분 도서 데이터에 연관되게 상기 특정 단말기에 저장되는 것을 특징으로 한다.
일 실시 예에 있어서, 상기 제어부는, 상기 이미지 데이터가 상기 문자열 데이터로 인코딩되면, 상기 사용자의 식별 정보와 상기 특정 단말기 식별 정보 및 상기 구매 승인 시각의 정보 중 어느 하나를 상기 문자열 데이터의 기 설정된 위치에 드로잉 키로서 삽입하고, 상기 드로잉 키가 삽입된 문자열 데이터를, 상기 암호화 키로 암호화하도록 상기 암호화부를 제어하는 것을 특징으로 한다.
일 실시 예에 있어서, 상기 제어부는, 상기 사용자의 식별 정보와 상기 특정 단말기 식별 정보 및 상기 구매 승인 시각의 정보 중 어느 하나를 임의로 선택하여 상기 드로잉 키로 삽입하며, 상기 사용자의 식별 정보와 상기 특정 단말기 식별 정보 및 상기 구매 승인 시각의 정보는, 서로 동일한 개수의 문자로 형성되는 것을 특징으로 한다.
일 실시 예에 있어서, 상기 제어부는, 상기 문자열 데이터의 처음에 상기 드로잉 키에 해당하는 문자들을 삽입하는 것을 특징으로 한다.
일 실시 예에 있어서, 상기 변환부는, 상기 이미지 데이터에 대응하는 이진 데이터를, 기 설정된 개수의 비트들마다 대문자 알파벳, 소문자 알파벳, 0 부터 9까지의 숫자 및, 플러스 기호(+)와 마이너스 기호(-) 중 어느 하나의 문자로 변환하는 것을 특징으로 한다.
상기 또는 다른 목적을 달성하기 위해 본 발명의 일 측면에 따르면, 본 발명의 실시 예에 따라 상기 서비스 서버로부터 암호화된 부분 도서 데이터를 수신하는 단말기는, 디스플레이부와, 기 설정된 서비스 서버로부터, 상기 암호화된 부분 도서 데이터를 수신하는 통신부와, 상기 암호화된 부분 도서 데이터를 문자열 데이터로 복호화하는 복호화부와, 상기 문자열 데이터를 상기 부분 도서 데이터에 대응하는 이미지 데이터의 이진 데이터로 디코딩하는 디코딩(decoding)부와, 상기 디코딩된 이진 데이터에 대응하는 이미지를 상기 디스플레이부 상의 기 설정된 영역에 드로잉(drawing)하는 드로잉부 및, 상기 단말기에 기 저장된 사용자의 식별 정보와 상기 단말기의 식별 정보 및 상기 서비스 서버로부터 수신된 구매 승인 시각 정보의 조합으로 복호화 키를 생성하고, 생성된 복호화 키를 이용하여 상기 암호화된 부분 도서 데이터를 복호화하도록 상기 복호화부를 제어하는 제어부를 포함하는 것을 특징으로 한다.
일 실시 예에 있어서, 상기 구매 승인 시각 정보는, 상기 부분 도서 데이터의 구매가 완료됨에 따라 상기 부분 도서 데이터의 구매가 승인될 때 상기 서비스 서버에서 검출되고, 상기 구매 승인이 완료되었음을 알리는 응답 메시지와 함께 상기 서비스 서버로부터 제공되는 정보이며, 상기 제어부는, 상기 구매 승인 시각 정보가 수신되면, 상기 사용자가 구매한 부분 도서 데이터와 연관되게 상기 수신된 구매 승인 시각 정보를 저장하는 것을 특징으로 한다.
일 실시 예에 있어서, 상기 제어부는, 상기 암호화된 부분 도서 데이터가 문자열 데이터로 복호화되면, 복호화된 문자열 데이터의 문자들 중, 기 설정된 위치로부터 기 설정된 개수의 문자들을 드로잉 키로 추출하고, 추출된 드로잉 키가, 상기 단말기에 기 저장된 드로잉 키에 일치하는 경우 상기 문자열 데이터로부터 상기 추출된 문자들을 제거하는 것을 특징으로 한다.
일 실시 예에 있어서, 상기 드로잉 키는, 상기 단말기에 저장된 사용자의 식별 정보와 상기 단말기의 식별 정보 및, 상기 암호화된 부분별 도서 데이터에 연관되게 저장된 구매 승인 시각 정보 중 어느 하나임을 특징으로 한다.
일 실시 예에 있어서, 상기 사용자의 식별 정보와 상기 특정 단말기 식별 정보 및 상기 구매 승인 시각의 정보는, 서로 동일한 개수의 문자로 형성되는 것을 특징으로 한다.
일 실시 예에 있어서, 상기 디코딩부는, 상기 암호화된 부분 도서 데이터가 문자열 데이터로 복호화되면 복호화된 문자열 데이터의 문자들을, 대문자 알파벳, 소문자 알파벳, 0 부터 9까지의 숫자 및, 플러스 기호(+)와 마이너스 기호(-)에 대응하는 기 설정된 개수의 비트들로 변환하는 것을 특징으로 한다.
일 실시 예에 있어서, 상기 제어부는, 상기 디코딩된 이진 데이터에 대응하는 이미지가 그려지는 상기 디스플레이부 상의 기 설정된 영역에, 상기 단말기에 저장된 사용자의 식별 정보 및 상기 단말기의 식별 정보 중 적어도 하나를 나타내는 블록 패턴을 가지는 QR(Quick Response) 코드를 적어도 하나 표시하는 것을 특징으로 한다.
일 실시 예에 있어서, 상기 제어부는, 상기 디스플레이부 상에 기 설정된 영역에 사용자의 선택에 따른 색상의 배경 이미지를 표시하며, 상기 배경 이미지에 상기 적어도 하나의 QR 코드를 표시 및, 상기 QR 코드가 표시되는 배경 이미지에 중첩하여 상기 디코딩된 이진 데이터에 대응하는 이미지를 표시하며, 상기 QR 코드의 블록 패턴은, 상기 배경 이미지의 색상으로부터 기 설정된 색 거리를 가지는 색상으로 표시되는 것을 특징으로 한다.
본 발명에 따른 암호화된 문서 컨텐츠를 제공하는 서버와 그 문서 컨텐츠의 뷰어 디바이스의 효과에 대해 설명하면 다음과 같다.
본 발명의 실시 예들 중 적어도 하나에 의하면, 본 발명은 뷰어로 지정된 특정 디바이스의 식별 정보를 반영하여 디지털 컨텐츠를 암호화하여 전송하고, 상기 암호화된 디지털 컨텐츠에 대한 사용자의 선택이 있는 경우, 상기 특정 디바이스가 자신의 식별 정보를 이용하여 자동으로 복호화를 수행함으로써, 사용자가 암호화 키를 별도로 입력하지 않아도 상기 암호화된 디지털 컨텐츠가 복호화될 수 있다는 장점이 있다.
또한 본 발명의 실시 예들 중 적어도 하나에 의하면, 본 발명은 사용자가 선택한 특정 디바이스의 식별 정보를 이용하여 디지털 컨텐츠를 암호화하므로, 상기 특정 디바이스의 식별 정보 없이는 디지털 컨텐츠의 복호화가 불가능하다는 문제가 있다. 따라서 본 발명은 사용자가 미리 선택한 특정 디바이스 외에 다른 디바이스에서 상기 암호화된 디지털 컨텐츠의 출력이 불가능하다는 장점이 있다.
또한 본 발명은 디지털 컨텐츠를 이미지화하고 이미지화된 디지털 컨텐츠를 전송한다. 그리고 뷰어로 지정된 디바이스가 상기 디지털 컨텐츠에 대응하는 이미지를 드로잉(drawing)하여 디스플레이부 상에 표시하는 구성을 가진다. 따라서 본 발명은 디스플레이부 상에 이미지 파일이 표시되는 구성이 아니므로, 상기 이미지 파일을 복사하는 방식으로 디지털 컨텐츠가 무단 복제되는 것을 방지할 수 있다는 효과가 있다.
또한 본 발명은, 암호화된 디지털 컨텐츠를 제공하는 서버가, 상기 이미지화된 디지털 컨텐츠를 문자열로 인코딩(encoding)하고 인코딩된 데이터에 기 설정된 드로잉 키를 삽입하는 구성을 가진다. 그리고 뷰어로 지정된 디바이스가 미리 정의된 삽입 위치로부터 상기 드로잉 키를 추출 및 드로잉 키를 제거한 인코딩 데이터를 이미지화된 디지털 컨텐츠로 디코딩(decoding)하는 구성을 가진다. 따라서 상기 드로잉 키가 제거되지 않거나 잘못된 데이터가 제거되는 경우 상기 인코딩 데이터가 올바른 이미지 데이터로 디코딩되지 않도록 함으로써 상기 디지털 컨텐츠가 출력되는 것을 방지할 수 있다는 효과가 있다.
도 1은 본 발명의 실시 예에 따라 암호화된 문서 컨텐츠를 제공하는 서비스 서버와 그 문서 컨텐츠의 뷰어인 고객 단말기를 포함하는 전자도서 판매 시스템의 구조를 도시한 블록도이다.
도 2는 본 발명의 실시 예에 따른 서비스 서버의 구조를 도시한 블록도이다.
도 3은 본 발명의 실시 예에 따른 문서 컨텐츠 뷰어(고객 단말기)의 구조를 도시한 블록도이다.
도 4는 본 발명의 실시 예에 따라, 고객 단말기가 서비스 서버로부터 문서 컨텐츠를 구매 및, 구매한 문서 컨텐츠를 제공받는 동작 과정을 도시한 흐름도이다.
도 5는 본 발명의 실시 예에 따른 고객 단말기가, 서비스 서버로부터 제공된 암호화된 문서 컨텐츠를 표시하는 동작 과정을 도시한 흐름도이다.
도 6은 본 발명의 실시 예에 따른 고객 단말기가, 문서 컨텐츠를 표시하는 배경 이미지에 구매자의 식별 정보가 표시될 수 있도록 하는 동작 과정을 도시한 흐름도이다.
도 7은, 상기 도 6에서 구매자의 식별 정보를 포함하는 배경 이미지 상에 문서 컨텐츠가 표시되는 예를 도시한 예시도이다.
도 8은 본 발명의 실시 예에 따른 서비스 서버가, 드로잉 키가 삽입된 인코딩 데이터를 암호화하는 동작 과정을 도시한 흐름도이다.
도 9는 본 발명의 실시 예에 따른 고객 단말기가, 드로잉 키가 삽입된 인코딩 데이터를 디코딩하는 동작 과정을 도시한 흐름도이다.
본 명세서에서 사용되는 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다
본 명세서에서, "구성된다." 또는 "포함한다." 등의 용어는 명세서상에 기재된 여러 구성 요소들, 또는 여러 단계를 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
또한, 본 명세서에 개시된 기술을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 기술의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 또한 이하에서 설명되는 각각의 실시 예들 뿐만 아니라, 실시 예들의 조합은 본 발명의 사상 및 기술 범위에 포함되는 변경, 균등물 내지 대체물로서, 본 발명의 사상 및 기술 범위에 해당될 수 있음은 물론이다.
도 1은 본 발명의 실시 예에 따라 암호화된 문서 컨텐츠를 제공하는 서비스 서버와 그 문서 컨텐츠의 뷰어인 고객 단말기를 포함하는 전자도서 판매 시스템의 구조를 도시한 블록도이다. 그리고 이하의 설명에서는 설명의 편의상 사용자의 단말기, 즉 고객 단말기(20)가 사용자가 구매한 부분별 도서 데이터의 뷰어(viewer)로 설정된 것을 가정하여 설명하기로 한다.
도 1을 참조하여 살펴보면, 본 발명의 실시 예에 따른 전자도서 판매 시스템은 전자도서의 도서 데이터를 제공하는 도서 제공처 서버(40), 그리고 상기 도서 제공처 서버(40)로부터 도서 데이터를 제공받아 사용자, 즉 고객에게 판매 서비스를 제공하는 서비스 서버(10), 그리고 상기 서비스 서버(10)에 접속하여 고객의 요청에 따른 인증 및 결제 과정을 진행하고, 인증 및 결제에 대한 응답으로 상기 서비스 서버(10)로부터 도서 데이터를 제공받는 고객 단말기(20)를 포함할 수 있다.
먼저 도서 제공처 서버(40)는 서비스 서버(10)와의 상호 작용에 대한 응답으로 전자화된 도서 데이터, 즉 전자도서 데이터를 제공할 수 있다. 여기서 상기 서비스 서버(10)와의 상호 작용은, 특정 전자도서에 대한 도서 데이터의 요청 및 그에 대한 응답일 수 있다. 상기 도서 제공처 서버(40)는, 상기 서비스 서버(10) 주체와 상기 도서 제공처 서버(40)의 주체 사이에서 체결된 공급 계약에 근거하여 상기 서비스 서버(10)의 요청에 따른 도서 데이터를 제공할 수 있으며, 제공된 도서 데이터에 상응하는 대가를 상기 공급 계약에 근거하여 상기 서비스 서버(10)로부터 지급받을 수 있다.
한편 상기 공급 계약에 근거하여, 상기 도서 제공처 서버(40)는 도서 데이터에 대응하는 각 전자도서의 요약 정보(도서 요약 정보)를 서비스 서버(10)에 제공할 수 있다. 그러면 서비스 서버(10)는 상기 도서 제공처 서버(40)에서 제공되는 도서 요약 정보를, 별도의 제휴 계약을 통해 제휴된 적어도 하나의 포털 사이트(30)를 통해 광고 및 게시할 수 있다. 여기서 상기 도서 요약 정보는, 전자도서에 관련된 요약 정보로서, 상기 전자도서의 표지, 서지 사항, 전자도서의 내용에 대한 간략한 요약이나 개요, 또는 상기 전자도서에 수록된 대표 삽화 등에 대한 정보를 포함할 수 있다.
여기서 상기 도서 제공처 서버(40)는 전자도서를 출간하는 출판사의 서버일 수 있다. 이 경우 상기 도서 제공처 서버(40)의 주체는 상기 전자도서의 출판사일 수 있으며, 상기 도서 제공처 서버(40)에서 제공되는 도서 데이터는, 상기 출판사에서 출간되는 전자도서의 도서 데이터일 수 있다.
또는 상기 도서 제공처 서버(40)는 하나 이상의 출판사에서 출간되는 전자도서들의 판매를 대행하는 판매 대행업체일 수 있다. 일 예로 상기 도서 제공처 서버(40)는, 적어도 하나의 출판사에서 출간된 전자도서를 판매하는 쇼핑몰의 서버일 수 있다. 이 경우 상기 도서 제공처 서버(40)의 주체는 상기 쇼핑몰일 수 있으며, 상기 쇼핑몰이 출판사로부터 제공받은 전자도서의 도서 데이터가, 상기 서비스 서버(10)로 제공될 수 있다.
한편 서비스 서버(10)는 도서 제공처 서버(40)로부터 제공되는 도서 요약 정보에 근거하여 포털 사이트(30)에 상기 도서 제공처 서버(40)가 제공하는 전자도서에 대한 광고 및 게시를 수행할 수 있다. 이 경우 서비스 서버(10)는 상기 도서 요약 정보에 따른 전자도서 관련 정보를 게시물의 형태로 제휴된 포털 사이트(30)에 업로드 할 수 있으며, 관련된 검색어가 입력될 때 상기 업로드된 게시물이 검색 결과의 상위에 게시될 수 있도록, 검색 엔진 최적화(Search Engine Optimization, 또는 Search Engine Optimizer, SEO) 기법을 통해 상기 포털 사이트(30)에 업로드된 게시물을 관리할 수 있다.
따라서 상기 도서 요약 정보에 따른 전자도서 관련 정보는 포털 사이트(30)의 검색 화면을 통해 검색될 수 있다. 그리고 검색된 게시물을 고객(사용자)이 선택하는 경우, 서비스 서버(10)는 상기 도서 요약 정보에 따른 보다 많은 전자도서의 내용, 전자도서의 출판사와 저자, 및 출판 시점 등 전자도서에 관련된 세부 정보를 포함하는 세부 관련 정보를 고객 단말기(20)에 전송하여, 사용자가 선택한 전자도서에 대한 보다 세부적인 정보를 고객에게 제공할 수 있다.
한편 상기 전자도서에 대한 세부 관련 정보는, 상기 전자도서의 판매 서비스를 제공하는 상기 서비스 서버(10)에 대한 링크 정보를 포함할 수 있다. 그러면 사용자는, 상기 링크 정보를 통해 서비스 서버(10)에 접속할 수 있으며, 고객 단말기(20)가 상기 링크 정보를 통해 서비스 서버(10)에 접속되는 경우, 상기 고객 단말기(20)의 디스플레이부 상에 상기 서비스 서버(10)가 제공하는 다양한 기능들을 포함하는 인터페이스 화면이 표시될 수 있다.
여기서 상기 서비스 서버(10)가 제공 가능한 기능들은, 서비스 서버(10)를 통해 판매되는 전자도서들에 대한 검색 기능을 포함할 수 있다.
상기 검색 기능의 일환으로 서비스 서버(10)는, 검색이 요청된 특정 전자도서의 도서 요약 정보로부터 상기 특정 전자도서의 목차 정보를 추출할 수 있다. 그리고 추출된 목차 정보에 근거하여 상기 특정 전자도서의 목차에 포함된 항목들 및, 각 항목들에 대한 정보, 예를 들어 각 항목의 명칭, 각 항목에 대응하는 페이지들이나 단락들에 대한 정보 등을 제공할 수 있다. 그리고 상기 목차의 항목과, 각 항목에 관련된 정보들을 상기 특정 전자도서의 검색 요청에 대한 응답으로 제공할 수 있다.
또는 서비스 서버(10)는, 사용자로부터 상기 특정 전자도서에 대한 검색 키워드가 입력되는 경우, 상기 검색 키워드에 대한 검색을 수행할 수 있다. 그리고 검색 결과로서, 상기 특정 전자도서로부터 상기 검색 키워드를 포함하는 단락들의 정보나, 페이지들의 정보, 또는 상기 전자도서의 목차에 따른 항목들 중, 상기 검색 키워드가 포함된 단락을 포함하는 적어도 하나의 항목에 대한 정보를 제공할 수 있다.
한편 상기 서비스 서버(10)는 상기 검색 요청에 따른 검색 결과로서, 상기 검색 키워드를 포함하는 적어도 하나의 부분별 도서 데이터를 제공할 수도 있다. 여기서 상기 부분별 도서 데이터는, 상기 전자도서의 일부로서, 상기 전자도서의 목차에 따른 항목들 중 특정 항목에 대응하는 내용을 포함하는 도서 데이터이거나 또는 특정 페이지에 대응하는 내용을 포함하는 도서 데이터일 수 있다. 또는 상기 전자도서의 단락들 중 어느 하나의 단락에 대응하는 내용을 포함하는 도서 데이터일 수 있다.
이 경우 상기 검색 결과로서 제공되는 부분별 도서 데이터는, 상기 검색 키워드를 포함하는 일부만이 식별 가능하도록 표시되는 상태, 즉 부분별 도서 데이터의 일부가 식별될 수 없도록 가림 처리된 도서 데이터(이하 제한된 부분별 도서 데이터)일 수 있다.
일 예로 상기 제한된 부분별 도서 데이터는, 상기 검색 키워드를 포함하는 기 설정된 개수의 줄(예를 들어 한 줄) 또는 상기 검색 키워드 전후의 기 설정된 개수의 단어를 포함하는 일부분만이 식별 가능하도록 표시되고 나머지 부분이 식별 불가능하도록 가림 처리된 부분별 도서 데이터일 수 있다.
따라서 상기 검색 키워드를 포함하는 한 줄 또는 몇 개의 단어들만 식별 가능하게 표시되는 상기 전자도서의 단락들이 목차의 항목 또는 단락 단위로 상기 검색 결과로서 제공되거나, 상기 검색 키워드를 포함하는 한 줄 또는 몇 개의 단어들만 식별 가능하게 표시되는 상기 전자도서의 페이지들이 상기 검색 결과로서 제공될 수 있다.
그리고 상기 서비스 서버(10)는 상기 검색 결과와 함께 검색된 부분별 도서 데이터에 관련된 정보를 사용자에게 제공할 수 있다. 예를 들어 상기 검색된 부분별 도서 데이터에 관련된 정보는 상기 검색된 부분별 도서 데이터 각각에 대한 가격 정보일 수 있다.
그리고 상기 검색 결과에 대한 응답으로 사용자가 구매 요청 및, 구매 요청에 따른 결제가 이루어지는 경우, 서비스 서버(10)는 결제가 이루어진 적어도 하나의 부분별 도서 데이터의 가림 상태를 해제할 수 있다. 그리고 가림 상태가 해제된 부분별 도서 데이터, 즉 전체 부분의 식별이 가능한 부분별 도서 데이터를 사용자에게 제공할 수 있다.
여기서 '부분별 도서 데이터의 제공'은, 상기 구매된 부분별 도서 데이터의 내용을 사용자가 지정한 전자매체(예 : 고객 단말기(20))를 통해 표시하는 것을 의미할 수 있다.
한편 이러한 부분별 도서 데이터의 제공을 위해, 상기 서비스 서버(10)는 사용자가 구매한 부분별 도서 데이터의 내용을 스캔하여, 상기 부분별 도서 데이터에 대응하는 이미지 데이터를 생성할 수 있다. 그리고 생성된 이미지 데이터를 기 설정된 인코딩 방식으로 인코딩하여 문자열로 변환할 수 있다. 그리고 변환된 문자열을 기 설정된 암호화 키를 이용하여 암호화할 수 있다.
일 예로 상기 서비스 서버(10)는 상기 부분별 도서 데이터의 내용을 스캔한 이미지 데이터를 base64 알고리즘에 따라 인코딩할 수 있다. 이 경우 상기 이미지 데이터에 대응하는 이진 데이터, 즉 비트열은, 6개의 비트마다 대문자 알파벳(A부터 Z), 소문자 알파벳(a 부터 z), 0 부터 9, 그리고 플러스 기호(+)와 마이너스 기호(-), 총 64개의 문자 중 어느 하나의 문자로 변환될 수 있다. 따라서 부분별 도서 데이터의 내용에 대응하는 이미지가, 하나의 긴 문자열의 형태(문자열 데이터)로 변환될 수 있다.
그러면 서비스 서버(10)는 미리 설정된 암호화 키를 이용하여 상기 문자열 데이터를 암호화할 수 있다. 이 경우 서비스 서버(10)는 기 설정된 암호화 알고리즘을 이용할 수 있다, 일 예로 상기 서비스 서버(10)는 CryptoJS에서 선언된 방식에 따라 상기 문자열 데이터를 암호화할 수 있다. 이 경우 서비스 서버(10)는 상기 CryptoJS에서 선언된 AES(Advanced Encryption Standard) 알고리즘에 따라 상기 문자열 데이터를 암호화할 수 있다.
또한 상기 미리 설정된 암호화 키는, 상기 부분별 도서 데이터를 구매한 고객의 식별 정보(예 : 고객의 ID), 상기 고객이 상기 부분별 도서 데이터의 뷰어(viewer)로 미리 설정한 기기의 식별 정보(예 : 뷰어 ID)를 포함할 수 있다. 여기서 상기 뷰어는 상기 고객 단말기(20)일 수 있으며, 상기 고객 단말기의 식별 정보는, 고객이 자신의 정보를 서비스 서버(10)에 등록 시, 또는 상기 부분별 도서 데이터의 구매 시에, 상기 고객이 지정한 특정 단말기에 부여되는 고유 정보일 수 있다. 이 경우 상기 뷰어의 식별 정보는 상기 고객의 식별 정보와 함께 저장될 수 있다. 또는 상기 부분별 도서 데이터의 구매 이력과 함께 저장될 수 있다.
한편 상기 고객의 식별 정보 및 뷰어의 식별 정보는 서비스 서버(10)와 뷰어인 고객 단말기(20)에 모두 저장 및, 변경되지 않는 정보로서 고정된 정보일 수 있다. 이러한 고정된 정보의 경우 보안에 취약할 수 있다.
이에 서비스 서버(10)는 부분별 도서 데이터의 구매 요청이 승인된 시각, 즉 구매 승인 시각의 정보를 더 검출할 수 있다. 그리고 상기 암호화 키로서 상기 구매 승인 시각을 더 이용함으로서, 상기 부분별 도서 데이터의 보안성을 보다 강화할 수 있다.
이 경우 상기 고객의 식별 정보 및 뷰어의 식별 정보는 고객 단말기(20)에 미리 저장되어 있는 정보일 수 있으나, 상기 구매 승인 시각 정보는 구매가 이루어지는 경우에 한하여 발생한 정보일 수 있다. 따라서 상술한 바와 같이 구매 승인 시각 정보가 암호화 키로서 더 이용되는 경우, 서비스 서버(10)는 상기 구매 승인 시각의 정보를 뷰어인 고객 단말기(20)에 별도로 더 전송할 수 있다. 이 경우 암호화 키로서는 고객의 식별 정보 및 뷰어의 식별 정보, 그리고 구매 승인 시각이 모두 반영될 수 있으나, 서비스 서버(10)는 고객 단말기(20)에 상기 구매 승인 시각의 정보만을 전달할 수 있다.
한편 상기 구매 승인 시각의 정보는 고객이 부분별 도서 데이터의 구매를 승인하는 시점에 검출될 수 있다. 따라서 서비스 서버(10)는 고객의 구매 요청에 따른 구매가 승인되는 경우, 승인을 알리는 알림 정보로서 상기 구매 승인 시각의 정보를 전송할 수도 있다. 이 경우 상기 구매 승인 시각 정보는 상기 알림 정보에 포함된 정보이나, 노출을 방지하기 위해 고객에게는 표시되지 않는 정보일 수 있다.
이와 같이 고객이 부분별 도서 데이터를 구매 시, 서비스 서버(10)에서 암호화된 부분별 도서 데이터는 고객 단말기(20)로 전송될 수 있다. 그리고 고객 단말기(20)에 저장될 수 있다.
상기 고객 단말기(20)는 전송된 상기 암호화된 부분별 도서 데이터를 기 설정된 데이터베이스 알고리즘에 따라 저장할 수 있다. 일 예로 고객 단말기(20)는 다양한 웹 브라우저에서 제공하는 웹 표준 IndexedDB 알고리즘에 따라 상기 암호화된 부분별 도서 데이터를 저장할 수 있다.
한편 고객 단말기(20)는 사용자의 요청이 있는 경우, 사용자의 요청에 대응하는 특정 암호화된 부분별 도서 데이터를 로드(load)할 수 있다. 그리고 로드된 부분별 도서 데이터를, 고객 단말기(20)에 설정된 암호화 키를 이용하여 복호화할 수 있다. 여기서 상기 암호화 키는 고객 단말기(20)에 미리 저장된 정보로서, 고객 단말기(20)에 저장된 고객 식별 정보, 즉 사용자의 식별 정보와, 고객 단말기(20)의 식별 정보일 수 있다.
따라서 고객 단말기(20)가, 사용자가 상기 부분별 도서 데이터를 구매하면서 지정한 뷰어인 경우, 상기 고객 단말기(20)의 식별 정보와 사용자의 식별 정보는 상기 암호화된 부분별 도서 데이터를 복호화할 수 있는 복호화 키가 될 수 있다. 또한 이 경우 상기 사용자의 식별 정보와 고객 단말기(20)의 식별 정보는, 고객 단말기(20)에 이미 저장되어 있는 것으로, 사용자가 별도의 복호화 키를 입력할 필요 없이 바로 복호화가 가능할 수 있다. 따라서 고객 단말기(20)는 상기 암호화된 부분별 도서 데이터를 복호화하여, 사용자가 구매한 부분별 도서 데이터에 대응하는 문자열 데이터로 변환할 수 있다.
그러면 고객 단말기(20)는 상기 문자열 데이터를, 이미지 데이터에 대응하는 이진 데이터로 디코딩할 수 있다. 그리고 디코딩된 이진 데이터에 근거하여 상기 이진 데이터에 대응하는 이미지를 디스플레이부 상에 표시할 수 있다. 이 경우 상기 고객 단말기(20)는 상기 이진 데이터에 대응하는 이미지 파일을 생성하고 생성된 이미지 파일을 독출하여 표시하는 것이 아니라, 기 설정된 드로잉(drawing) 방식에 따라 상기 이진 데이터에 대응하는 이미지를 디스플레이부 상에 그리는 방식으로 표시할 수 있다. 예를 들어 고객 단말기(20)는 캔바스(Canvas) 애플리케이션(API, Application Program Interface)을 이용하여 상기 이진 데이터에 대응하는 이미지를 디스플레이부의 지정된 영역에 드로잉할 수 있다. 이처럼 드로잉하는 방식으로 상기 이미지 데이터, 즉 사용자가 구매한 부분별 도서 데이터의 스캔 이미지를 표시함으로써, 이미지 파일의 형태로 상기 부분별 도서 데이터의 스캔 이미지가 표시되는 것을 방지할 수 있다. 즉, 이미지 파일의 형태로 상기 부분별 도서 데이터의 스캔 이미지가 무단 복제되는 것을 방지할 수 있다.
한편, 상술한 설명에 따르면, 본 발명의 실시 예에 따른 서비스 서버(10)는 상기 암호화 키로서 사용자가 부분별 도서 데이터를 구매한 시각인 구매 승인 시각의 정보가 더 이용될 수 있다. 이 경우 상기 부분별 도서 데이터의 복호화에는 상기 구매 승인 시각의 정보가 더 필요하므로, 상기 서비스 서버(10)는 상기 구매 승인 시각의 정보를 상기 고객 단말기(20)에 별도로 전송할 수 있다. 일 예로 상기 서비스 서버(10)는 사용자로부터 수신된 부분별 도서 데이터의 구매 요청이 승인되는 경우에, 상기 구매 승인을 알리는 알림 정보와 함께 상기 구매 승인 시각의 정보를 고객 단말기(20)에 전송할 수 있다.
한편, 본 발명의 실시 예에 따른 서비스 서버(10)는 상기 문자열 데이터를 디코딩한 데이터가 드로잉될 때에, 기 설정된 드로잉 키에 근거하여 드로잉이 이루어지도록 할 수도 있다. 그리고 상기 드로잉 키는 상기 암호화 키로 사용되는 정보들 중 적어도 하나가 이용될 수 있다.
상기 서비스 서버(10)의 동작을 살펴보면, 상기 서비스 서버(10)는 사용자가 구매한 부분별 도서 데이터를 스캔한 이미지 데이터를, 문자열 데이터로 인코딩하는 구성을 가진다. 즉, 상기 이미지 데이터에 대응하는 이진 데이터가 복수의 문자로 구성되는 문자열 데이터로 변환될 수 있다.
한편 사용자의 식별 정보 및 뷰어, 즉 고객 단말기(20)의 식별 정보는 서비스 서버에 의해 부여되는 것으로, 지정된 길이를 가지는 숫자 또는 알파벳의 조합으로 형성될 수 있다. 즉, 상기 지정된 길이를 가지는 문자들로 이루어질 수 있다.
그러면 서비스 서버(10)는 상기 사용자의 식별 정보 및 고객 단말기(20)의 식별 정보를, 상기 이미지 데이터에 대응하는 문자열 데이터의 지정된 위치(예 : 맨 처음, 또는 기 설정된 개수의 문자 다음)에 삽입할 수 있다. 따라서 사용자의 식별 정보 및 고객 단말기(20)의 식별 정보를 포함하는 문자열을 포함하는 문자열 데이터가 생성될 수 있다. 이 경우 삽입된 사용자의 식별 정보 및 고객 단말기(20)의 식별 정보에 의하여 문자열 데이터의 적어도 일부가 쉬프트(shift)될 수 있다.
그리고 상기 문자열 데이터가 암호화 또는 복호화되는 경우, 사용자 및 고객 단말기(20)의 식별 정보를 포함하는 문자열 데이터 전체가 암호화 또는 복호화될 수 있다. 그러므로 고객 단말기(20)에서 암호화된 부분별 도서 데이터에 대한 복호화가 이루어지면, 사용자의 식별 정보 및 고객 단말기(20)의 식별 정보에 의하여 이미지 데이터에 대응하는 문자열 데이터의 적어도 일부가 쉬프트된 문자열 데이터가 복호화될 수 있다.
따라서 만약 상기 복호화된 문자열을 바로 디코딩하는 경우, 상기 쉬프트된 문자열이 이진 데이터로 디코딩될 수 있다. 따라서 디코딩된 이진 데이터로 드로잉을 수행하는 경우 이미지가 심각하게 훼손되거나 또는 올바른 이미지가 표시되지 않을 수 있다. 즉, 복호화된 문자열 데이터가 유출되는 경우에도, 사용자가 구매한 부분별 도서 데이터의 내용이 유출되는 것을 방지할 수 있다.
한편 고객 단말기(20)는 상기 복호화된 문자열 데이터로부터 지정된 위치로부터 지정된 개수의 문자들을 검출할 수 있다. 이 경우 상기 지정된 위치 및 지정된 문자들의 개수는 서비스 서버(10)와 미리 약정된 것으로, 상기 서비스 서버(10)가 상기 사용자 및 고객 단말기(20)의 식별 정보를 삽입한 위치 및, 상기 사용자 및 고객 단말기(20)의 식별 정보에 따른 문자들의 개수일 수 있다.
그러면 고객 단말기(20)는, 상기 지정된 위치에서 지정된 개수 만큼 검출된 문자들을, 고객 단말기(20)에 저장된 사용자의 식별 정보 및 고객 단말기(20)의 식별 정보와 비교할 수 있다. 그리고 검출된 문자들과 상기 사용자의 식별 정보 및 고객 단말기(20)의 식별 정보가 일치하는 경우에, 상기 지정된 위치 및 지정된 문자들을 상기 복호화된 문자열 데이터로부터 제거할 수 있다. 즉 복호화된 문자열 데이터에 삽입된 상기 사용자의 식별 정보 및 고객 단말기(20)의 식별 정보를 제거할 수 있다.
삽입된 상기 사용자의 식별 정보 및 고객 단말기(20)의 식별 정보가 제거되면, 상기 복호화된 문자열 데이터는 이미지 데이터에 대응하는 문자열 데이터로 복원될 수 있다. 따라서 문자열 데이터를 디코딩 및, 디코딩된 데이터에 근거하여 드로잉을 수행하는 경우, 사용자가 구매한 부분별 도서 데이터에 대응하는 이미지 데이터가 디스플레이부 상에 표시될 수 있다. 즉, 지정된 뷰어에 한하여, 사용자가 구매한 부분별 도서 데이터에 대응하는 이미지 데이터가 디스플레이부 상에 올바르게 표시될 수 있다. 이하 이처럼 문자열 데이터에 삽입되어, 올바르지 않은 뷰어에서 이미지 데이터가 드로잉되는 것을 방지하는 문자들을, 드로잉 키(Drawing Key)라고 하기로 한다.
한편 상술한 설명에 따르면, 상기 암호화 키로서 구매 승인 시각의 정보를 더 이용할 수 있음을 언급한 바 있다. 이 경우 상기 구매 승인 시각의 정보 역시 상기 드로잉 키로서 이용될 수도 있음은 물론이다.
한편 상술한 설명에 따르면, 상기 드로잉 키로서 사용자의 식별 정보 및 고객 단말기(20)의 식별 정보가 사용되는 것을 설명하였으나, 고객 단말기(20)는 드로잉 키로 사용 가능한 정보들 중 어느 하나를 임의(random)로 선택하여 드로잉 키로 사용할 수 있음은 물론이다. 즉, 서비스 서버(10)는 사용자의 식별 정보 및 고객 단말기(20)의 식별 정보 중 어느 하나를 임의로 선택하여 드로잉 키로 문자열 데이터의 지정된 위치에 삽입할 수 있다.
이 경우 고객 단말기(20)는 지정된 위치에서 지정된 개수 만큼 검출된 문자들을 사용자의 식별 정보 및 고객 단말기(20)의 식별 정보와 모두 비교하고, 비교 결과 사용자의 식별 정보 및 고객 단말기(20)의 식별 정보 중 어느 하나에 일치하는 경우에, 상기 검출된 문자들을 상기 문자열 데이터로부터 제거할 수 있다. 이 경우 드로잉 키가 어느 하나의 식별 정보로 지정되지 않으므로, 보다 높은 보안성을 가질 수 있다.
한편 상기 구매 승인 시각의 정보가, 사용자의 식별 정보 및 고객 단말기(20)의 식별 정보에 대응하는 문자들의 개수와 동일한 문자수를 가지는 경우라면, 예를 들어 사용자의 식별 정보 및 고객 단말기(20)의 식별 정보가 14자리의 문자 및 숫자로 형성되고, 상기 구매 승인 시각의 정보가 14자리 숫자(예 : 연도 4자리, 월 2자리, 일 2자리, 시각 2자리, 분 2자리, 초 2자리)로 형성되는 경우라면, 상기 임의 선택 방식으로 선택 가능한 키로서 상기 구매 승인 시각의 정보가 이용될 수도 있다. Base64 인코딩 방식으로 이진 데이터를 문자열로 인코딩하는 경우, 숫자와 문자는 동일하게 6비트의 이진 데이터로 인코딩되는 것으로, 숫자와 문자는 동일하게 취급된다. 따라서 구매 승인 시각이 제거되지 않는 상태에서 문자열이 이진 데이터로 디코딩되는 경우, 6비트 X 14, 즉 84bit의 쉬프트가 발생할 수 있으며, 이러한 쉬프트 및, 이미지 데이터가 아닌 구매 승인 시각의 숫자들을 변환한 비트열들의 추가로 인하여, 디코딩된 이진 데이터가 올바른 이미지로 드로잉되지 않기 때문이다.
도 2는 이러한 본 발명의 실시 예에 따른 서비스 서버(10)의 구조를 도시한 블록도이다.
도 2를 참조하여 살펴보면, 본 발명의 실시 예에 따른 서비스 서버(10)는 서버 제어부(100)와 상기 서버 제어부(100)에 연결되며, 상기 서버 제어부(100)에 의해 제어되는 서버 통신부(110), 스캔부(120), 변환부(130), 암호화부(140), 시각 검출부(150) 및 서버 메모리부(160)를 포함하여 구성될 수 있다. 도 2에 도시된 구성요소들은 서비스 서버(10)를 구현하는데 있어서 필수적인 것은 아니어서, 본 명세서 상에서 설명되는 서비스 서버(10)는 위에서 열거된 구성요소들 보다 많거나, 또는 적은 구성요소들을 가질 수 있다.
먼저 서버 통신부(110)는 도서 제공처 서버(40), 포털 사이트(30) 및 고객 단말기(20)와 유선 또는 무선 통신망을 통해 연결할 수 있다. 상기 서버 통신부(110)는 상기 도서 제공처 서버(40)로부터 제공되는 도서 요약 정보들을 수신할 수 있으며, 수신된 도서 요약 정보들 및 서비스 서버(10)로의 링크 정보를 상기 포털 사이트(30)로 전송할 수 있다. 그리고 상기 링크 정보를 통해 고객 단말기(20)가 무선 연결되면, 고객 단말기(20)로부터 전송되는 데이터들을 수신 및, 그에 대한 응답 데이터들을 전송할 수 있다.
스캔부(120)는 고객 단말기(20)의 요청에 따라 고객, 즉 사용자가 구매한 도서 데이터의 일부를 스캔할 수 있다. 여기서 상기 사용자가 구매한 도서 데이터는, 전자도서의 한 페이지의 적어도 일부일 수 있으며, 하나 또는 다수의 챕터와 같이 복수의 페이지일 수 있다. 이 경우 스캔부(120)는 사용자가 구매한 도서 페이지가 한 페이지의 적어도 일부이면 상기 한 페이지의 일부 또는 전부를 스캔할 수 있다. 이 경우 하나의 스캔된 이미지 데이터가 생성될 수 있다. 반면 사용자가 구매한 도서 페이지가 복수의 페이지인 경우, 각각의 페이지 별로 스캔을 수행하여 각 페이지에 대응하는 이미지 데이터들을 생성할 수 있다. 즉, 스캔부(120)는 사용자가 구매한 도서의 페이지 수에 따라 하나 또는 복수의 이미지 데이터를 생성할 수 있다.
변환부(130)는 서버 제어부(100)의 제어에 따라, 상기 스캔부(120)에서 생성된 이미지 데이터를 기 설정된 인코딩 방식으로 인코딩하여 문자열로 변환할 수 있다. 일 예로 변환부(130)는 상기 이미지 데이터를 base64 알고리즘에 따라 인코딩할 수 있다. 이 경우 상기 이미지 데이터에 대응하는 이진 데이터는 6개의 비트마다 서로 다른 문자로 변환될 수 있다. 따라서 사용자가 구매한 도서 일 페이지의 적어도 일부에 대응하는 이미지가, 하나의 긴 문자열의 형태(문자열 데이터)로 변환될 수 있다.
그리고 암호화부(140)는 상기 변환부(130)에서 문자열로 인코딩된 데이터, 즉 문자열 데이터를 기 설정된 암호화 방식으로 암호화할 수 있다. 일 예로 상기 암호화부(140)는 CryptoJS에서 선언된 AES(Advanced Encryption Standard) 알고리즘에 따라 상기 문자열 데이터를 암호화할 수 있다.
한편 상기 암호화부(140)는 사용자별로 서로 다른 암호화 키를 통해 상기 문자열 데이터를 암호화할 수 있다. 여기서 암호화 키는 지정된 뷰어의 식별 정보를 포함할 수 있다.
일 예로 상기 암호화 키는 도서 데이터를 구매한 사용자가 사전에 등록하거나 또는 상기 도서 데이터를 구매할 때에 뷰어로 등록한 단말기에게 부여되는 뷰어 식별 정보(ID)를 포함할 수 있다. 이 경우 상기 뷰어 식별 정보는 단말기 별로 서로 다르게 부여되는 고유 정보일 수 있다. 이 경우 상기 암호화 키는, 사용자가 서비스 서버(10)에 등록하여 계정을 생성할 때에 발부되는 식별 정보(사용자 식별 정보)와 상기 뷰어로 지정된 단말기의 식별 정보를 포함하여 형성될 수 있다.
한편 상기 도서 데이터가 구매된 시점 시각 정보, 즉 구매 승인 시각의 타임 스탬프 정보가 상기 암호화 키로 더 이용될 수 있다. 이 경우 상기 사용자 식별 정보, 뷰어 식별 정보, 그리고 구매 승인 시각의 정보의 조합으로 상기 암호화키가 생성될 수 있으며, 이 경우 상기 사용자 식별 정보, 뷰어 식별 정보, 그리고 구매 승인 시각의 정보의 조합으로 생성되는 암호화 키의 예는 하기와 같다.
조합 예) SYSTEM_ID+ "." + UUID + "." + USER_TIMESTAMP
0GOEgzwwO9grgKHg4n4IykPd8VB2.9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d.1656886229347
여기서 SYSTEM_ID는 사용자 ID이며, UUID는 뷰어 ID, USER_TIMESTAMP는 구매 승인 시각임.
이를 위해 서비스 서버(10)는 특정 이벤트가 발생하는 경우 이벤트가 발생한 시각의 정보를 검출하기 위한 시각 검출부(150)를 포함할 수 있다. 이 경우 상기 시각 검출부(150)는, 사용자로부터 수신된 특정 도서의 부분별 데이터에 대한 구매 요청에 따른 결제가 완료됨에 따라, 사용자가 요청한 부분별 도서 데이터 구매가 완료되는 시각을 상기 구매 승인 시각으로 검출할 수 있다. 즉, 상기 구매 승인 시각은 사용자가 부분별 도서 데이터의 구매를 완료한 시각으로서, 서비스 서버(10)에서 검출되는 시각 정보일 수 있다.
이 경우 서버 제어부(100)는 상기 시각 검출부(150)에서 검출되는 구매 승인 시각을 수신하고, 사용자에게 판매된 부분별 도서 데이터에 대응되는 시각 정보로서 저장할 수 있다. 그리고 상기 부분별 도서 데이터의 판매가 완료되었음을 알리는 알림 정보와 함께 상기 구매 승인 시각을 고객 단말기(20)에 전송할 수 있다. 이에 상기 구매 승인 시각의 정보가 상기 고객 단말기(20)에 전송될 수 있다.
그리고 서버 메모리부(160)는 서비스 서버(10)의 다양한 기능을 지원하는 데이터 및 명령어들을 저장한다. 서버 메모리부(160)는 서비스 서버(10)에서 구동되는 다수의 응용 프로그램(application program 또는 애플리케이션(application)), 서비스 서버(10)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다.
예를 들어 서버 메모리부(160)는 도서 제공처 서버(40)에서 제공되는 도서 데이터를 저장할 수 있다. 여기서 상기 도서 데이터는 사용자가 일부분의 구매를 요청한 전자 도서의 도서 데이터일 수 있다.
또한 서버 메모리부(160)는 상기 스캔부(120)가 상기 도서 데이터로부터 사용자가 구매한 일 부분을 스캔하기 위한 명령어 및 데이터들이 저장될 수 있다. 그리고 상기 스캔부(120)에서 스캔된 이미지 데이터가 상기 서버 메모리부(160)에 저장될 수 있다.
또한 상기 서버 메모리부(160)는 변환부(130) 및 암호화부(140)에서, 각각 인코딩 및 암호화를 수행하기 위한 알고리즘과 명령어들 그리고 데이터들을 저장할 수 있다. 일 예로 서버 메모리부(160)는 base64 인코딩 방식에 따라 이미지 데이터를 문자열로 인코딩하기 위한 명령어와 데이터들 및, CryptoJS에서 선언된 암호화 알고리즘을 수행하기 위한 명령어와 데이터들을 저장할 수 있다. 또한 상기 변환부(130)에서 인코딩된 문자열 데이터 및, 암호화부(140)에서 암호화된 데이터들이 저장될 수 있다. 여기서 상기 인코딩된 문자열 데이터 및 암호화된 데이터들은 서로 연관되게 저장될 수 있으며, 상기 서버 메모리부(160)의 구분된 영역에 저장될 수 있다. 이하 서로 연관되게 저장되는 상기 인코딩된 문자열 데이터들 및 암호화된 데이터들이 저장되는 서버 메모리부(160) 상의 일 영역을 인코딩 데이터 저장부(163)라고 하기로 한다.
한편, 상기 서버 메모리부(160)는 서비스 서버(10)에 계정이 등록된 사용자들의 정보를 포함하는 사용자 정보 데이터베이스(DB, Database)(161)를 포함할 수 있다. 상기 사용자 정보 데이터베이스(161)는 계정이 등록된 각 사용자에게 부여된 식별 정보 및 각 사용자가 뷰어로 사전 지정한 적어도 하나의 단말기(고객 단말기(20))에 부여된 뷰어 식별 정보를 포함할 수 있다. 여기서 각 사용자는 제한된 개수 이하의 단말기를 상기 뷰어로 지정할 수 있으며, 뷰어로 지정된 단말기가 복수인 경우 각 단말기에 부여되는 식별 정보는 서로 다를 수 있다.
한편 상술한 바에 따르면, 본 발명의 실시 예에 따른 서비스 서버(10)는 시각 검출부(150)를 통해 사용자가 부분별 도서 데이터를 구매한 시각을 검출하고 이를 저장할 수 있음을 설명한 바 있다. 이 경우 상기 구매 승인 시각의 정보는 서버 메모리부(160)에 저장될 수 있으며, 사용자가 구매한 부분별 도서 데이터, 예를 들어 인코딩된 문자열 데이터 또는 암호화된 데이터에 연관되게 저장될 수 있다. 이하 상기 인코딩된 문자열 데이터 또는 암호화된 데이터에 연관되게 저장된 구매 승인 시각 정보들이 저장되는 서버 메모리부(160) 상의 일 영역을 구매 승인 시각 저장부(162)라고 하기로 한다.
한편 서버 제어부(100)는 연결된 각 구성 요소를 제어 및, 서비스 서버(10)의 전반적인 동작을 제어한다. 즉, 도서 제공처 서버(40)에서 제공되는 도서 요약 정보를 포털 사이트(30)에 게시 및 링크 정보를 제공하고, 고객 단말기(20)를 통한 사용자의 요청에 따라 상기 도서 제공처 서버(40)에서 도서 데이터를 수신 및, 수신된 도서 데이터의 적어도 일부를 사용자의 요청에 따라 제공할 수 있다. 그리고 사용자가 상기 도서 데이터의 일부에 대한 구매를 요청하는 경우, 사용자에게 결제 서비스를 제공하고, 결제가 완료되면 사용자가 요청한 상기 도서 데이터의 적어도 일부를 암호화된 부분별 도서 데이터로 추출하여 상기 사용자의 고객 단말기(20)로 전송할 수 있다.
이를 위해 상기 서비스 서버(10)는 사용자가 요청한 도서 데이터의 적어도 일부를, 각 페이지 별로 스캔하여 적어도 하나의 이미지 데이터를 생성하도록 상기 스캔부(120)를 제어할 수 있다. 그리고 변환부(130)를 제어하여 스캔된 각 이미지 데이터를, 각 이미지 데이터에 대응하는 문자열 데이터로 인코딩하고, 상기 인코딩된 각 문자열 데이터가 암호화되도록 상기 암호화부(140)를 제어할 수 있다.
이 경우 상기 서버 제어부(100)는 상기 부분별 도서 데이터를 구매한 사용자의 식별 정보와, 그 사용자가 사전에 또는 상기 부분별 도서 데이터의 구매 시에 설정한 뷰어, 즉 고객 단말기(20)의 식별 정보 및, 상기 부분별 도서 데이터의 판매와 구매가 완료된 구매 승인 시각의 정보 중 적어도 하나의 조합을 암호화 키로 사용하도록 상기 암호화부(140)를 제어할 수 있다. 여기서 상기 구매 승인 시각 정보를 암호화 키로 사용하는 경우, 서버 제어부(100)는 상기 구매 승인 시각의 정보를 고객 단말기(20)로 제공할 수 있다. 이 경우 상기 구매 승인 시각의 정보는 상기 부분별 도서 데이터의 매매가 완료되었음을 알리는 알림 정보가 상기 고객 단말기(20)에 전송될 때, 상기 알림 정보와 함께 제공될 수 있다.
서버 제어부(100)는 스캔된 이미지 데이터가 복수인 경우, 각 이미지 데이터에 대하여 상기의 동작 과정을 반복할 수 있다. 따라서 사용자가 구매한 부분별 도서 데이터가 복수의 페이지인 경우, 각 페이지 별로 암호화된 복수의 암호화된 데이터가 고객 단말기로 전송될 수 있다.
한편 서버 제어부(100)는 상기 사용자의 식별 정보, 뷰어, 즉 고객 단말기(20)의 식별 정보, 그리고 상기 구매 승인 시각의 정보 중 적어도 하나를 임의로 인코딩된 문자열의 기 설정된 위치에 드로잉 키로서 삽입할 수 있다. 이 경우 상기 암호화부(140)는 상기 드로잉 키가 더 삽입된 문자열 데이터를 암호화할 수 있으며, 이에 따라 드로잉 키를 포함하는 문자열 데이터가 암호화되어 고객 단말기(20)로 전송될 수 있다. 여기서 상기 드로잉 키가 삽입되는 위치는 서비스 서버(10)와 고객 단말기(20) 간에 약정을 통해 미리 정해진 위치일 수 있다. 또한 상기 사용자의 식별 정보, 뷰어, 즉 고객 단말기(20)의 식별 정보, 그리고 상기 구매 승인 시각의 정보는 모두 같은 개수의 문자로 이루어지는 문자열일 수 있다. 또한 서버 제어부(100)는 각 인코딩된 문자열 데이터 각각에 대하여 서로 다른 드로잉 키를 삽입할 수 있다. 즉, 사용자가 구매한 부분별 도서 데이터가 복수의 페이지인 경우, 각 페이지 별로 대응하는 문자열 데이터에 삽입되는 드로잉 키는 서로 다를 수 있다.
한편 도 3은 본 발명의 실시 예에 따른 문서 컨텐츠 뷰어(고객 단말기(20))의 구조를 도시한 블록도이다.
도 3을 참조하여 살펴보면, 본 발명의 실시 예에 따라 암호화된 부분별 도서 데이터를 표시하는 뷰어, 즉 고객 단말기(20)는 제어부(200) 및 상기 제어부(200)와 연결되며 상기 제어부(200)에 의해 제어되는 통신부(210), 복호화부(220), 디스플레이부(250), 드로잉부(240) 및 메모리(260)를 포함하여 구성될 수 있다. 도 3에 도시된 구성요소들은 고객 단말기(20)를 구현하는데 있어서 필수적인 것은 아니어서, 본 명세서 상에서 설명되는 고객 단말기(20)는 위에서 열거된 구성요소들 보다 많거나, 또는 적은 구성요소들을 가질 수 있다.
먼저 통신부(210)는 포털 사이트(30)의 서버 또는 서비스 서버(10) 등의 외부 서버와 고객 단말기(20) 사이의 무선 통신을 가능하게 하는 하나 이상의 모듈을 포함할 수 있다. 또한, 상기 통신부(210)는, 고객 단말기(20)를 하나 이상의 네트워크에 연결하는 하나 이상의 모듈을 포함할 수 있다.
이를 위해 상기 통신부(210)는 고객 단말기(20)가 무선 인터넷 접속을 할 수 있도록 모듈로서, 무선 인터넷 기술들에 따른 통신망에서 무선 신호를 송수신하도록 형성될 수 있다. 이러한 무선 인터넷 기술로는, 예를 들어 WLAN(Wireless LAN), Wi-Fi(Wireless-Fidelity), DLNA(Digital Living Network Alliance), WiBro(Wireless Broadband), WiMAX(World Interoperability for Microwave Access), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), LTE(Long Term Evolution), LTE-A(Long Term Evolution-Advanced) 등이 있을 수 있으며, 상기 통신부(210)는 상기에서 나열되지 않은 인터넷 기술까지 포함한 범위에서 적어도 하나의 무선 인터넷 기술에 따라 외부 서버로부터 데이터를 송수신할 수 있다.
그리고 복호화부(220)는, 상기 통신부(210)를 통해 서비스 서버(10)로부터 수신된 암호화된 부분별 도서 데이터를 기 설정된 키를 이용하여 복호화할 수 있다. 여기서 상기 암호화된 부분별 도서 데이터는, 인코딩된 문자열 데이터를 기 설정된 암호화 키로 암호화하는 데이터일 수 있다. 이 경우 상기 암호화 키는 사용자의 식별 정보, 뷰어로 지정된 단말기, 즉 고객 단말기(20)의 식별 정보, 및 상기 서비스 서버(10)로부터 수신된 구매 승인 시각의 정보의 조합으로 생성되는 문자열일 수 있다.
한편 상기 복호화부(220)가 암호화된 부분별 도서 데이터를 복호화하기 위해서는 상기 암호화 키를 복호화 키로 사용할 수 있다. 따라서 복호화 키는 상술한 바와 같이 사용자의 식별 정보, 뷰어로 지정된 단말기, 즉 고객 단말기(20)의 식별 정보 및 상기 구매 승인 시각의 정보의 조합으로 생성될 수 있다.
그런데 상기 사용자의 식별 정보 및 고객 단말기(20)의 식별 정보는 고객 단말기(20)에 이미 저장되어 있는 정보일 수 있다. 따라서 서비스 서버(10)는 구매 승인 시각의 정보만을 고객 단말기(20)에 제공할 수 있으며, 복호화부(220)는 서비스 서버(10)로부터 제공된 구매 승인 시각의 정보와, 고객 단말기(20)에 기 저장된 사용자의 식별 정보 및 고객 단말기(20)의 식별 정보를 조합하여 상기 복호화 키를 생성할 수 있다. 여기서 상기 구매 승인 시각의 정보는, 사용자가 서비스 서버(10)로부터 부분별 도서 데이터를 구매할 때에 구매가 완료되는 경우 서비스 서버(10)로부터 제공될 수 있다.
이처럼 본 발명의 실시 예에 따른 암호화된 문서 컨텐츠를 제공하는 서버는 암호화 키 또는 복호화 키의 일부만을 문서 컨텐츠의 뷰어 디바이스에 전송하므로, 전송 과정에서 데이터가 유출되는 경우에도 유출된 데이터에 근거하여 암호화된 문서 컨텐츠를 복호화할 수 없다. 따라서 보안성을 보다 높일 수 있다는 효과가 있다.
한편 상술한 서비스 서버(10)의 설명과 같이, 서비스 서버(10)는 사용자가 구매한 부분별 도서 데이터에 대응하는 이미지 데이터를 문자열로 인코딩하고 인코딩된 데이터를 암호화하여 전송한다. 따라서 복호화부(220)에서 복호화된 데이터는 상기 문자열로 인코딩된 데이터일 수 있다. 따라서 본 발명의 실시 예에 따른 고객 단말기(20)는 상기 문자열로 인코딩된 데이터를 이미지 데이터에 대응하는 이진 데이터로 디코딩하는 디코딩부(230)를 구비할 수 있다.
일 예로 상기 디코딩부(230)는 base64 인코딩된 문자열 데이터를 이진 데이터로 디코딩할 수 있다. 이 경우 디코딩부(230)는 상기 문자열 데이터에 포함된 각 문자를, 각 문자에 대응하는 6개의 비트로 변환할 수 있다. 따라서 상기 문자열 데이터가 이진 데이터로 변환될 수 있으며, 상기 이진 데이터는 사용자가 구매한 부분별 도서 데이터에 대응하는 이미지 데이터일 수 있다.
그러면 고객 단말기(20)는 상기 이미지 데이터를 디스플레이부(250)에 표시할 수 있다. 그런데 이미지 데이터를 파일 형태로 디스플레이부(250) 상에 출력하는 경우 상기 이미지 데이터 자체에 대한 무단 복제가 발생할 수 있다. 이에 따라 본 발명의 실시 예에 따른 고객 단말기(20)는 상기 이미지 데이터에 대응되는 이미지를 디스플레이부(250)의 일 영역에 드로잉하는 형태로 표시할 수 있다.
상기 드로잉부(240)는 상기 이진 데이터에 대응하는 이미지를 디스플레이부(250) 상의 일 영역에 그릴 수 있다. 즉, 드로잉부(240)에 의하여 이미지 파일이 출력되는 것이 아니라, 이진 데이터에 대응하는 이미지가 디스플레이부(250)의 일 영역에 다시 그려지는 형태로 상기 이진 데이터에 대응하는 이미지가 표시될 수 있다. 이러한 드로잉부(240)는 CANVAS API 등으로 구현될 수 있다.
그리고 디스플레이부(250)는 고객 단말기(20)에서 처리되는 다양한 정보를 표시(출력)할 수 있다. 예를 들어, 디스플레이부(250)는 고객 단말기(20)에서 구동되는 응용 프로그램의 실행화면 정보, 또는 이러한 실행화면 정보에 따른 UI(User Interface), GUI(Graphic User Interface) 정보를 표시할 수 있다.
한편 메모리(260)는 고객 단말기(20)의 다양한 기능을 지원하는 데이터 및 명령어들을 저장한다. 메모리(260)는 고객 단말기(20)에서 구동되는 다수의 응용 프로그램(application program 또는 애플리케이션(application)), 서비스 서버(10)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다.
예를 들어 메모리(260)는 서비스 서버(10)에서 사용자가 구매한 부분별 도서 데이터들을 저장할 수 있다. 여기서 상기 부분별 도서 데이터는 암호화된 상태일 수 있다. 메모리(260)는 상기 부분별 도서 데이터들이 저장되는 데이터베이스를 구비할 수 있다.
일 예로 고객 단말기(20)는 웹 브라우저에서 제공하는 웹 표준 IndexedDB 알고리즘에 따라 상기 암호화된 부분별 도서 데이터를 저장할 수 있다. 이하 상기 사용자가 구매한 부분별 도서 데이터들이 저장되는 메모리(260)의 데이터베이스를 도서 데이터 저장부(263)라고 하기로 한다.
또한 메모리(260)는 복호화부(220) 및 디코딩부(230)에서, 각각 인코딩 및 암호화를 수행하기 위한 알고리즘과 명령어들 그리고 데이터들을 저장할 수 있다. 일 예로 서버 메모리부(160)는 base64 인코딩 방식에 따라 인코딩된 문자열 데이터를 이진 데이터로 디코딩하기 위한 명령어와 데이터들 및, CtyptoJS에서 선언된 암호화 알고리즘에 따라 복호화를 수행하기 위한 명령어와 데이터들을 저장할 수 있다.
또한 메모리(260)는 서비스 서버(10)에 계정이 등록된 사용자의 식별 정보 및 고객 단말기(20)의 식별 정보를 저장할 수 있다. 이 경우 상기 사용자의 식별 정보와 상기 고객 단말기(20)의 식별 정보는 상기 암호화된 데이터를 복호화하는 복호화 키로서 사용될 수 있다. 또한 상기 사용자의 식별 정보와 상기 고객 단말기(20)의 식별 정보는 드로잉 키로서 사용될 수 있다. 이하 상기 사용자의 식별 정보와 상기 고객 단말기(20)의 식별 정보가 저장되는 메모리(260) 상의 일 영역을 인증 정보 저장부(261)라고 하기로 한다.
한편 본 발명의 실시 예에 따라 암호화된 문서 컨텐츠를 제공하는 서비스 서버(10)는 사용자가 부분별 도서 데이터를 구매한 시각을 구매 승인 시각으로 저장하고, 저장된 구매 승인 시각의 정보를 더 조합하여 암호화 키로 사용할 수 있다. 이러한 경우 서비스 서버(10)는 암호화된 부분별 도서 데이터의 복호를 위해 상기 구매 승인 시각의 정보를 고객 단말기(20)에 별도로 전송할 수 있다. 이 경우 메모리(260)는 상기 구매 승인 시각의 정보를 메모리(260)의 구분된 영역에, 상기 암호화된 부분별 도서 데이터와 연관되게 저장할 수 있다. 이하 상기 구매 승인 시각의 정보가 저장되는 메모리(260)의 구분된 영역을 구매 시각 저장부(262)라고 하기로 한다.
그리고 제어부(200)는 연결된 각 구성 요소를 제어하며, 고객 단말기(20)의 전반적인 동작을 제어할 수 있다.
먼저 제어부(200)는 서비스 서버(10)에서 전송되는 암호화된 부분별 도서 데이터를 저장할 수 있다. 그리고 저장된 암호화된 부분별 도서 데이터 중 어느 하나가 사용자에 의해 선택되는 경우, 복호화부(220)를 제어하여 선택된 도서 데이터를 복호화할 수 있다. 그리고 디코딩부(230)를 제어하여 복호화된 도서 데이터를, 이미지 데이터에 대응하는 이진 데이터로 디코딩할 수 있다.
그리고 제어부(200)는 디스플레이부(250)를 제어하여 상기 부분별 도서 데이터가 표시될 디스플레이부(250) 상의 일 영역을 설정할 수 있다. 그리고 상기 설정된 디스플레이부(250) 상의 일 영역에, 상기 이진 데이터에 대응하는 이미지를 그리도록 상기 드로잉부(240)를 제어할 수 있다. 따라서 상기 디스플레이부(250) 상의 일 영역에 사용작 선택한 어느 하나의 암호화된 부분별 도서 데이터에 대응하는 이미지가 그려질 수 있다.
이하 서비스 서버(10)가 뷰어 디바이스, 즉 고객 단말기(20)에 암호화된 부분별 도서 데이터를 제공 및, 상기 고객 단말기(20)가 상기 암호화된 부분별 도서 데이터를 복호화 및 디코딩하여 디스플레이부(250) 상에 표시하는 동작 과정을 하기 도 4 및 도 5를 참조하여 살펴보기로 한다.
한편, 상술한 설명에 따르면, 본 발명의 실시 예에 따른 서비스 서버(10)는 구매된 부분별 도서 데이터의 스캔 이미지에 대응하는 이진 데이터를 문자열 데이터로 인코딩한 이후에, 인코딩된 데이터의 지정된 위치에 드로잉 키로서, 사용자의 식별 정보, 뷰어 디바이스, 즉 고객 단말기(20)의 식별 정보 및, 구매 승인 시각의 정보 중 적어도 하나를 삽입할 수 있음을 설명한 바 있다. 따라서 서비스 서버(10)에서 제공되는 암호화된 부분별 도서 데이터는, 상기 드로잉 키가 삽입된 문자열 데이터를 암호화한 데이터일 수 있다.
이러한 경우 고객 단말기(20)가, 상기 드로잉 키가 삽입된 상태의 문자열을 이진 데이터로 디코딩하면, 이미지에 해당하지 않는 이진 데이터들이 삽입되고 이로 인한 이진 데이터의 쉬프트가 발생하게 된다. 따라서 드로잉부(240)에서 올바른 이미지가 그려지지 않게 된다.
이에 따라 제어부(200)는 복호화부(220)에서 암호화된 부분별 도서 데이터의 복호가 완료되면, 복호된 데이터, 즉 드로잉 키가 삽입된 문자열 데이터의 미리 지정된 위치, 즉 서비스 서버(10)와 약정된 드로잉 키 삽입 위치(예 : 맨 처음 또는 기 설정된 개수의 문자 다음)로부터 지정된 개수의 문자들을 추출할 수 있다. 이 경우 상기 지정된 개수의 문자들은 상기 드로잉 키를 구성하는 문자들일 수 있으며, 상기 드로잉 키는 사용자의 식별 정보, 고객 단말기(20)의 식별 정보, 그리고 구매 승인 시각의 정보 중 어느 하나로서, 상기 지정된 문자들의 개수는 상기 사용자의 식별 정보, 고객 단말기(20)의 식별 정보, 그리고 구매 승인 시각의 정보를 구성하는 문자들의 개수일 수 있다.
그리고 제어부(200)는 추출된 문자들을 사용자의 식별 정보, 고객 단말기(20)의 식별 정보, 그리고 구매 승인 시각의 정보 중 어느 하나와 비교하여 일치하는지 여부를 판별할 수 있다. 그리고 제어부(200)는 판별 결과에 따라 일치하는 문자들을 상기 문자열 데이터에서 제거할 수 있다. 따라서 부분별 도서 데이터(예 : 전자 도서의 일 페이지)에 대응하는 이미지 데이터를 인코딩한 문자열 데이터로, 문자열 데이터가 복원될 수 있다. 그리고 제어부(200)는 복원된 문자열 데이터를 디코딩 및 디코딩된 이진 데이터에 근거하여 이미지가 그려지도록 드로잉부(240)를 제어할 수 있다.
이 경우 제어부(200)는 상기 일치 여부를 판별한 결과, 복호된 문자열 데이터의 지정된 위치 및 지정된 개수의 문자들이 사용자의 식별 정보, 고객 단말기(20)의 식별 정보, 그리고 구매 승인 시각의 정보 중 어느 하나에 일치하지 않는 경우라면, 드로잉 키를 제거하지 않을 수 있다. 따라서 이미지에 해당하지 않는 이진 데이터들이 삽입 및 이진 데이터의 쉬프트가 발생한 이진 데이터에 대응하는 이미지가 드로잉부(240)에서 그려지게 되므로, 이미지가 그려지지 않거나 또는 이미지가 올바르게 그려지지 않을 수 있다.
이하에서는 이와 같이 구성된 서비스 서버(10) 및 뷰어 디바이스로 설정된 고객 단말기(20)에서 구현될 수 있는 제어 방법과 관련된 실시 예들에 대해 첨부된 도면을 참조하여 살펴보겠다. 본 발명은 본 발명의 정신 및 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 당업자에게 자명하다.
도 4는 본 발명의 실시 예에 따라, 고객 단말기(20)가 서비스 서버(10)로부터 문서 컨텐츠를 구매 및, 구매한 문서 컨텐츠를 제공받는 동작 과정을 도시한 흐름도이다.
도 4를 참조하여 살펴보면, 본 발명의 실시 예에 따른 고객 단말기(20)는 사용자의 선택에 따라 특정 전자 도서의 부분별 도서 페이지를 구매하기 위한 구매 요청을 서비스 서버(10)에 전송할 수 있다(S400).
그러면 서비스 서버(10)는 고객 단말기(20)의 구매 요청에 따라 결제 서비스를 제공할 수 있으며, 결제 서비스에 따라 고객이 결제를 완료하는 경우 고객이 요청한 특정 전자 도서의 부분별 도서 페이지의 구매를 승인할 수 있다. 그리고 구매 요청이 승인된 시각을 검출할 수 있다(S402).
한편 상기 구매 요청이 승인되면, 서비스 서버(10)는 구매 요청이 승인되었음을 알리는 응답 메시지를 고객 단말기(20)에 전송할 수 있다. 이 경우 상기 응답 메시지는 상기 S402 단계에서 검출된 구매 승인 시각의 정보를 포함할 수 있다. 즉, 응답 메시지를 통해 상기 구매 승인 시각의 정보가 서비스 서버(10)로부터 고객 단말기(20)에 전송될 수 있다(S404).
한편 구매 승인이 이루어지면, 서비스 서버(10)는 사용자가 구매한 도서 페이지의 적어도 일부를 스캔할 수 있다. 예를 들어 사용자가 한 페이지 전체를 구매한 경우라면 서비스 서버(10)는 한 페이지 전체를 스캔하여 한 페이지에 대응하는 이미지 데이터를 생성할 수 있다. 또는 사용자가 한 페이지의 일부, 예를 들어 한 문단만 구매한 경우라면, 서비스 서버(10)는 사용자가 구매한 문단에 대응하는 한 페이지의 일부만을 스캔하여, 상기 한 페이지의 일부에 대응하는 이미지 데이터를 생성할 수 있다. 여기서 사용자가 복수의 페이지를 구매한 경우라면, 구매된 페이지의 수만큼 상기 S406 단계가 반복 수행될 수 있다.
상기 S406 단계에서 사용자가 구매한 전자 도서의 페이지가 스캔되면, 서비스 서버(10)는 상기 스캔에 의해 생성된 이미지 데이터를 문자열 데이터로 인코딩할 수 있다(S408). 이 경우 서비스 서버(10)는 기 설정된 인코딩 알고리즘, 예를 들어 base64 인코딩 알고리즘으로 상기 이미지 데이터를 문자열 데이터로 인코딩할 수 있다. 이 경우 사용자가 복수의 페이지를 구매한 경우라면, 사용자가 구매한 페이지의 수만큼의 스캔된 이미지 데이터가 있을 수 있으므로, 구매된 페이지의 수만큼 상기 S408 단계가 반복 수행될 수 있다.
상기 S406 단계에서 스캔된 이미지들 각각에 대한 문자열 데이터로의 인코딩이 완료되면, 서비스 서버(10)는 도서 데이터를 구매한 사용자, 즉 고객의 식별 정보와, 뷰어 디바이스, 즉 고객 단말기(20)의 식별 정보, 그리고 상기 구매 승인 시각의 정보의 조합에 근거하여 암호화 키를 생성할 수 있다(S410). 그리고 S408 단계에서 생성된 암호화 키를 이용하여 이미지 데이터에 대응하여 인코딩된 문자열 데이터를 암호화할 수 있다(S412). 이 경우 사용자가 복수의 페이지를 구매한 경우라면, 사용자가 구매한 페이지의 수만큼 스캔된 이미지 데이터에 대응하는 문자열 데이터가 있을 수 있으므로, 구매된 페이지의 수만큼 상기 S412 단계가 반복 수행될 수 있다.
한편 상기 S412 단계를 통해 문자열로 인코딩된 데이터에 대한 암호화가 완료되면, 서비스 서버(10)는 암호화된 인코딩 데이터를 사용자가 구매한 도서 데이터의 일부분, 즉 부분별 도서 데이터로서 고객 단말기(20)에 전송할 수 있다(S416). 그러면 고객 단말기(20)는 상기 암호화된 인코딩 데이터를, 사용자가 구매한 부분별 도서 데이터로서 메모리(260)에 저장할 수 있다(S416).
그리고 고객 단말기(20)는 상기 부분별 도서 데이터가 저장되면, 상기 S404 단계에서 수신된 구매 승인 시각 정보를 상기 저장된 부분별 도서 데이터와 연관하여 저장할 수 있다(S418). 따라서 만약 사용자가 저장된 부분별 도서 데이터 중 어느 하나를 선택하면, 그에 대응하는 어느 하나의 구매 승인 시각 정보가, 메모리(260)의 구매 시각 저장부(262)로부터 독출될 수 있다.
한편 도 5는 본 발명의 실시 예에 따른 고객 단말기(20)가, 서비스 서버(10)로부터 제공된 암호화된 문서 컨텐츠를 사용자의 선택에 따라 디스플레이부(250) 상에 표시하는 동작 과정을 도시한 흐름도이다.
도 5를 참조하여 살펴보면, 본 발명의 실시 예에 따른 고객 단말기(20)의 제어부(200)는 사용자에 의해 어느 하나의 암호화된 부분별 도서 데이터가 선택되는 경우, 선택된 부분별 도서 데이터에 대응하는 구매 승인 시각의 정보를 메모리(260)의 구매 시각 저장부(262)로부터 독출할 수 있다. 또한 메모리(260)의 인증 정보 저장부(261)로부터 사용자의 식별 정보 및 고객 단말기(20)의 식별 정보를 독출할 수 있다. 그리고 독출된 사용자의 식별 정보와 고객 단말기(20)의 식별 정보, 그리고 선택된 부분별 도서 데이터에 대응하는 구매 승인 시각의 정보를 조합하여 복호화 키를 생성할 수 있다(S500).
그리고 제어부(200)는 생성된 복호화 키에 근거하여, 현재 선택된 암호화된 부분별 도서 데이터를 복호화할 수 있다(S502). 이 경우 상기 복호된 부분별 도서 데이터는 기 설정된 인코딩 알고리즘(예 : base64)에 따라 인코딩된 문자열 데이터일 수 있다.
한편 상기 도서 데이터의 복호화가 진행되면, 제어부(200)는 상기 복호화된 부분별 도서 데이터가 표시될 디스플레이부(250) 상의 일 영역을 설정할 수 있다. 이 경우 상기 설정된 영역은 기 설정된 색상의 배경 이미지로 표시될 수 있다(S504). 즉, 제어부(200)는 도서 데이터가 드로잉될 영역을 상기 배경 이미지를 통해 설정하고, 설정된 영역이 구분될 수 있도록 표시할 수 있다.
상기 S504 단계에서 배경 이미지의 표시를 통해 도서 데이터가 표시될 영역이 설정되면, 제어부(200)는 상기 S502 단계에서 복호화된 인코딩 데이터, 즉 문자열 데이터에 대응하는 이미지를 상기 배경 이미지 상에 드로잉할 수 있다(S506). 이를 위해 제어부(200)는 상기 S506 단계에서, 문자열로 인코딩된 데이터를 다시 이진 데이터로 디코딩할 수 있으며, 디코딩된 이진 데이터에 대응하는 이미지를 기 설정된 드로잉 방식(예 : CANVAS API)으로 디스플레이부(250) 상에 그리는 방식으로 표시할 수 있다. 이 경우 상기 그려지는 이미지는, 상기 S506 단계에서 설정된 영역 내, 즉 배경 이미지가 표시되는 영역 내에서 표시될 수 있다.
한편, 이처럼 도서 데이터에 대응하는 이미지를 디스플레이부(250) 상에 그려서 표시하는 경우에도, 디스플레이부(250)를 촬영하는 방식으로 디스플레이부(250) 상에 표시되는 도서 데이터가 무단 복제될 수도 있다. 이러한 경우 디스플레이부(250)를 촬영하는 행위 자체는 사전에 차단할 수 없으나, 상기 도서 데이터에 대응하는 이미지가 그려지는 배경 이미지를 통해 상기 도서 데이터를 구매한 구매자에 대응하는 정보를 표시하는 것으로, 상기 무단 복제된 도서 데이터의 구매자를 추적하는 것은 가능할 수 있다. 상술한 바와 같이 디스플레이부(250)를 촬영하는 방식으로 도서 데이터가 무단 복제되는 경우, 상기 도서 데이터를 구매한 구매자가 상기 도서 데이터를 무단 복제하였을 가능성이 크기 때문이다.
도 6은 이를 위해 본 발명의 실시 예에 따른 고객 단말기(20)가, 문서 컨텐츠를 표시하는 배경 이미지에 구매자의 식별 정보가 표시될 수 있도록 하는 동작 과정을 도시한 것이다.
먼저 도 6을 참조하여 살펴보면, 도서 데이터에 대응하는 이미지 데이터를 표시하기 위해 제어부(200)는 먼저 배경 이미지의 색상을 결정할 수 있다(S600). 이 경우 상기 배경 이미지의 색상은 사용자의 선택에 따라 결정될 수 있다.
그리고 제어부(200)는 사용자의 식별 정보와 고객 단말기(20)의 식별 정보 중 적어도 하나에 대응하는 QR(Quick response) 코드를 생성할 수 있다(S602). 상기 QR 코드는 정보를 나타내는 패턴 블록이 2차원 매트릭스 형태로 표시되는 정보를 의미할 수 있다.
상기 S602 단계에서, 사용자의 식별 정보 또는 고객 단말기(20)의 식별 정보에 대응하는 QR 코드가 생성되면, 제어부(200)는 생성된 QR 코드에 포함된 패턴 블록의 색상을 결정할 수 있다(S604). 여기서 상기 패턴 블록의 색상은 상기 배경 이미지로 지정된 색상과 기 설정된 색 거리를 가지는 색상일 수 있다. 따라서 상기 배경 이미지와 구분될 수 있으며, 상기 배경 이미지로 결정되는 색상이 다른 경우 상기 패턴 블록의 색상이 달라질 수 있다.
한편 S604 단계에서 QR 코드 패턴을 형성하는 패턴 블록의 색상이 결정되면, 제어부(200)는 배경 이미지 상에 상기 패턴 블록을 포함하는 적어도 하나의 QR 코드 이미지, 즉 QR 이미지를 표시할 수 있다(S606). 이 경우 상기 QR 이미지는 기 설정된 크기, 예를 들어 16 X 16의 사이즈로 형성되어 도서 데이터의 이미지가 표시되는 배경 이미지 상에 반복적으로 표시될 수 있다. 또는 상기 도서 데이터의 이미지가 표시되는 배경 이미지 영역을 기 설정된 개수의 영역으로 분할하고 분할된 각 영역에 상기 QR 이미지가 표시될 수도 있다. 또는 상기 도서 데이터의 이미지가 표시되는 배경 이미지 영역 전체에 상기 QR 이미지가 표시될 수도 있다.
도 7은, 이처럼 도 6에서 구매자의 식별 정보를 포함하는 배경 이미지 상에 문서 컨텐츠가 표시되는 예를 도시한 예시도이다.
도 7의 (a)를 참조하여 살펴보면, 도 7의 (a)는 도서 데이터의 이미지(700)가, 디스플레이부(250) 전체에 표시되도록 설정된 경우의 예를 보이고 있다. 이 경우 상기 디스플레이부(250) 영역 전체가 상기 이미지(700)가 드로잉되는 영역일 수 있으며, 이에 따라 상기 디스플레이부(250) 영역 전체에 사용자가 설정한 색상의 배경 이미지가 표시될 수 있다.
이러한 상태에서, 제어부(200)는 상기 디스플레이부(250) 상에 표시되는 배경 이미지에 QR 이미지(710)를 표시할 수 있다. 그리고 QR 이미지(710)가 표시되는 배경 이미지에 중첩하여 도서 데이터의 이미지가 표시될 수 있다.
이 경우 상기 QR 이미지(710) 상에 표시되는 패턴 블록은 배경 이미지의 색상으로부터 색 거리가 기 설정된 거리를 가지는 색상으로 결정될 수 있다. 따라서 상기 기 설정된 색 거리가 작을수록 패턴 블록의 색상은 배경 이미지의 색상과 유사한 색상으로 표시될 수 있다. 따라서 도 7의 첫 번째 도면에서 보이고 있는 바와 같이 도서 데이터의 이미지를 식별하는 데에 장애가 없도록 패턴 블록이 표시될 수 있다. 또한 이러한 패턴 블록을 포함하는 배경 이미지 상에 도서 데이터의 이미지가 표시되므로, 디스플레이부(250) 상에 표시되는 도서 데이터의 이미지를 촬영하는 경우 상기 패턴 블록의 이미지 역시 함께 촬영될 수 있다.
한편 상술한 바와 같이 패턴 블록의 색상은 배경 이미지의 색상에 따라 결정되므로, 배경 이미지의 색상을 알면, 상기 패턴 블록의 색상 코드를 검출할 수 있다. 따라서 이미지 처리를 통해 상기 패턴 블록에 대응하는 색상 코드에 대응하는 색상을 강화 또는 색상 반전 등을 통해, 도 7의 (b)에서 보이고 있는 바와 같이 패턴 블록을 식별 가능하게 표시할 수 있다. 따라서 디스플레이부(250)를 촬영하여 도서 데이터에 대한 무단 복제가 이루어지는 경우, 촬영된 이미지로부터 상기 패턴 블록을 포함하는 QR 이미지가 검출될 수 있다.
여기서 상기 패턴 블록은 QR 코드 방식으로 사용자의 식별 정보와 고객 단말기(20)의 식별 정보 중 적어도 하나를 나타낸다. 따라서 검출된 QR 이미지로부터, 유출된 도서 데이터의 이미지를 구매한 구매자의 식별 정보와 뷰어 디바이스인 고객 단말기의 식별 정보 중 어느 하나를 확보할 수 있으며, 검출된 식별 정보에 근거하여, 상기 유출된 도서 데이터의 이미지를 구매한 구매자를 추적할 수 있다.
한편 상술한 설명에 따르면, 본 발명의 실시 예에 따른 서비스 서버(10)는 상기 암호화 및 복호화 과정 외에도, 구매자, 즉 사용자의 식별 정보나 고객 단말기(20)의 식별 정보, 그리고 구매 승인 시각의 정보 중 적어도 하나를 드로잉 키로 삽입하여, 지정된 사용자 또는 지정된 뷰어 디바이스가 아닌 경우에 이미지의 드로잉 자체가 제한되도록 할 수도 있음을 언급한 바 있다. 도 8 및 도 9는 이러한 서비스 서버(10)의 동작 과정 및 고객 단말기(20)의 동작 과정을 설명하기 위한 것이다.
먼저 도 8은, 본 발명의 실시 예에 따른 서비스 서버(10)가, 문자열로 인코딩된 이미지 데이터의 지정된 위치에 기 설정된 드로잉 키를 삽입 및 드로잉 키가 삽입된 문자열 데이터(인코딩 데이터)를 암호화하는 동작 과정을 도시한 흐름도이다.
도 8을 참조하여 살펴보면, 상기 도 4의 S414 단계에서 인코딩 데이터를 암호화하는 과정이 시작되면, 서비스 서버(10)는 먼저 사용자 식별 정보와 그 사용자의 뷰어 디바이스로 설정된 단말기의 식별 정보, 그리고 구매 승인 시각의 정보 중 어느 하나를 드로잉 키로 설정할 수 있다. 그리고 설정된 드로잉 키를 문자열 데이터로 인코딩된 이진 데이터(구매된 도서 데이터의 일 페이지를 스캔한 이미지의 이진 데이터)에 삽입할 수 있다(S800).
여기서 상기 서비스 서버(10)는 상기 사용자 식별 정보와 상기 뷰어 디바이스로 설정된 단말기의 식별 정보, 그리고 구매 승인 시각의 정보 중 어느 하나를 임의로 드로잉 키로 설정할 수 있다.
또한 상기 설정된 드로잉 키를 상기 뷰어 디바이스, 즉 고객 단말기(20)와 사전에 약속된 기 설정된 위치에 삽입할 수 있다. 하기 [예]는, 문자열 데이터의 5번째 문자 위치에 14자리로 생성된 구매 승인 시각 정보가 드로잉 키로 삽입되는 예를 도시한 것이다.
[드로잉 키가 삽입되는 예]
aaaaKKbtmsTTasdf1243omksdf09... : 인코딩된 문자열 데이터
20220804141930 : 구매 승인 시각(2022년8월4일 오후2시19분30초)
aaaaK 20220804141930 KbtmsTTasdf1243omksdf09... : 구매 승인 시각이 드로잉 키로 삽입
한편 상기 드로잉 키는 상기 인코딩된 문자열 데이터의 처음 또는 처음으로부터 일정 개수의 문자 다음에 삽입될 수 있다. 보다 바람직하게 드로잉 키는 문자열 데이터의 앞부분에 삽입될 수 있다. 이는 드로잉 키가 첫 문자로부터 가까운 부분에 삽입될수록 더 많은 문자열 데이터가 쉬프트될 수 있기 때문이다.
그리고 서비스 서버(10)는 상기 드로잉 키가 삽입된 문자열 데이터를 암호화할 수 있다(S802). 그리고 상기 도 4의 S416 단계로 진행하여 암호화된 문자열 데이터를 사용자가 구매한 부분별 도서 데이터로서 고객 단말기(20)에 전송할 수 있다. 따라서 드로잉 키가 삽입된 문자열 데이터를 암호화한 데이터가 고객 단말기(20)에 전송될 수 있다.
한편 도 9는 본 발명의 실시 예에 따른 고객 단말기(20)가, 드로잉 키가 삽입된 인코딩 데이터를 이진 데이터로 디코딩 및 디코딩된 이진 데이터를 드로잉하는 동작 과정을 도시한 흐름도이다.
도 9를 참조하여 살펴보면, 고객 단말기(20)가, 복호화된 인코딩 데이터에 대응하는 이미지를 디스플레이부(250)의 배경 이미지 상에 드로잉하는 상기 도 5의 S506 단계가 시작되는 경우, 먼저 상기 복호화된 인코딩 데이터로부터 상기 드로잉 키를 추출할 수 있다(S900).
상기 S900 단계에서 고객 단말기(20)의 제어부(200)는 상기 서비스 서버(10)와 미리 약속된 위치(예 : 5번째 문자 위치)에서, 기 설정된 자릿수 만큼의 문자, 즉 사용자 식별 정보나 고객 단말기(20)의 식별 정보 또는 구매 승인 시각의 정보를 구성하는 문자들의 개수 만큼의 문자들을, 상기 복호화된 인코딩 데이터, 즉 문자열 데이터로부터 추출할 수 있다. 이 경우 상기 드로잉 키가 삽입된 상태라면, 삽입된 드로잉 키, 즉 사용자 식별 정보나 고객 단말기(20)의 식별 정보 또는 구매 승인 시각의 정보 중 어느 하나에 대응하는 문자열이 상기 문자열 데이터로부터 추출될 수 있다.
그러면 제어부(200)는 상기 S900 단계에서 추출된 문자열이, 사용자 식별 정보나 고객 단말기(20)의 식별 정보 또는 구매 승인 시각의 정보 중 어느 하나에 일치하는지 여부를 체크할 수 있다(S902). 그리고 상기 S902 단계의 체크 결과 상기 S900 단계에서 추출된 문자열이, 사용자 식별 정보나 고객 단말기(20)의 식별 정보 또는 구매 승인 시각의 정보 중 어느 하나에 일치하는 경우라면, 제어부(200)는 상기 드로잉 키, 즉 문자열 데이터로부터 추출된 문자열을 삭제할 수 있다(S904).
[드로잉 키가 제거되는 예]
aaaaK 20220804141930 KbtmsTTasdf1243omksdf09... : 드로잉 키가 삽입된 문자열 데이터
kkk0111-arena2 : 사용자의 식별 정보
dlfk0100fhd023 : 뷰어 디바이스 식별 정보
20220804141930 : 구매 승인 시각(2022년8월4일 오후2시19분30초)
aaaaKKbtmsTTasdf1243omksdf09... : 일치되는 구매 승인 시각 정보를 제거한 문자열 데이터
따라서 복호화된 문자열 데이터로부터, 상기 S904 단계를 통해 드로잉 키로 삽입된 문자열이 제거되면, 이미지 데이터에 대응하는 이진 데이터를 인코딩한 문자열 데이터로 복원될 수 있다. 그러면 제어부(200)는 상기 드로잉 키가 제거된 인코딩 데이터에 대한 디코딩을 수행하여, 문자열 데이터를 이미지 데이터에 대응하는 이진 데이터로 변환할 수 있다(S906). 그리고 디코딩된 이진 데이터에 따른 이미지를, 상기 배경 이미지 상에 드로잉하도록 드로잉부(240)를 제어할 수 있다(S908). 따라서 선택된 도서 데이터에 대응하는 이미지가 디스플레이부(250) 상에 표시될 수 있다.
한편 제어부(200)는 상기 S902 단계의 체크 결과, 상기 S900 단계에서 추출된 문자열이, 사용자 식별 정보나 고객 단말기(20)의 식별 정보 또는 구매 승인 시각의 정보 중 어느 하나에 일치하지 않는 경우라면, 제어부(200)는 이미지를 드로잉할 수 없음을 나타내는 오류 정보를 출력할 수 있다. 그리고 상기 드로잉을 종료할 수 있다(S910). 이는 삽입된 드로잉 키가 제거되지 않는 경우 삽입된 드로잉 키에 대응하는 노이즈 데이터들 및 상기 드로잉 키에 의해 발생한 데이터 쉬프트에 의하여 올바른 이미지의 드로잉이 이루어질 수 없기 때문이다.
한편 상기 S906 단계에서 출력되는 오류 정보는, 상기 S900 단계에서 추출된 문자열이, 사용자 식별 정보나 고객 단말기(20)의 식별 정보 또는 구매 승인 시각의 정보 중 어느 하나에 일치하지 않음에 따라 드로잉 키가 삽입된 상태에서 드로잉이 시도되는 경우에 출력되는 오류 메시지일 수도 있다. 즉, 상술한 바와 같이 드로잉 키가 문자열 데이터의 처음 또는 앞쪽 부분에 삽입된 상태인 경우, 이진 데이터의 헤더 부분에 대응하는 위치에 상기 드로잉 키가 삽입될 수 있다. 이 경우 드로잉 키를 포함하는 상태로 이진 데이터로 인코딩되는 경우, 드로잉부(240)는 이진 데이터를 인식하기 어려워질 수 있으며, 이에 따라 드로잉이 불가능하다는 오류 메시지를 출력할 수 있다.
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 따라서 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.

Claims (15)

  1. 사용자가 지정한 특정 단말기와 통신을 연결하는 통신부;
    사용자가 구매한 전자도서의 일 부분을 스캔하여, 상기 사용자가 구매한 전자도서의 일 부분에 대응하는 이미지 데이터를 생성하는 스캔부;
    상기 이미지 데이터를 문자열 데이터로 인코딩(encoding)하는 변환부;
    상기 사용자의 식별 정보와 상기 특정 단말기 식별 정보의 조합으로 암호화 키를 생성 및, 생성된 암호화 키로 상기 문자열 데이터로 변환된 이미지 데이터를 암호화하여 암호화된 부분 도서 데이터를 생성하는 암호화부; 및,
    상기 사용자의 구매 요청 및 결제 완료에 대한 응답으로 상기 전자도서의 일 부분에 대한 구매를 승인하며, 상기 사용자의 구매 요청 및 결제에 대한 응답으로 상기 암호화된 부분 도서 데이터를 상기 특정 단말기에 전송하는 제어부를 포함하며,
    상기 제어부는,
    상기 이미지 데이터가 상기 문자열 데이터로 인코딩되면, 상기 사용자의 식별 정보와 상기 특정 단말기 식별 정보 및 상기 구매가 승인된 시각의 정보 중 어느 하나를 상기 문자열 데이터의 기 설정된 위치에 드로잉 키로서 삽입하고,
    상기 드로잉 키가 삽입된 문자열 데이터를, 상기 암호화 키로 암호화하도록 상기 암호화부를 제어하는 것을 특징으로 하는 서비스 서버.
  2. 제1항에 있어서, 상기 제어부는,
    상기 전자도서의 일 부분에 대한 구매가 승인되면, 구매가 승인된 시각의 정보를 검출하고, 상기 사용자의 식별 정보와 상기 특정 단말기 식별 정보 및, 상기 구매 승인 시각의 정보의 조합으로 상기 암호화 키를 생성하며,
    상기 암호화 키로서, 상기 구매 승인 시각의 정보만을 상기 특정 단말기에 전송하는 것을 특징으로 하는 서비스 서버.
  3. 제2항에 있어서,
    상기 제어부는,
    상기 구매 승인 시각의 정보를 상기 전자도서의 일 부분에 대한 구매가 승인되었음을 알리는 알림 정보에 포함하여 상기 특정 단말기로 전송하며,
    상기 전송된 구매 승인 시각의 정보는,
    대응하는 암호화된 부분 도서 데이터에 연관되게 상기 특정 단말기에 저장되는 것을 특징으로 하는 서비스 서버.
  4. 삭제
  5. 제1항에 있어서,
    상기 사용자의 식별 정보와 상기 특정 단말기 식별 정보 및 상기 구매가 승인된 시각의 정보는,
    서로 동일한 개수의 문자로 형성되는 것을 특징으로 하는 서비스 서버.
  6. 제1항에 있어서, 상기 제어부는,
    상기 문자열 데이터의 처음에 상기 드로잉 키에 해당하는 문자들을 삽입하는 것을 특징으로 하는 서비스 서버.
  7. 제1항에 있어서, 상기 변환부는,
    상기 이미지 데이터에 대응하는 이진 데이터를, 기 설정된 개수의 비트들마다 대문자 알파벳, 소문자 알파벳, 0 부터 9까지의 숫자 및, 플러스 기호(+)와 마이너스 기호(-) 중 어느 하나의 문자로 변환하는 것을 특징으로 하는 서비스 서버.
  8. 암호화된 부분 도서 데이터를 수신하는 단말기에 있어서,
    디스플레이부;
    기 설정된 서비스 서버로부터, 상기 암호화된 부분 도서 데이터를 수신하는 통신부;
    상기 암호화된 부분 도서 데이터를 문자열 데이터로 복호화하는 복호화부;
    상기 문자열 데이터를 상기 부분 도서 데이터에 대응하는 이미지 데이터의 이진 데이터로 디코딩하는 디코딩(decoding)부;
    상기 디코딩된 이진 데이터에 대응하는 이미지를 상기 디스플레이부 상의 기 설정된 영역에 드로잉(drawing)하는 드로잉부; 및,
    상기 단말기에 기 저장된 사용자의 식별 정보와 상기 단말기의 식별 정보 및 상기 서비스 서버로부터 수신된 구매 승인 시각 정보의 조합으로 복호화 키를 생성하고, 생성된 복호화 키를 이용하여 상기 암호화된 부분 도서 데이터를 복호화하도록 상기 복호화부를 제어하는 제어부를 포함하며,
    상기 제어부는,
    상기 암호화된 부분 도서 데이터가 문자열 데이터로 복호화되면, 복호화된 문자열 데이터의 문자들 중, 기 설정된 위치로부터 기 설정된 개수의 문자들을 드로잉 키로 추출하고,
    추출된 드로잉 키가, 상기 단말기에 기 저장된 드로잉 키에 일치하는 경우 상기 문자열 데이터로부터 상기 추출된 문자들을 제거하며,
    상기 드로잉 키는,
    상기 단말기에 저장된 사용자의 식별 정보와 상기 단말기의 식별 정보 및, 상기 암호화된 부분별 도서 데이터에 연관되게 저장된 구매 승인 시각 정보 중 어느 하나임을 특징으로 하는 단말기.
  9. 제8항에 있어서,
    상기 구매 승인 시각 정보는,
    상기 부분 도서 데이터의 구매가 완료됨에 따라 상기 부분 도서 데이터의 구매가 승인될 때 상기 서비스 서버에서 검출되고, 상기 구매 승인이 완료되었음을 알리는 응답 메시지와 함께 상기 서비스 서버로부터 제공되는 정보이며,
    상기 제어부는,
    상기 구매 승인 시각 정보가 수신되면, 상기 사용자가 구매한 부분 도서 데이터와 연관되게 상기 수신된 구매 승인 시각 정보를 저장하는 것을 특징으로 하는 단말기.
  10. 삭제
  11. 삭제
  12. 제8항에 있어서,
    상기 사용자의 식별 정보와 상기 단말기 식별 정보 및 상기 구매 승인 시각의 정보는,
    서로 동일한 개수의 문자로 형성되는 것을 특징으로 하는 단말기.
  13. 제8항에 있어서, 상기 디코딩부는,
    상기 암호화된 부분 도서 데이터가 문자열 데이터로 복호화되면 복호화된 문자열 데이터의 문자들을, 대문자 알파벳, 소문자 알파벳, 0 부터 9까지의 숫자 및, 플러스 기호(+)와 마이너스 기호(-)에 대응하는 기 설정된 개수의 비트들로 변환하는 것을 특징으로 하는 단말기.
  14. 제8항에 있어서, 상기 제어부는,
    상기 디코딩된 이진 데이터에 대응하는 이미지가 그려지는 상기 디스플레이부 상의 기 설정된 영역에, 상기 단말기에 저장된 사용자의 식별 정보 및 상기 단말기의 식별 정보 중 적어도 하나를 나타내는 블록 패턴을 가지는 QR(Quick Response) 코드를 적어도 하나 표시하는 것을 특징으로 하는 단말기.
  15. 제14항에 있어서,
    상기 제어부는,
    상기 디스플레이부 상에 기 설정된 영역에 사용자의 선택에 따른 색상의 배경 이미지를 표시하며, 상기 배경 이미지에 상기 적어도 하나의 QR 코드를 표시 및, 상기 QR 코드가 표시되는 배경 이미지에 중첩하여 상기 디코딩된 이진 데이터에 대응하는 이미지를 표시하며,
    상기 QR 코드의 블록 패턴은,
    상기 배경 이미지의 색상으로부터 기 설정된 색 거리를 가지는 색상으로 표시되는 것을 특징으로 하는 단말기.
KR1020220098721A 2022-08-08 2022-08-08 암호화된 문서 컨텐츠를 제공하는 서버와 그 문서 컨텐츠의 뷰어 디바이스 KR102490756B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220098721A KR102490756B1 (ko) 2022-08-08 2022-08-08 암호화된 문서 컨텐츠를 제공하는 서버와 그 문서 컨텐츠의 뷰어 디바이스

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220098721A KR102490756B1 (ko) 2022-08-08 2022-08-08 암호화된 문서 컨텐츠를 제공하는 서버와 그 문서 컨텐츠의 뷰어 디바이스

Publications (1)

Publication Number Publication Date
KR102490756B1 true KR102490756B1 (ko) 2023-01-27

Family

ID=85101501

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220098721A KR102490756B1 (ko) 2022-08-08 2022-08-08 암호화된 문서 컨텐츠를 제공하는 서버와 그 문서 컨텐츠의 뷰어 디바이스

Country Status (1)

Country Link
KR (1) KR102490756B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102531477B1 (ko) * 2022-11-07 2023-05-12 미러 주식회사 발췌된 원문의 정보를 제공하는 논문 작성 시스템의 서버 및 사용자 단말기

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010113578A (ko) * 2001-11-03 2001-12-28 한탁돈 코드인식을 위한 장치 및 그 방법
KR20120028447A (ko) * 2010-09-15 2012-03-23 엘지이노텍 주식회사 전자 책 컨텐츠의 서비스 방법
KR101290809B1 (ko) * 2011-07-08 2013-08-23 삼성중공업 주식회사 콘텐츠 제공 서버, 콘텐츠 암호화 방법, 콘텐츠 복호화 방법, 및 이들 방법이 저장된 기록매체
KR101572242B1 (ko) * 2014-12-04 2015-11-26 주식회사 디알엠인사이드 전자책 복제 방지 시스템 및 방법
JP2017016168A (ja) * 2015-06-26 2017-01-19 株式会社デンソー 情報コード生成装置、情報コード生成プログラム
KR102372172B1 (ko) * 2021-09-08 2022-03-08 미러 주식회사 전자도서 판매 시스템 및 전자도서 판매 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010113578A (ko) * 2001-11-03 2001-12-28 한탁돈 코드인식을 위한 장치 및 그 방법
KR20120028447A (ko) * 2010-09-15 2012-03-23 엘지이노텍 주식회사 전자 책 컨텐츠의 서비스 방법
KR101290809B1 (ko) * 2011-07-08 2013-08-23 삼성중공업 주식회사 콘텐츠 제공 서버, 콘텐츠 암호화 방법, 콘텐츠 복호화 방법, 및 이들 방법이 저장된 기록매체
KR101572242B1 (ko) * 2014-12-04 2015-11-26 주식회사 디알엠인사이드 전자책 복제 방지 시스템 및 방법
JP2017016168A (ja) * 2015-06-26 2017-01-19 株式会社デンソー 情報コード生成装置、情報コード生成プログラム
KR102372172B1 (ko) * 2021-09-08 2022-03-08 미러 주식회사 전자도서 판매 시스템 및 전자도서 판매 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102531477B1 (ko) * 2022-11-07 2023-05-12 미러 주식회사 발췌된 원문의 정보를 제공하는 논문 작성 시스템의 서버 및 사용자 단말기

Similar Documents

Publication Publication Date Title
US6754822B1 (en) Active watermarks and watermark agents
EP1075757B1 (en) Digital authentication with analog documents
US9213930B2 (en) Secure barcodes
US10803185B2 (en) Optically readable format of encrypted data
US8359473B1 (en) System and method for digital rights management using digital signatures
TW486902B (en) Method capable of preventing electronic documents from being illegally copied and its system
JP2015181010A (ja) インターネットサイトにアップロードされるマルチメディアにおけるユーザプライバシを保護するシステム及び方法
JP2007280180A (ja) 電子文書
JP2005536951A (ja) デジタル機器においてデジタル文書にセキュリティ保護を施す装置、システムおよび方法
JP2006338249A (ja) コンテンツ保護装置及びコンテンツ保護解除装置
JP2007280181A (ja) 電子文書の処理プログラム及び電子文書の処理装置
WO2021218166A1 (zh) 合同文签方法、装置、设备及计算机可读存储介质
US20120303967A1 (en) Digital rights management system and method for protecting digital content
US20150019440A1 (en) Encrypted Correction Code to protect the integrity and originality of electronic documentation and secure online payment and online wallet
US20130262864A1 (en) Method and system for supporting secure documents
CN109547215B (zh) 一种基于移动终端指纹的文档信息保护方法
US20130227271A1 (en) Method for distributing digital documents to which user rights are attached, which support multiple copying, exchange, and multiple platforms
CN103036860A (zh) 电子读物的验证方法和系统、服务器端、客户端及终端
KR102490756B1 (ko) 암호화된 문서 컨텐츠를 제공하는 서버와 그 문서 컨텐츠의 뷰어 디바이스
US11177959B2 (en) Cryptography method and system for securing data via electronic transmission
Yahya et al. A new academic certificate authentication using leading edge technology
KR101575840B1 (ko) 사적복제 지원 전자책 보호 시스템 및 방법
Kaushik et al. Securing the transfer and controlling the piracy of digital files using Blockchain
JP2011065592A (ja) 著作物販売方法及びシステム
CN101404573A (zh) 一种授权方法、系统及装置

Legal Events

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