OOXML을 이용한 전자문서와 종이문서 텍스트 워터마킹 시스템
Copyright ⓒ 2020 The Digital Contents Society
This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-CommercialLicense(http://creativecommons.org/licenses/by-nc/3.0/) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.
초록
인터넷을 통해 문서가 배포될 때 보안을 위해 DRM 기술, 오프라인 문서에는 Visible Watermark 기술을 사용한다. DRM 기술은 플러그인 설치로 인한 불편함 그리고 Visible Watermark는 열람하고자 하는 사용자의 시각적인 불편함을 초래한다. 이러한 불편함을 해결하고자 본 연구는 OOXML과 PDF 기술을 통하여 MS-WORD로 작성된 문서에 Text Watermark를 삽입하여 전자문서 및 종이문서로 생성하고, 생성된 문서에서 Text Watermark 정보를 추출·복원함으로써 문서의 저작권보호 및 무단배포를 확인할 수 있는 Text Watermarking System을 제안한다. Text Watermark 기술은 오랜 기간 많은 논문을 통해 알고리즘들이 제안 되었지만, 구현상의 어려움으로 인하여 실제 사용되는 사례를 찾아보기는 힘들다. 본 연구에서는 inter-word space 크기를 사용하여 Text Watermark를 적용할 수 있는 문서유통 시스템을 제안한다.
Abstract
When documents are distributed over the Internet, DRM technology is used for online documents, and visible watermark is used for offline documents. Online DRM technology is inconvenient due to the installation of plug-ins and offline visible watermark causes visual discomfort for users who view documents. To address this inconvenience, this study uses OOXML and PDF technology to insert text watermark into documents written in MS-WORD and create them into softcopy and hardcopy documents, extract and restore text watermark information from softcopy and hardcopy documents, confirming copyright protection and unauthorized distribution of documents. Text watermark technology has long been proposed in many papers, but it is difficult to find examples of actual use due to difficulties in implementation. In this study, we construct a usable system by using the size of inter-word space.
Keywords:
Text watermark, OOXML, PDF, OCR, Copyright키워드:
Text watermark, OOXML, PDF, OCR, 저작권Ⅰ. 서 론
최근에 인터넷 환경은 오픈웹 기반의 표준 환경으로 변화하고 있으며, 문서 유통에서 다양한 운영체제 및 웹 브라우저를 지원하기 위하여 부가 플러그인의 추가 설치를 지양하고 있다. 부가 플러그인의 추가 설치 없이 저작권을 보호하기 위해 디지털 상태의 비디오·이미지·오디오·텍스트 파일등에 보이지 않게 저작권 관련 정보를 마킹할 수 있는 Watermark 기술의 사용이 가능하다.
문서에 적용할 수 있는 Text Watermark의 경우, 구현 알고리즘에 관한 연구는 오랜 기간 많은 논문을 통해 이루어지고 있다.[1] Brassil 등은 Line-shift coding 및 word-shift coding을 제안하였다. Line-shift coding은 텍스트 문서의 줄 위치를 수직 방향으로 이동하여 정보를 삽입하고 word-shift coding은 텍스트 문서의 줄을 구성하는 단어의 위치를 수평 방향으로 이동하여 정보를 삽입하는 알고리즘이다.[2] Line-shift coding과 word-shift coding의 검출 알고리즘은 워터마크 식별을 위해 제어 라인 또는 word를 필요로 하며, 이를 위해 원본 문서가 필요하다는 단점이 있다. Huang 등은 이런 단점을 보완하기 위해 inter-word space를 이용한 Text Watermarking 방법을 제안하였다.[3] space가 sine wave를 나타내도록 word간의 space를 수정하는 알고리즘을 개발하였다. 이 알고리즘은 non-blind 와 blind mode를 지원한다. 그러나, 이 방법은 sine wave를 사용함으로 인하여, 에러나 공격에 강인하지 못하다는 이유로 Hwang 등은 space coding을 사용한 새로운 Text Watermarking 방법을 제안하였다.[4] 텍스트 문서에서 Watermarking 정보를 삽입하고자 하는 라인의 개수에 따라 적당한 PN(Pseudo Noise) 코드를 발생시켜, 한 라인에서의 단어 사이의 여백 간격이 PN 코드 성질을 갖도록 단어를 재배열하게 되는 구조이다. 워터마크 삽입 영역이 일정한 구간의 평균 공간 값을 사용하므로 눈에 띄지 않는 특성을 갖고 외부 공격에 의한 왜곡에 강인한 특성을 가질 수 있다. 근래에는 OOXML을 이용하여 Wenjie 등이 word 단위로 정보를 숨기는 방법[5], Li Yang 등이 color 단위로 정보를 숨기는 방법[6]을 제안하였으나, 이 방법은 전자파일로만 가능하다. 이러한 연구들에 의해 Text Waterking 방법론에 대한 많은 성과가 있었으나, 인터넷이나 시스템을 통해 유포되는 문서들에 실제 적용한 사례는 거의 없다.
본 논문에서는 이러한 연구 결과 및 알고리즘를 이용하여, 인터넷이나 시스템을 통해 유포되는 문서들에 실제 Text Watermark를 적용 할 수 있는 시스템을 제안한다. 이 시스템에서 사용할 Text Watermarking 방법은 inter-word space의 크기를 사용하며, 반복 삽입에 의해 검출 오류를 최소화하고 왜곡에 의해 일정 부분이 훼손되더라도 검출이 가능하도록 한다. 제안 시스템은 문서의 형식을 파악하고, 형식에 맞도록 내용을 수정하여 Text Watermark를 삽입한 후 전자문서로 변환·생성되며, 전자문서에서 출력을 통해 종이문서가 생성된다. 전자문서와 종이문서에 보이지 않게 포함되어 있는 Text Watermark 정보는 Operator Mark의 경우 저작권보호, Session Mark의 경우 무단배포방지의 용도로 삽입 주체에 따라 사용 목적이 달라질 수 있다. Text WaterMark 시스템은 MS-WORD로 작성된 문서를 대상으로 OOXML[7]을 통해 Text Watermark를 삽입하고, 전자문서의 포맷은 PDF이며 종이문서는 전자문서의 출력물이다. Text Watermark 검출은 전자문서는 PDF 기술[8], 종이문서는 OCR 기술을[9] 사용한다.
Ⅱ. 시스템 구성
2-1 Text Watermark 구성 요소
본 논문에서는 Text Watermark를 사용하기 위해 많은 논문에서 연구가 진행된 inter-word space 크기를 사용한다. 영문 대소문자(52개)와 숫자(10개)를 표현하기 위해 62개의 값을 표현할 수 있는 6개의 inter-word space가 필요하다.
일반적인 문서에서 폰트크기 10으로 설정 했을 경우, 한페이지당 라인수 25개, 라인별 space 수 6개 한 페이지에 inter-word space 개수는 최대 150개가 존재할 수 있다. 아래 본문의 실험에서는 6bit에 1bit를 체크비트로 사용하여 총 7bit로 삽입 및 추출이 이루어진다.
2-2 시스템 구성도
Text Watermarking System은 크게 두 가지 기능으로 구별된다. 두 가지 기능으로는 Text Watermark 삽입과 Text Watermark 추출로 구성된다.
그림1에서는 Text Watermark 삽입 구성을 보여준다.
- 1. MS-WORD로 생성된 문서를 시스템에 업로드한다.
- 2. 문서의 라인/inter-word space 정보 추출한다.
- 3. Text Watermark 정보를 생성한다.
- 4. OOXML을 사용하여 Text Watermark를 문서에 삽입한다.
- 5. 문서를 PDF로 변환하여 내부 Storage에 저장한다.
- 6. Text Watermark가 삽입된 PDF를 다운로드한다.
그림2에서는 Text Watermark 추출 구성을 보여준다.
- 1. PDF 혹은 종이문서 스캔/촬영이미지를 업로드 한다.
- 2. PDF일 경우 PDF 기술을 사용하고, 종이문서 스캔/촬영이미지의 경우 OCR 기술을 사용한다.
- 3. 각 라인별 inter-word space 정보를 추출한다.
- 4. Text Watermark 정보를 계산하여 복원한다.
- 5. Text Watermark 정보를 사용자에게 알려준다.
Ⅲ. Text Watermark 삽입 방법
문서에서 라인별로 inter-word space 크기를 다르게 하여 삽입하기는 쉽지 않다. MS-WORD의 경우에는 표준 XML 기반으로 포맷이 표준화 되어 있으므로 가능하다. 이번 장에서는 OOXML을 이용하여 문서에 Text Watermark 정보를 삽입하는 방법과 삽입 전·후의 차이 그리고 Text Watermark 삽입 상세 흐름에 대하여 설명한다.
3-1 OOXML ( Open Office XML )
OOXML은 마이크로소프트(MS)가 개발하였으며, 국제 표준 ECMA-376과 ISO/IEC 29500으로 등록되어 있다.
OOXML 형식은 과거 MS 오피스형식과s 호환 가능하며, 다양한 도구와 플랫폼에서 개발할 수 있다. MS-WORD 파일은 그림3과 같이 3개의 디렉토리와 [Content_Types].xml 파일로 구성된다. Text Watermark를 삽입하기 위해 처리해야 할 파일은 word 디렉토리의 document.xml 파일이다. 이 파일에는 문서의 Text 정보와 inter-word space 정보 등을 포함하고 있기 때문에 이를 조정함으로써 원하는 정보를 삽입하는 것이 가능하다.
3-2 OOXML을 이용한 Text Watermark 정보 삽입
그림4 에서 OOXML을 이용하여 document.xml에서 텍스트 영역을 찾아 Text Watermark 정보의 bit값들을 inter-word space 크기로 변환하여 삽입한 소스를 볼 수 있다. 0의 값은 default inter-word space 크기를 지정하여 사용하고, 1의 값은 그림5에서와 같이 default inter-word space (크기 35) 보다 약 1.5배 크기로 지정하여 사용한다. document.xml에서 bit ‘1’을 삽입해야 할 경우, space 크기를 지정하여 word 사이에 삽입한다. document.xml에서 bit ‘0’을 삽입해야 할 경우, default inter-word space 크기를 사용함으로써 별도의 작업을 하지 않는다.
그림6 에서 Text Watermark 적용 전·후의 inter-word space 크기의 차이를 확인 할 수 있다. bit값 0과 1을 inter-word space 크기에 따라 조정하여 삽입하는 것에는 고려해야 할 사항들이 많이 있다. 문서의 모든 페이지에 반복적으로 적용해야 하며, 라인별 inter-word space 크기의 개수와 표에 포함된 inter-word space 인지 여부 등의 사전에 파악해야 할 요소들이 존재한다. 이 요소들은 실제 문서의 렌더링 과정을 거치지 않으면 알 수 있는 방법은 없다. 렌더링 결과는 PDF로 생성하거나, 실제 출력을 해보는 방법이 있다. 본 연구에서는 PDF로 생성하는 방법으로 실험을 진행했다. PDF로 생성하면 배포용 전자문서와 출력된 종이문서의 형태와 동일하게 생성할 수 있으며, PDF 분석을 통하여 라인정보, 라인별 inter-word space 정보, 테이블내의 inter-word space 인지 아닌지 여부 등을 확인할 수 있다. 이렇게 확인된 라인, inter-word space 정보를 이용하여 미리 Text Watermark 삽입에 사용할 초기 값들을 계산할 수 있다.
3-3 Text Watermark 정보 삽입 상세 흐름도
그림7 은 원본문서(MS_WORD)에 Text Watermark를 삽입하기 위한 상세 흐름도 이다.
1. 첫 번째 페이지에서 마지막 페이지까지 모든 페이지에 반복 로직을 적용한다.
2. 해당 페이지를 렌더링하여 라인 및 라인별 inter-word space 정보를 추출한다.
3. 각 라인별로 평균 inter-word space 크기를 계산하여 해당 라인에 적용 여부를 결정한다.
4. 적용 조건에 맞을 경우, Text Watermark 정보에 따른 inter-word space 크기값 결정한다.
5. 해당 라인에 크기가 결정된 inter-word space를 삽입
6. 해당 페이지 라인이 끝날 때까지 반복적으로 inter-word space를 삽입한다.
7. 모든 페이지의 모든 라인에 inter-word space 삽입이 완료되면 배포용 전자문서로 저장한다.
Ⅳ. Text Watermark 추출 방법
최종 배포 문서는 PDF 파일 형태로 생성된다. 생성된 PDF 파일은 사용자에게 다운로드 되어 유통된다. 전자문서로 유통될 경우 최종 검증 대상 문서는 PDF 파일이 된다. 1절에서는 전자문서에서 Text Watermark를 추출하는 방법에 대하여 설명한다. 유통된 전자문서에서 출력이 이루어질 경우 최종 검증 대상 문서는 종이문서가 된다. 2절에서는 종이문서에서 Text Watermark를 추출하는 방법에 대하여 설명한다.
4-1 전자문서( Softcopy )
PDF(Portable Document Format)파일은 어떤 기기에서든 전송과 읽기가 가능하도록 지원하는 포맷으로 문서 표준으로 사용되고 있으며 PDF에서는 텍스트, 이미지 등의 객체 정보를 상세하게 추출할 수 있다.
그림8은 Text Watermark가 삽입된 전자 문서이며 텍스트 정보를 그림9과 같이 상세하게 추출 할 수 있다. 추출된 텍스트 정보에서 각 word의 위치 정보를 파악하고 이를 이용하여 inter-word space 크기를 계산하여 삽입된 Text Watermark 정보를 복원할 수 있다.
각 라인별 word 위치로부터 inter-word space 크기를 계산하고, 이를 이용하여 평균 inter-word space의 크기를 계산한다. 평균 inter-word space 크기를 기준으로 작으면 0, 크거나 같으면 1로 bit array를 생성하면 Text Watermark 정보로 복원된 것이다. 그림10의 경우 “1100100”이 반복적으로 삽입되었으며, 반복적인 삽입을 통하여 특정 비트에 오류가 발생하더라도 복구가 가능하도록 한다. 전자문서의 경우에는 삽입된 Text Watermark 정보를 오류없이 추출이 가능함을 실험으로 확인할 수 있었다.
4-2 종이문서( Hardcopy )
종이문서는 전자문서에서 출력을 통해 생성된 아날로그 문서이다. Text Watermark의 추출은 아날로그 문서에서는 불가능하기 때문에 텍스트 정보에 대한 디지털화가 필요하다. OCR은 아날로그 문서에 포함된 텍스트 정보를 디지털화 할 수 있는 기술이다. 인공지능 기술의 발전으로 OCR 기술도 비약적인 발전을 하고 있으며 본 연구에서는 Google에서 제공하는 Google Vision API (OCR)를 사용하여 스캔된 이미지, 모바일 기기에 의해 촬영된 이미지에 대한 텍스트 정보 추출을 실험하였다.
그림11은 스캔된 이미지에서 텍스트가 시작되는 위치를 찾고, 텍스트들을 선명하게 해주는 과정의 보정 작업을 통하여 그림12와 같이 보정된 이미지를 생성한다. 보정된 이미지를 OCR의 소스 이미지로 사용함으로써 OCR의 성능의 향상을 기대할 수 있다. 그림12의 보정된 이미지를 OCR 엔진을 통해 각 word의 위치 정보를 추출 할 수 있다. 각 word의 위치 정보를 기반으로 Text Watermark 정보를 복원한다. 그림13에서 보이는 바와 같이 전자문서와 마찬가지로 삽입된 Text Watermark 정보를 오류없이 추출이 가능함을 실험으로 확인할 수 있었다.
종이문서 자체가 오염되거나 손상되지 않는다면 스캐너를 통해 굴곡없이 문서 이미지를 획득할 수 있으므로 Text Watermark 추출 성공 가능성이 매우 높다
사람의 손에 의해서 촬영이 이루어 지기 때문에 굴곡없이 문서 이미지를 획득하는 것은 거의 불가능하다. 문서 이미지의 보정을 통해 최대한 굴곡을 없애고 OCR 엔진에서 텍스트 정보를 추출하지만 inter-word space크기가 굴곡에 많은 영향을 받는다. 영향을 받은 한 두 비트의 오류는 반복 삽입된 비트를 통해 보정이 가능하다. 손의 작은 떨림이나 촬영 각도의 작은 편향은 반복적인 삽입에 의해 대부분 보정이 가능함을 확인 할 수 있다.
그림14은 모바일 기기로 촬영된 이미지에서 텍스트가 시작되는 위치를 찾고, 텍스트들을 선명하게 해주는 과정의 보정 작업을 통하여 그림15과 같이 보정된 이미지를 생성한다.
그림15의 보정된 이미지를 보면 그림12의 스캔한 이미지를 보정한 결과에 비해 텍스트의 선명도는 비슷하나, 각 라인 텍스트들의 위치가 고르지 않음을 알 수 있다. 이러한 요소가 결국 OCR 엔진에서 텍스트 정보를 추출함에 있어서 에러를 유발할 가능성이 높다
각 word의 위치 정보를 기반으로 Text Watermark 정보를 복원한다. 그림16와 같이 3개 라인에서 복원된 Text Watermark 정보 값에 1개의 오류가 있음을 알 수 있다. 7bits씩 4번을 반복해서 삽입되었기 때문에 동일 비트를 비교해서 1개의 오류에 대한 보정이 가능하다.
Ⅴ. 결 론
표1은 1페이지로 구성된 110개의 MS-WORD로 작성, inter-word space가 30개 이상 존재하는 문서에 Text Watermark를 삽입한 후, 전자문서, 스캔이미지, 모바일촬영에 의해 추출 성공률에 대한 실험 결과이다.
전자문서의 경우에는 모든 문서에서 정확하게 Text Watermark 값을 추출할 수 있었다. 스캔 이미지를 이용할 경우, 스캔시 문서의 첫 부분과 마지막 부분에서 일부 굴절된 부분이 발견되었으며, 이것이 inter-word space의 크기가 왜곡되어 추출된 원인으로 판단할 수 있다. 반복 삽입 및 추출임에도 불구하고, 동일한 비트 영역에 오류가 발생하여 추출에 실패하였다. 모바일 기기를 이용한 촬영의 경우, 촬영시 발생할 수 있는 손떨림, 그림자, 촬영각도등에 의해 특정 부분이 아닌 전체적으로 고르지 않은 문자 배열로 인하여 스캔 이미지보다 훨씬 더 많은 오류가 발생하였다. 전자문서 혹은 스캔 이미지를 통한 Text Watermark 추출은 현재의 기술로 실제 사용 가능함을 실험을 통해 확인하였다. 모바일 기기의 촬영에 의한 Text Watermark 추출 성공률은 아직 높지 않으나, 최근 AI-OCR 기술의 발전으로 성공률의 향상을 기대할 수 있다.
본 연구에서는 여러 알고리즘들 중에서 inter-word space 크기를 사용하여 MS-WORD에 PDF와 OOXML을 이용하여 Text Watermark를 사용할 수 있는 시스템을 제안하였다. MS-WORD를 통해 각종 문서들이 생성되고 PDF로 변환하여 유통되고 있으며 다양한 운영체제와 웹브라우저에서 별도의 플러그인 설치 없이 PDF 열람을 지원하고 있다.
Text Watermark System은 사용자가 아무런 불편함 없이 전자문서를 웹브라우저에서 열람 및 출력할 수 있도록 하며, 서비스 제공자는 전자문서와 종이문서의 유통으로 인한 저작권 침해 및 무단 배포에 대하여 사후 추적이 가능하도록 한다. 문서에 대한 보안은 온라인과 오프라인으로 구별하여 적용되어져 왔으나, Text Watermark는 온오프라인 동일하게 보안을 적용할 수 있도록 한다.
References
- Young-Won Kim and Il-Seok Oh, “A survey on text watermarking techniques,” Proc. of Honam-Jeju Korea Information Science Society, Vol.14, No.1, pp.34-3, August 2002 (in Korean).
- J.T. Brassil, S. Low, and N.F. Maxemchuk, "Copyright protection for the electronic distribution of text documents," Proceedings of IEEE, Vol.87, No.7, pp.1181-1196, July 1999. [https://doi.org/10.1109/5.771071]
- D. Huang and H. Yan, "Interword distance changes represented by sine waves for watermarking text images," IEEE Trans. Circuits and Systems for Video Technolo, Vol.11, No.12, pp.1237-1245, Dec 2001. [https://doi.org/10.1109/76.974678]
- Mi-Ran Hwang, Hyon-Gon Choo, Jong-Wook Choi,Whoi-Yul Kim “Text Watermarking using Space Coding”, IEIE Vol4 : Signal processing society Vol.25 No.1, pp.117 - 120, June 2002
- Wenjie Guo, Li Yang, Yonggang Lu, Yi Yang, Lian Li, Zongli Liu, "Information Hiding in OOXML Format Data based on the Splitting of Text Elements" 2019 IEEE International, Shenzhen, China, pp.188, July 2019
- Li Yang, Wenjie Guo, Yonggang Lu, Yi Yang, Lian Li, Zongli Liu, "Text Watermarking for OOXML Format Documents Based on Color Transformation" 2019 IEEE International, Shenzhen, China, pp.155, July 2019 [https://doi.org/10.1109/ISI.2019.8823497]
- Microsoft Corporation, Standard ECMA-376 : Office Open XML file formats. 3rd edition, 2011.
- Adobe Pdf reference third edition. Available : https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/pdf_reference_archives/PDFReference.pdf
- Google Cloud Google Vision API(OCR). Available : https://cloud.google.com/vision/docs/ocr?hl=ko
저자소개
1999년 : 경희대학교 컴퓨터공학과 (학사)
2020년 : 고려대학교 정보보호대학원 정보보호학과 (석사)
1999년∼2002년: 대림 I&S 건설IS실
2002년∼현 재: 마크애니 전자문서사업부
※관심분야: 전자문서 생성 및 유통, 증명서 생성 및 발급, 개인정보보호, 디지털저작권(DRM), OCR 등
1978년 : 서울대학교 전기공학과 (학사)
1986년 : 서울대학교 제어계측공학과 (공학석사)
1989년 : 서울대학교 제어계측공학과 (공학박사)
1989년∼2006년: 강원대학교 교수
2006년∼현 재: 고려대학교 정보보호대학원 정보보호학과 교수
※관심분야: 암호화페, 블록체인, 컴퓨터보안, 패턴인식, 가역정보은닉, 머신러닝, 빅데이터 분석등