KR102401229B1 - 텍스트를 암호화 하는 방법 및 이를 구현하는 장치 - Google Patents

텍스트를 암호화 하는 방법 및 이를 구현하는 장치 Download PDF

Info

Publication number
KR102401229B1
KR102401229B1 KR1020200052507A KR20200052507A KR102401229B1 KR 102401229 B1 KR102401229 B1 KR 102401229B1 KR 1020200052507 A KR1020200052507 A KR 1020200052507A KR 20200052507 A KR20200052507 A KR 20200052507A KR 102401229 B1 KR102401229 B1 KR 102401229B1
Authority
KR
South Korea
Prior art keywords
character
text
string
substitution
font
Prior art date
Application number
KR1020200052507A
Other languages
English (en)
Other versions
KR20210134135A (ko
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 KR1020200052507A priority Critical patent/KR102401229B1/ko
Priority to PCT/KR2021/004140 priority patent/WO2021221331A1/ko
Publication of KR20210134135A publication Critical patent/KR20210134135A/ko
Application granted granted Critical
Publication of KR102401229B1 publication Critical patent/KR102401229B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • G09C1/02Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system by using a ciphering code in chart form
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Storage Device Security (AREA)
  • Document Processing Apparatus (AREA)

Abstract

본 발명은 텍스트를 보안하는 방법 및 이를 구현하는 장치에 관한 것으로서, 본 발명의 일 실시예에 의한 암호화 장치는 암호화 방법에 따라 원문의 문자 또는 문자열을 이와 상이한 문자 또는 문자열로 재현되도록 지시하는 암호 폰트와 암호화 텍스트를 생성한다.

Description

텍스트를 암호화 하는 방법 및 이를 구현하는 장치{METHOD OF SECURING TEXT AND DEVICE IMPLEMENTING THEREOF}
본 발명은 텍스트를 보안하는 방법 및 이를 구현하는 장치에 관한 것으로서, 더욱 상세하게는 다중 치환되는 보안 폰트를 기반으로 텍스트를 보안하는 방법과 이를 구현하는 장치에 관한 것이다.
현재 컴퓨팅 시스템 및 네트워크 시스템의 급속한 발달로 인하여 다양하게 작성된 텍스트 문서들이 저장된 장소 또는 전송 중에 원하지 않는 사람들에게 쉽게 노출되고 있다. 이러한 문제를 해결하기 위하여 다양한 방법의 보안 기술들이 개발되고 있다. 그런데 이러한 문서 보안 방법들은 사용자 인증 등에 의한 보안에 편중되어 있으며, 사용자 정보가 노출될 경우에는 무방비 상태로 있게 된다.
또한, 텍스트 내의 문자를 1:1로 치환하는 방식은 문자들의 등장 횟수에 따라 쉽게 유추가 가능하다는 문제가 있어왔다. 따라서 새로운 방식으로 텍스트를 보안하는 기술의 개발이 필요하다.
본 발명은 원문 텍스트를 암호화하되 이의 복원은 암호화된 폰트를 적용하여 재현함으로써, 문서의 보안성을 높이는 방법 및 장치를 구현하고자 한다.
본 발명은 하나의 문서 내에 다양한 암호화 방법을 적용하여 암호화 수준을 높이면서도 이를 복원하는데 있어 컴퓨팅 파워를 줄이는 방법 및 장치를 구현하고자 한다.
본 발명이 해결하고자 하는 과제는 이상에서 언급한 과제들로 제한되지 않으며, 여기서 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 실시예에 의한 암호화 장치는 폰트와 원문 텍스트와 상기 텍스트를 암호화하는 암호화 방법을 지시하는 식별정보를 입력받아서 상기 원문 텍스트의 하나 이상의 문자를 상기 식별 정보가 지시하는 암호화 방법에 따라 치환될 문자 코드 또는 문자열 코드에 대응하는 변환 코드를 생성하는 변환 코드 생성기를 포함한다.
본 발명의 일 실시예에 의한 암호화 장치는 변환 코드에 대응하는 치환 규칙을 포함하는 치환 정보세트를 생성하는 치환 규칙 생성기를 포함한다.
본 발명의 일 실시예에 의한 암호화 장치는 치환 규칙에 따라 상기 원문 텍스트의 하나 이상의 문자 코드를 변환하여 암호화 텍스트를 생성하는 텍스트 변환기를 포함한다.
본 발명의 일 실시예에 의한 암호화 장치는 치환 정보세트에 대응하여 상기 폰트의 문자 코드 문자-도안 매핑 정보(cmap)와 변형 및 합자 정보(GSUB) 또는 도안 정보(glyf)를 변환하여 암호화하는 암호 폰트 생성기를 포함한다.
본 발명의 일 실시예에 의한 텍스트를 암호화하는 방법은 암호화 장치의 변환 코드 생성기가 폰트와 원문 텍스트와 상기 텍스트를 암호화하는 암호화 방법을 지시하는 식별정보를 입력받아서 상기 원문 텍스트의 하나 이상의 문자를 상기 식별 정보가 지시하는 암호화 방법에 따라 치환될 문자 코드 또는 문자열 코드에 대응하는 변환 코드를 생성하는 단계를 포함한다.
본 발명의 일 실시예에 의한 텍스트를 암호화하는 방법은 암호화 장치의 치환 규칙 생성기가 상기 변환 코드에 대응하는 치환 규칙을 포함하는 치환 정보세트를 생성하는 단계를 포함한다.
본 발명의 일 실시예에 의한 텍스트를 암호화하는 방법은 암호화 장치의 텍스트 변환기가 상기 치환 규칙에 따라 상기 원문 텍스트의 하나 이상의 문자 코드를 변환하여 암호화 텍스트를 생성하는 단계를 포함한다.
본 발명의 일 실시예에 의한 텍스트를 암호화하는 방법은 암호화 장치의 암호 폰트 생성기가 상기 치환 정보세트에 대응하여 상기 폰트의 문자 코드 문자-도안 매핑 정보(cmap)와 변형 및 합자 정보(GSUB) 또는 도안 정보(glyf)를 변환하여 암호화하는 단계를 포함한다.
본 발명의 일 실시예에 의한 암호화 장치는 폰트와 원문 텍스트를 입력받는 제어기와 상기 텍스트를 암호화하는데 필요한 변환 코드 및 치환 규칙 저장소에 저장된 치환 정보 세트를 이용하여 상기 원문 텍스트의 하나 이상의 문자 코드를 변환하여 암호화 텍스트를 생성하는 텍스트 변환기와, 상기 치환 정보세트에 대응하여 상기 폰트의 문자 코드 문자-도안 매핑 정보(cmap)와 변형 및 합자 정보(GSUB) 또는 도안 정보(glyf)를 변환하여 암호화한 암호 폰트가 저장된 암호화 폰트 저장소를 포함한다.
본 발명의 일 실시예에 의한 암호화 텍스트를 복원하는 방법은 복원 장치가 암호화 텍스트 및 상기 암호화 텍스트에 대응하는 암호화 폰트를 획득하는 단계와 상기 암호화 폰트를 상기 암호화 텍스트에 적용하여 상기 암호화 폰트가 적용되기 전의 상기 암호화 텍스트의 제1문자와 상이하게 표시되는 제2문자를 포함하는 텍스트를 표시하는 단계를 포함한다.
본 발명의 실시예를 적용할 경우, 문자 코드를 교환 또는 치환하는 규칙을 다양화시켜 암호화 수준을 높인 텍스트를 생성할 수 있다.
본 발명의 실시예를 적용할 경우, 문자간 다중 치환, 문자-문자열간, 문자열-문자간, 문자열-문자열 간의 암호화를 가능하게 한다.
본 발명의 실시예를 적용할 경우, 별도의 복호화 과정 없이 암호화된 텍스트에 암호 폰트를 적용하여 원문을 재현하면서도 암호화된 텍스트를 보호할 수 있도록 한다.
본 발명이 제공하는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 여기서 언급되지 않은 또 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 의한 텍스트를 암호화 및 복원하는 과정을 보여준다.
도 2는 본 발명의 일 실시예에 의한 텍스트 보안을 위한 다중 치환의 일 실시예인 1:N 다중 매핑 과정을 보여준다.
도 3은 본 발명의 일 실시예에 의한 도 2의 문자를 치환하는 방식의 세부 메커니즘을 보여준다.
도 4는 본 발명의 일 실시예에 의한 1:1 치환 및 문자간 다중 치환을 순차적으로 수행하는 과정을 보여준다.
도 5는 본 발명의 일 실시예에 의한 하나의 문자를 다수의 문자가 포함된 문자열로 변환하는 과정을 보여준다.
도 6은 본 발명의 일 실시예에 의한 하나의 문자열을 하나의 문자로 변환하는 과정을 보여준다.
도 7은 본 발명의 일 실시예에 의한 하나의 문자열을 또 다른 하나의 문자열 변환하는 과정을 보여준다.
도 8은 본 발명의 일 실시예에 의한 암호화 방법에서 치환을 수행하는데 필요한 정보세트(Information Set)을 보여준다.
도 9는 본 발명의 일 실시예에 의한 암호화 장치의 구성을 보여준다.
도 10은 본 발명의 일 실시예에 의한 보안 폰트의 암호화 과정을 보여준다.
도 11 내지 도 14는 본 발명의 다양한 암호화 방식에 따른 암호화 및 복원의 예시를 보여준다.
도 15는 본 발명의 일 실시예에 의한 암호화된 텍스트를 다시 복원하여 표시하는 과정을 보여준다.
도 16은 본 발명의 일 실시예에 의한 암호문을 복원하는 과정을 보여준다.
도 17은 본 발명의 다른 실시예에 의한 암호문을 복원하는 과정을 보여준다.
도 18은 본 발명의 일 실시예에 의한 암호화 시스템의 구성을 보여준다.
도 19 및 도 20은 본 발명의 다른 실시예에 의한 암호화 시스템의 구성을 보여준다.
본 명세서에서 제시하는 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 본 명세서에 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성요소를 지칭한다.
본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 동일 또는 유사한 구성요소에 대해서는 동일한 참조 부호를 붙이도록 한다. 또한, 본 발명의 일부 실시예들을 예시적인 도면을 참조하여 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가질 수 있다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략할 수 있다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질, 차례, 순서 또는 개수 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 다른 구성 요소가 "개재"되거나, 각 구성 요소가 다른 구성 요소를 통해 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
도 1은 본 발명의 일 실시예에 의한 텍스트를 암호화 및 복원하는 과정을 보여주는 도면이다. 텍스트를 암호화하거나 복원하는 장치는 컴퓨터, 노트북, 스마트폰, 태블릿 등 다양한 장치를 포함한다.
암호화 장치(110)는 텍스트를 암호화한 결과물을 생성하여(S1) 서버(300) 등에 업로드할 수 있다(S2). 그리고 서버에 업로드된 암호화된 텍스트를 복원 장치(120)가 요청하면 복원 장치(120)로 암호화된 텍스트가 다운로드 된다(S3). 이 과정에서 복원 장치(120)는 텍스트를 복원하는데 필요한 정보, 예를 들어 폰트를 다운로드 할 수 있다.
또는, 암호화 장치(110)는 텍스트를 다중 치환하여 암호화한 결과물을 복원 장치(120)에게 직접 전송할 수 있다(S4). 이는 복원 장치(120)와 암호화 장치(110)가 1:1로 통신이 가능한 실시예를 포함한다.
복원 장치(120)는 암호화된 텍스트에 폰트를 적용하여 복원화를 수행한다(S5). 그 결과 복원 장치(120)는 가독 가능한 텍스트를 표시할 수 있다.
텍스트 보안을 위한 다중 치환 방식은 1:N 다중 매핑, 문자:문자열 다중 매핑, 문자열:문자 다중 매핑 등을 포함한다.
1:N 다중 매핑이란, 텍스트에 포함된 특정 문자, 예를 들어 암호화되기 이전의 문자인 출발 문자 "A"라는 문자를 암호화하는 도착문자가 N개(N > 1)임을 의미한다.
따라서, "A"라는 출발 문자를 암호화하는 도착 문자는 "우", "도", "H", 또는 동일하게 "A" 등으로 다중 매핑을 할 수 있다. 따라서, 텍스트 내의 "A"는 다중 치환될 경우 "우", "도", "H" 또는 "A"로 다중 치환될 수 있다.
따라서, 텍스트 문자 "AAA" 는 "도우H" 또는 "H우도" 또는 "A도H" 등으로 치환될 수 있다.
문자:문자열 다중 매핑은 하나의 출발문자에 대해 도착문자열로 매핑하는 방식이다. 예를 들어, 암호화 장치(110)는 하나의 출발문자 "A"에 대해 "FDSADS043219231jfdakjdsf"라는 도착문자열로 치환할 수 있다. 즉, 하나의 출발 문자에 대응하여 둘 이상의 문자들로 구성된 도착문자열이 생성된다.
문자열:문자 다중 매핑은 문자 다수로 구성된 출발문자열을 하나의 도착문자로 매핑하는 것이다. 예를 들어 암호화 장치(110)는 "반갑습니다"라는 출발문자열을 "K"라는 도착문자로 매핑한다.
도 2는 본 발명의 일 실시예에 의한 텍스트 보안을 위한 다중 치환의 일 실시예인 1:N 다중 매핑 과정을 보여준다.
1:N 다중 매핑은 하나의 문자에 대해 둘 이상의 문자가 매핑되어 암호화가 되는 실시예이다. 도 2의 11이 지시하는 바와 같은 매핑룰(mapping rule)은 하나의 문자를 다수의 문자로 매핑되는 치환 규칙을 보여준다.
11에 도시된 바와 같이, 암호화 장치(110)는 매핑룰 또는 치환 규칙을 적용하여 "e"문자를 상황에 따라 "다" 로 암호화하거나 "트" 로 암호화할 수 있다. 상황에 따른다는 것은 랜덤하게 또는 이전에 문장 내에서 등장 횟수 또는 암호화된 문자의 등장 횟수 등에 따라 암호화 장치(110)가 선택할 수 있음을 의미한다.
그리고, 암호화 장치(110)는 별도의 변환 없이 "e"를 "e"로 그대로 표현되도록 다중화 할 수 있다.
그 외 암호화 장치(110)는 "o" 역시 "습" 또는 "니" 중 어느 하나로 암호화할 수 있다. 마찬가지로 암호화 장치(110)는 "l"을 "다" 또는 "H"로 암호화 할 수 있다.
또한, 암호화 장치(110)는 암호화하려는 문장 내에서 반복하여 등장하는 문자들에 대해서만 1:N 다중 매핑을 적용할 수 있다. 예를 들어 암호화하려는 문장 내에서 한번씩 등장하는 문자에 대해서는 1:1의 매핑을 수행하고, 두 번 이상 등장하는 문자에 대해서만 다중 매핑을 수행할 수 있다.
이러한 실시예를 살펴본다. 도 2에서 모든 문자에 대해 암호화 장치(110)는 매핑룰을 유지할 수 있다. 특히 암호화 장치(110)는 원문(12)에서 반복되는 문자에 대해 1:N 매핑을 수행할 수 있다.
그 결과 암호화 장치(110)는 원문(12)을 암호문(13)으로 암호화할 수 있다.
일 실시예로 암호화 장치(110)는 원문(12)의 영어 문자인 "e"를 매핑룰(11)에 따라 각각 {e, 트, 다} 중 어느 하나의 문자로 매핑한다.
또한, 암호화 장치(110)는 원문(12)의 영어 문자인 "o"를 매핑룰(11)에 따라 각각 {습, 니} 중 어느 하나의 문자로 매핑한다.
또한, 암호화 장치(110)는 원문(12)의 영어 문자인 "l"를 매핑룰(11)에 따라 각각 {다, H} 중 어느 하나의 문자로 매핑한다.
또한, 매핑룰(11)에 포함되지 않는 문자들은 1:1 매핑룰에 따라 <반/갑/보/안/폰/입> 은 각각 따라 <t/n/r/u/c/S>와 서로 1:1 교환 가능하게 암호화된다.
한편, 원문(12)에 1회 등장하지만, 매핑룰(11)에서 암호화가 되는 문자로 등장하는 <습/ H>는 매핑룰(11)을 역으로 적용하여, 각각 <o/ l> 로 매핑된다.
또한, "니"는 "F"로 1:1 매핑되면서 또한 매핑룰(11)을 역으로 적용하여 "o"로도 매핑될 수 있다.
도 2는 하나의 문자를 다수의 문자 중 선택적으로 치환하는 방식이다. 도 3은 본 발명의 일 실시예에 의한 도 2의 문자를 치환하는 방식의 세부 메커니즘을 보여준다.
암호화 장치(110)는 TTF(True Type Font) 또는 OTF(Open Type Font) 중 어느 하나 이상을 사용할 수 있다. 도 3에서 21은 TTF 폰트 구조를, 22는 OTF 폰트 구조를 보여준다. 1:N 매핑은 문자끼리 1:1을 치환하고 문자간 다중 치환을 하는 방식을 일 실시예로 한다. 보다 상세히, 1:N 매핑은 S25와 같이 문자 코드에 대한 문자 도안 정보를 변경하는 방식을 포함한다. 또한, 1:N 매핑은 S26과 같이 문자 도안에 대한 다중 변형 정보를 추가한다.
S25를 상세히 살펴본다. "A"라는 문자의 유니코드(unicode)는 0x0041이다. 그리고 "A"를 화면 상에 표시하는 gid(glyph id)는 36이다. 여기서 S25와 같이 cmap의 정보(즉, 문자 코드 문자-도안 매핑 정보)를 변경할 경우, 유니코드는 그대로 유지하며 그것의 표시되는 gid만을 43으로 변경한 결과 "A"는 "H"로 표시된다. 즉, S25는 문자 코드(유니코드)에 대한 문자 도안 정보인 cmap을 변경하여 암호화를 수행할 수 있다.
S26을 상세히 살펴본다. "A"라는 문자의 GSUB(즉, 변형 및 합자 정보)에 정보를 별도로 추가한다. 그 결과 gid가 45인 "J"의 도안이 문자 도안에 대한 다중 변형 정보로 추가된다. 즉, S26은 문자 도안에 대한 다중 변형 정보를 GSUB에 추가하여 암호화를 수행할 수 있다.
도 4는 본 발명의 일 실시예에 의한 1:1 치환 및 문자간 다중 치환을 순차적으로 수행하는 과정을 보여준다.
도 2에서 살펴본 바와 같이 원문(12)과 암호문(13) 사이에 바로 매핑이 이루어질 수도 있고, 원문(12)과 암호문(13)사이의 중간암호문(15)이 배치될 수 있다. 중간 암호문(15)는 S31 과정에서 원문(12)의 각 문자에 1:1로 치환을 한 결과이다. 예를 들어, "e" 와 "다" 는 상호 치환이 되는 문자들이다(S31). S31f에 도시된 바와 같이, "e"의 gid(glyph id) 72는 "다"를 표시하도록 gid가 15345 로 변경되었으며, 마찬가지로 "다"를 표시하던 gid 역시 15345 에서 "e"를 표시하는 72로 변경되었다. 이는 "e"와 "다"가 서로 1:1로 치환되는 것을 의미한다.
그 결과 중간 암호문(15)에서는 1:1 치환을 수행하므로 "e" 라는 글자는 "다"로 표시되며, "다"라는 글자는 "e"로 표시된다.
이때, 중간 암호문(15)에 "다" 라는 글자가 3회 반복해서 발생하였으므로, 이를 다중 치환으로 적용할 수 있다.
그 결과 "다"라는 글자는 다시 "트" 또는 "e" 라는 글자로 치환되며 이 과정은 S32b/S32c/S32f에 제시되어 있다. 그 결과, 11이 지시하는 바와 같이 "e"라는 글자는 다/트/e 중 어느 하나로 1:N 매핑 과정에 따라 치환될 수 있다.
도 2 내지 도 4에서 살펴본 실시예와 같이, 하나의 문자를 하나 이상의 문자로 변환하는 1:N 매핑에 의한 암호화 방법을 적용할 경우, 원문의 문장 내에 반복하여 등장하는 문자에 대해 서로 다른 문자로 변환할 수 있다. 예를 들면, 1:1 매핑만을 수행할 경우, "기러기" 라는 단어를 암호화할 경우, 첫문자 "기"는 "a"로 변환하고, 두번째 문자 "러"는 "3"으로 변환하였다면 마지막 문자 "기"는 "a"로 변환되어 "a3a" 형태로 변환되게 된다. "a" 문자가 반복 표시되므로 "a" 문자가 어떤 문자로부터 치환되었음을 유추하는 것이 용이하다. 반면, 세번째 문자 "기"를 "k" 로 변환하여, "a3k"로 암호화되었다면 "a"와 "k" 문자가 사실은 같은 문자의 변환인 것을 외부에서 쉽게 유추하기 어려우며 암호문의 보안성을 높일 수 있다.
다음으로, 하나의 문자를 문자열로 변환하는 치환에 대해 살펴본다. 이는 하나의 문자를 문자열로 치환하는 실시예이다. 이는 도 2 내지 4의 치환과 다른데, 도 2 내지 도 4의 1:N 치환은 원문의 글자1개가 암호문의 글자 1개로 치환되지만, 동일한 원문의 글자 1개에 대해 다양한 암호문의 글자가 제시될 수 있는 실시예이다.
문자를 문자열로 치환하는 실시예는 하나의 문자에 대해 둘 이상의 글자로 이루어진 문자열이 매핑되어 암호문에 포함되는 것을 포함한다.
도 5는 본 발명의 일 실시예에 의한 하나의 문자를 다수의 문자가 포함된 문자열로 변환하는 과정을 보여준다. 하나의 문자인 "보", "안", "폰", "트" 각각에 대해 35, 36, 37, 38이 지시하는 바와 같이 문자열이 매핑된다. 따라서, 원문이 "보안폰트"일 때, 암호문은 35, 36, 37, 38의 문자열들을 모두 하나로 합한 결과가 된다(S39).
암호화 방식의 일 실시예로 문자 코드의 해시함수값을 암호문자열로 사용할 수 있다. 이 경우, 암호문을 해시함수값으로만 구성하여 별도의 복호화 과정 없이 원문 텍스트 내용이 복원될 수 있다.
도 5에서 살펴본 하나의 문자를 하나의 문자열로 변환하는 암호화 방법은 문자 단위로 변형을 가하여 원문을 유추하기가 더욱 어렵게 만드는데 사용할 수 있다. 예를 들어, "한"이라는 문자에 대해 "hello"라는 문자열로 변형 암호화 한다면, 외부의 사용자나 해킹 프로그램이 "hello" 문자열을 통해 "한"이라는 문자를 유추하는 것은 매우 어렵다. 또한, 암호화 장치(110)는 "한" 문자에 대해 해시 함수를 적용한 해시함수값 "eddea29aaace3b9f6c961f82be64b57d7d0e3a7a" 으로 변환할 수도 있다. 이는 복합 변환에 해당하므로 허락받지 않은 사용자가 이를 복원하는 것은 쉽지 않음을 의미한다. 이와 같이 하나의 문자를 문자열로 변환하게 되면 매우 복잡한 암호문을 생성해 낼 수 있다. 그리고, 무엇보다 중요한 것인 이 암호문을 복호화하기 위해 별도의 로직을 수신 장치에서 추가로 구현하지 않아도 된다는 점이다. 폰트 내부에서 암호문에 대한 원문 재현을 위한 과정이 수행되므로, 복호화 로직과 변환 규칙을 외부로 전달할 필요가 없다.
도 6은 본 발명의 일 실시예에 의한 하나의 문자열을 하나의 문자로 변환하는 과정을 보여준다. 도 5와 반대로, 원문의 문자열을 하나의 문자로 암호화할 수 있다. 도 6은 원문의 문자열이 하나의 문자로 변환되는 과정을 보여준다. 다수의 문자에 대해 하나의 문자 코드가 매핑되는 방식이다.
도 6의 41은 "반갑습니다. 보안폰트 2 입니다!"라는 문자열을 "i" 라는 글자로 변환하는 예시를 보여준다. 그리고 42는 "Hello, SecureFont 2!" 라는 문자열을 "h"라는 글자로 변환하는 예시를 보여준다.
그 결과, 원문이 " 반갑습니다. 보안폰트 2 입니다! Hello, SecureFont 2!"는 41 및 42를 반영하여 "ih" 라는 암호문으로 변환된다. 이러한 과정은 43에 지시되어 있다. 도 6과 같이 하나의 문자열을 하나의 문자로 변환하는 암호화 방법은 원문을 압축하여 암호화하는 효과를 줄 수 있다. 도 6과 같이 하나의 문자(h, i)가 어떤 문장을 대체하게 되므로, 외부의 사용자나 해킹 프로그램이 원문을 복원할 수 없다.
특히, 원문 전체에 대해서 문자간의 단순 변환(예를 들어, 도 4의 S31)을 적용한 다음 중요한 단어나 문장에 대해서 하나의 문자로 압축하여 변환한다면, 주요 문구에 대해 더욱 안전하게 보호할 수 있다. 또한, 다수의 문자열이 하나 혹은 그 이상의 문자로 변환되므로, 몇 개의 문자만으로 구성된 암호문이 여러 문장에 대응할 수 있다.
또한, 도 2 내지 도 4에서 살펴본 다중 변환을 수행하고, 반복되는 단어나 중요 단어나 문장에 대해 하나의 문자로 압축하여 변환할 경우, 압축 효과와 암호화 효과를 동시에 획득할 수 있다.
도 7은 본 발명의 일 실시예에 의한 하나의 문자열을 또 다른 하나의 문자열 변환하는 과정을 보여준다. m개의 문자로 구성된 문자열을 n개의 문자로 구성된 문자열로 매핑한다. 이때 m과 n은 같은 수가 될 수도 있고 다른 수가 될 수도 있으며, m, n이 다른 수일 경우, m > n 또는 m < n 중 어느 하나가 될 수 있다. 이는 하나의 문장(문자열)을 전혀 다른 문자들로 구성된 문장(문자열)로 치환하는 암호화 방식이다.
도 7의 45는 "반갑습니다. 보안폰트 2 입니다!"라는 문자열을 "fr8759" 라는 문자열로 변환하는 예시를 보여준다. 그리고 46는 "Hello, SecureFont 2!" 라는 문자열을 "84002a7"이라는 문자열로 변환하는 예시를 보여준다.
그 결과, 원문이 " 반갑습니다. 보안폰트 2 입니다! Hello, SecureFont 2!"는 45 및 46을 반영하여 " fr875984002a7" 라는 암호문으로 변환된다. 이러한 과정은 47에 지시되어 있다.
하나의 문자열을 다른 문자열로 변환 암호화하기 위해 다양한 방식의 변환 규칙을 적용할 수 있다. 단어와 단어간의 변환, 단어 또는 어절과 어절간의 변환, 문장과 단어간의 변환, 문장과 문장간의 변환 등 다양한 변환 규칙을 적용할 수 있다.
예를 들면, 단어와 단어간의 변환을 이용한 암호화의 경우, "한글" 이라는 단어를 "han"이라는 길이가 서로 다른 임의의 단어로 변환할 수 있고, 난독화된 "트갑구" 라는 단어로 변환할 수도 있으며, "한글"의 해시함수값 "0xde510ee18f9ec63431a640b3fe6823ca9013da91"을 변환 단어로 지정할 수도 있다.
해시함수값은 각 문자 또는 문자열에 대해 유일한 값을 갖기 때문에 해시함수값으로 원본 문자열을 변환할 경우, 외부의 사용자나 해킹 프로그램이 암호문에서 원본 문자열을 복원할 수 없다. 해시함수의 이러한 특징으로 인해 비밀번호 암호화 등에 많이 사용되고 있다. 이러한 해시함수의 강력한 암호화 기능을 활용하여 변환 문자열로 지정할 수 있기 때문에 매우 강력한 암호화 기능을 제공한다.
문자열의 변환은 조사와 어미가 붙은 형태인 "한글은" 이라는 문자열에 대해서 다른 문자열로 변환하는 것 역시 가능하다. "한글은" 이라는 문자열을 "hangul" 이라는 문자열로 변환할 수 있고, 난독화된 문자열 "양필?별▶?" 으로 변환하거나 해시함수값으로 변환하는 것 역시 가능하다.
문자열의 변환은 하나의 문장 전체에 대해서 다른 문자열로 변환하는 것 역시 가능하다. 하나의 문장을 하나의 단어, 조사와 어미가 붙은 어절 또는 하나의 문장으로 변환하는 것이 가능하다.
하나의 원본 문서를 문자열 변환 방법으로 암호화할 경우, 원본 문서에 있는 단어와 어절, 문장에 대해 변환할 문장을 지정할 수 있다. 원본 문서에 대한 암호화 변환은 변환 키값에 의해 유일한 규칙이 적용되도록 지정할 수 있다. 동일한 문서에 대해서 변환키값이 변경되면 다른 문자열로 변환되도록 지정할 수 있다.
예를 들면, 문서의 모든 어절 단위로 문서 내의 가장 앞의 문자열은 가장 뒤의 문자열로 변환하고, 마지막 문자열은 두번째 문자열로 변환하도록 지정하는 방식으로 변환하였을 경우, 변환키 값에 따라 첫 문자열과 교환되는 뒤쪽의 문자열 순번을 변경할 수 있다. 또 다른 방법으로 원문의 문자열을 원문에 포함된 단어가 아닌 임의의 단어나 다른 문서의 문자열로 변환할 수도 있다. 예를 들면 원문의 문자열을 성경책의 문자열로 변환 암호화하도록 지정할 수 있다. 변환키값에 따라 성경책의 변환 대상 문자열의 순서를 변경하여 지정할 수 있다. 원문을 사전 기반으로 변환하는 것 역시 가능하다. 원문의 각 문자열을 사전의 낱말에 대응하도록 지정할 수 있다. 지정되는 낱말의 순서는 변환키값으로 조정할 수 있다. 이와 같이 문자열간의 변환은 매우 다양한 방법을 암호화에 사용할 수 있다.
하나의 암호화 폰트 파일(암호 폰트)에 대해 문자열 변환 암호화 방식을 지정하는 것도 가능하다. 이 경우, 원문의 문자열을 암호화할 때 마다 암호화된 문서에 대응되는 폰트 파일을 생성할 필요 없이 미리 만들어 놓은 암호화 폰트 파일을 재사용하는 것이 가능하다. 폰트 파일별로 문자열 변환 암호화 방법을 지정하기 위해서는 변환할 문자열을 미리 지정하여야 한다.
변환할 원본 문자열은 각 언어별로 사용 빈도에 따라 단어를 지정할 수 있다. 예를 들면, 한글문자에 대해서는 국어연구원에서 만든 한국어 학습용 어휘에 대해 변환할 문자열을 지정할 수 있다. 영어문자에 대해서는 중고교의 필수 어휘에 대해 변환할 문자열을 지정할 수 있다. 이 또한 원본 문자열로 지정될 단어의 수는 사용 빈도와 필수 어휘 등의 순위에 따라 그 수량을 조절할 수 있다. 대응할 문자열은 문서별 암호화에서 사용했던 것과 동일한 방식으로 지정가능하다. 성경책이나 사전과 같이 특정한 문서 내의 문자열로 변환하거나 해시함수값으로 변환하는 등 다양한 방법이 가능하다.
문자열 변환 암호화 방식과 문자간의 단순교환을 통한 난독화 암호화 방식을 혼용하여 사용할 수도 있다. 변환된 암호문에 난독화 암호화 방식을 추가 적용하여 암호문 단어를 읽을 수 없는 텍스트 형태로 변환 시킬 수 있다. 예를 들면 "반갑습니다. 보안폰트2 입니다!" 문자열을 "fr8759" 문자열로 변환하였다면, 이 변환 문자열에 대해 난독화 암호화 방식을 적용하여 "q}CB@D" 와 같이 읽을 수 없는 텍스트로 변환할 수 있다.
하나의 문자열을 다른 하나의 문자열로 변환 암호화 방법은 하나의 문자열을 다른 하나의 문자열로 직접 변환하는 방법과 하나의 문자열을 중간 단계의 대응 문자로 변환하고 중간 단계의 대응 문자를 다시 다른 문자열로 재 변환하는 단계를 가진 방법으로 구성하는 것도 가능하다.
암호문 "fr87" 문자열에 대해 "k" 문자가 대응되도록 중간 변환하고, "k"문자에 대해 "반갑습니다." 문자열로 재 변환하도록 처리한다면, "fr87" 암호 문자열이 "반갑습니다"의 원문을 재현하는 것과 동일한 결과를 만들어 낼 수 있다. 이러한 중간 단계는 폰트 내부에서 암호화 과정 시에 처리되는 것으로 원문과 암호문의 문자열에는 영향을 주지는 않는다.
또한, 도 2 내지 도 7의 암호화 방법들을 혼합하여 암호화를 수행할 수 있다. 예를 들어, 문자간의 변환, 문자간의 다중 변환, 문자와 문자열간의 변환, 문자열간의 변환 등의 방법을 혼합하여 사용하면 더욱 강력한 암호문을 만들어 낼 수 있다. 이 혼합방법을 사용할 때도 역시, 별도의 복호화를 위한 로직이나 변환 규칙을 외부에 전달할 필요 없이 암호문과 폰트만으로 원문을 재현하여 표시할 수 있다. 또한, 암호화 장치(110)는 암호화방식을 혼용하여 해독이 어려운 암호문을 산출할 수 있다.
전술한 실시예를 살펴보면, 본 발명의 일 실시예에 의한 암호화 장치는 암호화 방법에 따라 원문의 문자 또는 문자열을 이와 상이한 문자 또는 문자열로 재현되도록 지시하는 암호 폰트와 암호화 텍스트를 생성한다.
도 8은 본 발명의 일 실시예에 의한 암호화 방법에서 치환을 수행하는데 필요한 정보세트(Information Set)을 보여준다. 도 2 내지 도 7에서 살펴본 방법들에 대응하는 정보 세트를 살펴본다. 정보세트는 정보들의 집합을 의미하며, 정보쌍(Information Pair), 정보 그룹(Information Group) 등으로 지칭될 수 있다.
원본문자 및 원본문자열은 원본 텍스트에 포함된 것으로, 암호화장치(110)에 의해 변환되는 대상을 지칭한다. 치환문자 및 치환문자열은 암호화장치(110)에 의해 변환된 결과인 대상을 지칭한다. 치환 조건은 다중 치환에서의 치환 조건을 지칭한다. 중간 치환 조건은 문자열 간에 치환을 위해 특정한 문자열을 하나의 문자로 치환하고, 치환한 결과를 다시 재치환하는 조건을 포함할 수 있다.
도 8에 도시된 바와 같이, 암호화장치(110)는 문자간 치환 정보세트(51), 문자간 다중 치환 정보세트(52), 문자-문자열간 치환 정보세트(53), 문자열-문자간 치환 정보세트(54), 문자열간 정보세트가 혼합된 치환 정보세트(55)를 생성할 수 있다.
도 8의 정보 세트(51~55)는 암호화 장치(110)가 생성하는 정보들이다.
문자간 치환 정보세트(51)는 원본 문자와 이를 치환하는 치환 문자로 구성된다. 이는 1:1 치환이므로 별도의 치환 조건이 없다.
문자간 다중 치환 정보세트(52)는 원본 문자와 이를 치환하는 치환 문자, 및 치환 조건으로 구성된다. 앞서 도 4에서 살펴본 바와 같이 "e"라는 문자가 "다/트/e" 중 어느 하나로 치환될 경우에 치환 조건을 포함할 수 있다.
문자-문자열간 치환 정보세트(53)는 원본 문자와 이를 치환하는 치환 문자열로 구성된다. 문자열-문자간 치환 정보세트(54)는 원본 문자열과 이를 치환하는 치환 문자로 구성된다.
문자열간 정보세트가 혼합된 치환 정보세트(55)는 원본 문자열과 이를 치환하는 치환 문자열 및 중간 치환 조건으로 구성된다. 중간 치환 조건은 원본 문자열을 치환 문자열로 변경하는 과정에서의 중간 과정에 대한 조건을 포함한다. 일 실시예로, "반갑습니다" 문자열을 "f24a37009b415b" 문자열 또는 "morning" 로 치환할 수 있다. 이때, 대상 문자열에는 원본 문자열에 포함된 문자가 포함될 수 있다. 따라서, 문자열간의 치환이 실행되기 위해 중간 과정이 필요할 수 있다. "반갑습니다" 문자열을 "f24a37009b415b" 문자열로 치환하기 위해 "f24a37009b415b" 문자열을 "B" 문자로 1차 치환하고 "B" 문자를 다시 "반갑습니다" 문자열로 재치환되도록 지정할 수 있다. 이때 중간 치환 조건이 포함된다.
이하, 암호화 장치의 세부 구성과 암호화 과정에 대해 보다 상세히 살펴본다.
도 9는 본 발명의 일 실시예에 의한 암호화 장치의 구성을 보여준다. 암호화 장치(110)는 노트북, 휴대폰, 태블릿 등 하나의 장치에서 구현될 수 있다. 또는 암호화 장치(110)는 둘 이상의 컴퓨팅 장치에서 협업으로 암호화를 수행할 수 있다. 이 경우, 암호화 장치(110)는 클라이언트와 서버로 구성된 시스템을 지칭할 수 있다.
암호화 장치(110)는 사용자가 입력하거나 파일로 제공하는 원본 텍스트와 사용자가 선택한 폰트를 입력 또는 선택받아, 최종적으로 암호화된 텍스트 및 암호환된 폰트를 생성한다.
변환 코드 생성기(111)는 치환 암호화 내부 규칙을 결정하는 변환 코드를 생성한다. 변환 코드 생성기(111)는 사용자 정보와 자동발생 규칙 등을 이용하여 유일한 코드 값을 생성한다.
치환 규칙 생성기(112)는 치환 규칙을 생성한다. 이때, 치환 규칙 생성기(112)는 내부적으로 도 2 내지 도 7에서 설명된 각각의 치환 방식에 대응하는 "문자간 1:1 치환 규칙 생성기", "문자간 다중 치환 규칙 생성기", "문자-문자열간 치환 규칙 생성기", "문자열-문자간 치환 규칙 생성기", "문자열간 치환 규칙 생성기", "혼합 치환 규칙 생성기" 그리고 "치환 규칙 검사기"를 하위 구성요소로 포함할 수 있다. 또한, 치환 규칙 생성기(112)는 치환 규칙을 저장하는 "치환규칙 저장소"를 더 포함할 수 있다. 또는 "치환규칙 저장소"는 치환규칙 생성기(112)와 별도로 구성될 수 있다. 물론, 이들 하위 구성 요소가 제공하는 기능을 하나의 소프트웨어로 구성하여 치환 규칙 생성기(112)가 각각의 기능을 모두 제공할 수 있다.
텍스트 변환기(113)는 치환 규칙 생성기(112)에서 생성된 치환 정보 세트들(도 8의 51 내지 55)을 이용하여 원본 텍스트의 문자코드를 변환하여 암호화한다.
암호폰트 생성기(114)는 폰트를 변환하고 암호화한다. 암호폰트 생성기(114)는 내부적으로 도 2 내지 도 7에서 설명된 각각의 치환 방식을 지원하는 "문자간 1:1 치환 cmap 생성기", "문자간 다중 치환 GSUB 생성기", "문자-문자열간 치환 GSUB 생성기", "문자열-문자간 치환 GSUB 생성기", "문자열간 치환 GSUB 생성기", "혼한 치환 GSUB 생성기" 그리고 "폰트 변환기"를 하위 구성요소로 포함할 수 있다. 또한, 암호폰트 생성기(114)는 암호화된 폰트 파일(암호 폰트)을 저장하는 "암호 폰트 저장소" 또는 "폰트 파일 저장소"를 더 포함할 수 있다.
또는 " 폰트 파일 저장소"는 암호폰트 생성기(114)와 별도로 구성될 수 있다. 물론, 이들 하위 구성 요소가 제공하는 기능을 하나의 소프트웨어로 구성하여 암호폰트 생성기(114)가 각각의 기능을 모두 제공할 수 있다.
도 9의 각각의 구성요소들은 하나의 소프트웨어 또는 하드웨어로 구성될 수도 있고, 여러 소프트웨어 및 여러 하드웨어로 분리하여 구성될 수 있다.
도 9에서 동작하는 과정을 살펴보면 다음과 같다.
암호화 장치(110)의 변환 코드 생성기(111)가 폰트와 원문 텍스트와 텍스트를 암호화하는 암호화 방법을 지시하는 식별정보를 입력받는다. 그리고 변환 코드 생성기(111)가 원문 텍스트의 하나 이상의 문자를 식별 정보가 지시하는 암호화 방법에 따라 치환될 문자 코드 또는 문자열 코드 변환에 사용될 변환 코드를 생성한다.
암호화 장치(110)의 치환 규칙 생성기(112)가 변환 코드에 대응하는 치환 규칙을 포함하는 치환 정보세트를 생성한다.
암호화 장치(110)의 텍스트 변환기(113)가 치환 규칙에 따라 원문 텍스트의 하나 이상의 문자 코드를 변환하여 암호화 텍스트를 생성한다.
암호화 장치(110)의 암호 폰트 생성기(114)가 치환 정보세트에 대응하여 상기 폰트의 문자 코드 문자-도안 매핑 정보(cmap)와 변형 및 합자 정보(GSUB) 또는 도안 정보(glyf)를 변환하여 암호화한다. 그 결과 암호화된 폰트, 즉 암호 폰트가 생성된다
도 10은 본 발명의 일 실시예에 의한 보안 폰트의 암호화 과정을 보여준다.
도 10에 도시된 과정은 앞서 도 2 내지 도 7의 실시예에서 살펴본 문서의 다중 치환(문자간, 문자열간, 문자와 문자열간의 치환) 암호화에 공통으로 적용될 수 있다. 암호화 과정은 암호화를 수행하는 암호화 장치(110)에서 이루어진다. 또다른 실시예의 경우, 암호화 장치(110)는 단말 장치와 서버 장치로 구성된 하나의 시스템을 지시할 수 있다.
사용자가 텍스트를 입력하거나 암호화할 텍스트를 선택하고, 암호화된 텍스트 출력에 사용할 폰트를 지정한다(S61).
다음으로, 사용자는 암호화 방법을 선택한다(S62). 도 2 내지 도 4의 실시예에서 살펴본 문자간 다중 치환 암호화, 도 5의 실시예에서 살펴본 문자-문자열간 치환 암호화, 도 6의 실시예에서 살펴본 문자열-문자간 치환 암호화, 그리고 도 7의 실시예에서 살펴본 문자열간 치환 암호화를 선택할 수 있다. 또는 전술한 다양한 암호화 방법 중 둘 이상의 암호화 방법을 포함하도록 혼합 암호화 방법을 선택할 수 있다.
이때, 사용자는 암호화 장치가 암호화 방법을 자동으로 선택하도록 지정할 수 있다. 이 경우, 암호화 장치는 문자간 다중 치환 암호화, 문자-문자열간 치환 암호화, 문자열-문자간 치환 암호화, 문자열간 치환 암호화, 혼합 암호화 방법 중에서 특정 암호화 방법을 랜덤으로, 또는 문서 내 문자들의 특성에 따라, 또는 문서 내 문자들의 글자 수에 따라 선택할 수 있다.
이후, 암호화 장치(110)는 치환 암호화 내부 규칙을 결정하는 변환 코드를 생성한다(S63). 변환 코드는 도 9에서 살펴본 변환 코드 생성기(111)에서 생성된다. 변환 코드 생성기(111)는 사용자 정보와 자동발생 규칙 등을 이용하여 유일한 코드 값을 생성한다. 즉, 변환 코드는 외부로부터 사용자가 입력하거나, 또는 변환 코드 생성기(111)가 랜덤하게 생성할 수 있다.
이때, 암호화 장치(110)는 변환 코드를 사용자가 생성하도록 인터페이스를 제공할 수 있다. 이 경우, 사용자가 자신이 원하는 문자열을 입력하면 변환 코드 생성기(111)는 사용자가 지정한 문자열이 시스템 내부에서 유일한 코드인지 확인한다. 코드가 유일하지 않을 경우, 변환 코드 생성기(111)는 자동발생 규칙에 의해 생성된 코드값을 사용자가 지정한 문자열 뒤에 추가하여 유일한 변환 코드 값을 생성할 수 있다.
변환 코드가 생성되면 치환 규칙 생성기(112)는 치환 규칙을 생성한다(S64). 앞서 도 9에서 살펴본 바와 같이 치환 규칙 생성기(112)는 치환 규칙의 종류(문자간 1:1, 문자간 다중, 문자-문자열, 문자열-문자, 문자열-새로운 문자열 치환 등)에 따라 각각 치환 규칙을 생성하는 생성기를 별도로 포함할 수 있다. 또는 치환 규칙 생성기(112)가 다양한 치환 규칙에 대응하여 치환 규칙을 생성할 수 있다.
치환 규칙에 따라 S64-1 내지 S64-4 중 특정 단계가 하나 또는 둘 이상 선택되어 수행될 수 있다.
S64-1 단계를 살펴본다. 치환 규칙 생성기(112)(또는 별도로 구성된 문자간 1:1 치환 규칙 생성기)는 변환 코드를 이용하여 텍스트 내의 문자 코드 각각에 대하여 대응하는 다른 문자 코드를 지정하고 서로 맞교환하는 방식으로 치환 한다. 치환이 완료되면, 문자간의 치환 정보세트를 생성하고 저장한다. 이때 생성되는 것으로 도 8의 문자간 치환 정보세트(51)를 일 실시예로 한다.
보다 상세히 살펴보면, 치환 규칙 생성기(112)(또는 별도로 구성된 문자간 1:1 치환 규칙 생성기)는 변환 코드를 이용하여 폰트 내에 포함된 모든 문자 코드 각각에 대하여 대응하는 다른 문자 코드를 지정하고 서로 맞교환하는 방식으로 치환할 수 있다. 그리고, 치환이 완료되면, 문자간의 치환 정보세트를 생성하고 저장한다.
한편, 전술한 예시와 달리, 치환 규칙 생성기(112)(또는 별도로 구성된 문자간 1:1 치환 규칙 생성기)는 문자간 1:1 치환 규칙 생성를 생략할 수 있다. 문자간 1:1 치환 규칙 생성이 생략될 경우, 문자간 치환 정보세트를 생성하지 않을 수 있다.
S64-2 단계를 살펴본다. 치환 규칙 생성기(112)(또는 별도로 구성된 문자간 다중 치환 규칙 생성기, 문자-문자열간 치환 규칙 생성기, 문자열-문자간 치환 규칙 생성기, 문자열간 치환 규칙 생성기, 혼합 치환 규칙 생성기)는 변환 코드를 이용하여 문자와 문자간의 치환 정보세트와 문자와 문자열간 치환정보세트, 문자열과 문자열간의 치환 정보세트를 생성한다.
일 실시예로, 사용자 또는 암호화장치(110)가 자동 또는 설정으로 "문자간 다중 치환" 방식을 선택한 경우, 치환 규칙 생성기(112)(또는 별도로 구성된 문자간 다중 치환 규칙 생성기)는 문자와 문자간의 다중 치환 정보세트를 생성한다. 이때 생성되는 것으로 도 8의 문자간 다중 치환 정보세트(52)를 일 실시예로 한다.
보다 상세히, 암호화 장치(110)는 변환 코드를 이용하여 텍스트 내의 문자 코드 중 다중 치환할 문자 코드를 선택하고 선택된 문자 코드에 대응하는 새로운 치환 문자 코드를 지정하고, 치환이 실행될 조건정보를 포함한 치환 정보세트를 생성한다. 문자간에 다중 치환이 실행되기 위해서는 각각의 치환쌍이 실행될 조건이 필요하다. 예를 들면, "가"라는 문자가 "A" 또는 "K"로 치환되도록 지정하는 조건이 필요하다. 첫번째 치환쌍이 실행될 조건과 두번째 치환쌍이 실행될 조건은 서로 다르게 구성될 수 있다.
일 실시예로, 사용자 또는 암호화 장치(110)가 자동 또는 설정으로 "문자-문자열간 치환"을 선택한 경우, 치환 규칙 생성기(112)(또는 별도로 구성된 문자-문자열간 치환 규칙 생성기)는 문자와 문자열간의 치환 정보세트를 생성한다. 변환 코드를 이용하여 텍스트 내의 문자 코드 중 문자열로 치환할 문자 코드를 선택하고 선택된 문자 코드에 대응하는 새로운 문자열을 지정한다. 대상 문자열은 원본 문자에 대한 해시함수의 결과값 또는 해시결과값을 변형한 문자열이 사용될 수 있다. 대상 문자열은 난독화된 문자열과 독해가 가능한 일반적인 문자열 모두 사용될 수 있다.
예를 들면, "가" 문자를 "ab0739cf3a81" 문자열 또는 "hello" 문자열로 치환할 수 있다. 단, 대상 문자열에는 원본 문자가 포함되지 않도록 암호화 장치(110) 또는 치환 규칙 생성기(112)가 치환 과정을 제어할 수 있다. 대상 문자열에 원본 문자가 포함된 경우 다른 문자로 대치될 수 있다.
이때 생성되는 것으로 도 8의 문자-문자열간 치환 정보세트(53)를 일 실시예로 한다.
일 실시예로, 사용자 또는 암호화 장치(110)가 자동 또는 설정으로 "문자열-문자간 치환"을 선택한 경우, 치환 규칙 생성기(112)(또는 별도로 구성된 문자열-문자간 치환 규칙 생성기)는 문자열과 문자간의 치환 정보세트를 생성한다. 암호화 장치(110)는 변환 코드를 이용하여 텍스트 내의 문자열 중 단일 문자로 치환할 원본 문자열을 선택하고 선택된 문자열에 대응하는 새로운 단일 문자를 지정한다. 예를 들면, "반갑습니다" 문자열이 "A" 문자로 치환될 수 있다. 대상 문자는 원본 문자열에 포함된 문자로 지정될 수 있다.
이때 생성되는 것으로 도 8의 문자열-문자간 치환 정보세트(54)를 일 실시예로 한다.
일 실시예로, 사용자 또는 암호화 장치(110)가 자동 또는 설정으로 "문자열간 치환"을 선택한 경우, 치환 규칙 생성기(112)(또는 별도로 구성된 문자열간 치환 규칙 생성기)'는 문자열간의 치환 정보세트를 생성한다. 변환 코드를 이용하여 텍스트 내의 문자열 중 다른 새로운 문자열로 치환할 원본 문자열을 선택하고 선택된 문자열에 대응하는 새로운 문자열을 지정한다. 대상 문자열은 원본 문자열에 대한 해시함수의 결과값 또는 변형 문자열이 사용될 수 있다.
대상 문자열은 난독화된 문자열과 독해가 가능한 일반적인 문자열 모두 사용될 수 있다. 예를 들면, "반갑습니다" 문자열을 "f24a37009b415b" 문자열 또는 "morning"로 치환할 수 있다. 대상 문자열에는 원본 문자열에 포함된 문자가 포함될 수 있다. 문자열간의 치환이 실행되기 위해 중간 과정이 필요할 수 있다. 암호화 장치(110)는 "반갑습니다" 문자열을 "f24a37009b415b" 문자열로 치환하기 위해 "반갑습니다" 문자열을 "B" 문자로 1차 치환하고 "B" 문자를 다시 "f24a37009b415b" 문자열로 재치환되도록 지정할 수 있다.
이때 생성되는 것으로 도 8의 문자열간 정보세트가 혼합된 치환 정보세트(55)를 일 실시예로 한다.
또한, 일 실시예로, 사용자 또는 암호화 장치(110)가 자동 또는 설정으로 "혼합 치환"을 선택한 경우, 치환 규칙 생성기(112)(또는 별도로 구성된 혼합 치환 규칙 생성기)는 문자간 다중 치환 정보세트(도 8의 52), 문자-문자열간 치환 정보세트(도 8의 53), 문자열-문자간 치환 정보세트(도 8의 54), 문자열간 정보세트가 혼합된 치환 정보세트(도 8의 55)를 생성한다. 변환 코드를 이용하여 문장별로 어떤 치환 규칙을 적용할지 선택하고 선택된 치환 규칙 생성기를 이용하여 해당 문장에 대해 치환정보세트를 생성한다.
치환에 대한 작업이 완료되면 치환 규칙 생성기(112)(또는 별도로 구성된 치환 규칙 검사기)는 문자간 치환 정보세트와 다중 치환 정보세트, 문자-문자열간 치환 정보세트, 문자열-문자간 치환 정보세트, 문자열간 치환 정보세트의 오류 여부를 검사한다.
일 실시예로 치환 규칙 생성기(112)(또는 별도로 구성된 치환 규칙 검사기)는 문자간 1:1 치환쌍의 오류를 검사할 수 있다. 이때 검사하게 되는 사항은 문자간 1:1 치환쌍 중에서 하나의 원본 문자가 2개 이상의 대응 문자로 다중 치환되도록 지정되었거나 원본 문자 중 2개 이상이 하나의 대응 문자로 치환되도록 지정되었는지를 판단한다. 이러한 경우 오류가 발생한 것이므로, 치환 규칙 생성기(112)는 문자간 1:1 치환쌍을 다시 생성한다.
마찬가지로, 치환 규칙 생성기(112)(또는 별도로 구성된 치환 규칙 검사기)는 다중 치환쌍 중에서 다중 치환 대상 문자 중 일부가 원본 문자로 재지정된 경우 오류로 판별한다. 그리고 치환 규칙 생성기(112)는 다중 치환쌍 다시 생성한다.
치환 규칙 생성기(112)(또는 별도로 구성된 치환 규칙 검사기)는 문자-문자열간 치환쌍 중에서 원본 문자가 대상 치환 문자열에 포함되었거나 다른 원본 문자의 대상 치환 문자열에 포함된 경우 충돌 오류로 판별한다. 그리고 치환 규칙 생성기(112)는 다시 치환쌍을 생성한다.
치환 규칙 생성기(112)(또는 별도로 구성된 치환 규칙 검사기)는 문자열-문자간 치환쌍 중에서 대상 치환 문자가 중복으로 지정된 경우 충돌 오류로 판별한다. 그리고 치환 규칙 생성기(112)는 다시 치환쌍을 생성한다.
치환 규칙 생성기(112)(또는 별도로 구성된 치환 규칙 검사기)는 문자열간 치환쌍 중에서 원본 문자열이 대상 대응 문자열 또는 다른 대상 문자열에 포함된 경우 충돌 오류로 판별한다. 그리고 치환 규칙 생성기(112)는 다시 치환쌍을 생성한다.
또한, 치환 규칙 생성기(112)(또는 별도로 구성된 치환 규칙 검사기)는 혼합 치환 규칙이 사용된 경우, 각 치환 정보세트간의 충돌이 발생하지 않는지 검사한다.
치환 규칙에 오류가 없으면, 치환 규칙 생성기(112)는 치환규칙을 치환규칙 저장소에 저장한다(S64-4). 치환규칙은 변환코드별로 하나의 치환규칙이 저장된다.
다음으로 암호화 장치(110)의 텍스트 변환기(113)는 치환 규칙 생성기(112)에서 생성된 치환 정보 세트들(도 8의 51 내지 55)을 이용하여 텍스트의 문자코드를 변환하여 암호화한다(S65).
일 실시예로 텍스트 변환기(113)는 문자간의 1:1 치환 정보세트(도 8의 51)의 원본 문자를 텍스트에서 검색하여 대응 문자로 일괄 치환한다.
일 실시예로 텍스트 변환기(113)는 다중 치환 정보세트(도 8의 52)의 치환조건을 텍스트에서 검색하고 검색된 문자열 내에서 다중 치환 정보세트의 원본 문자를 검색하고 대응 치환 문자로 일괄 치환한다.
일 실시예로 텍스트 변환기(113)는 문자-문자열간 치환 정보세트(도 8의 53)의 원본 문자를 텍스트에서 검색하고 대응 문자열로 일괄 치환한다.
일 실시예로 텍스트 변환기(113)는 문자열-문자간 치환 정보세트(도 8의 54)의 원본 문자열을 텍스트에서 검색하고 대응 문자로 일괄 치환한다.
일 실시예로 텍스트 변환기(113)는 문자열간 치환 정보세트(도 8의 55)의 원본 문자열을 텍스트에서 검색하고 대응 문자열로 일괄 치환한다.
일 실시예로 텍스트 변환기(113)는 혼합 치환인 경우 각각의 치환쌍에 대응하는 문자 또는 문자열로 일괄 치환한다.
텍스트의 변환이 완료되면 암호화 장치(110)의 암호 폰트 생성기(114)는 폰트를 변환하고 암호화 한다(S66).
암호 폰트 생성기(114)의 폰트 변환 및 암호화 단계를 상세히 살펴보면 다음과 같다.
S66-1단계에 설명된 바와 같이, 암호 폰트 생성기(114)(또는 별도로 구성된 문자간 1:1 치환 cmap 생성기)는 문자간의 치환 정보세트(도 8의 51)를 이용하여 폰트의 cmap을 변환하고 폰트를 암호화 한다. cmap에는 폰트내의 모든 문자코드와 문자도안(glyph)에 대한 매핑정보가 보관되어 있다. 문자도안(glyph)는 TTF 폰트의 경우 glyf 테이블에 보관되어 있고, OTF폰트의 경우 CFF 테이블에 보관되어 있다. 문자간 치환 정보세트에 있는 각각의 문자와 그 대응 문자를 cmap의 문자코드에서 찾고 문자코드에 대한 문자도안의 번호를 서로 맞교환하여 문자코드에 대한 문자도안(glyph)이 서로 교환되도록 한다.
일 실시예로, 문자간 1:1 치환 정보세트(도 8의 51)가 없을 경우, cmap의 변환 과정은 생략될 수 있다.
S66-2단계에 설명된 바와 같이, 암호 폰트 생성기(114)(또는 별도로 구성된 문자간 다중 치환 GSUB 생성기, 문자-문자열간 치환 GSUB 생성기, 문자열-문자간 치환 GSUB 생성기, 문자열간 치환 GSUB 생성기, 호환 치환 GSUB 생성기)는 치환 정보세트(도 8의 52 내지 55)를 이용하여 문자와 문자간의 치환 GSUB, 문자와 문자열간 치환 GSUB, 문자열과 문자간 치환 GSUB, 문자열과 문자열간의 치환 GSUB를 생성한다.
일 실시예로, 암호 폰트 생성기(114)(또는 별도로 구성된 문자간 다중치환 GSUB 생성기)는 문자간의 치환 정보세트를 이용하여 폰트의 GSUB를 변환하고 폰트를 암호화 한다. GSUB에는 문자의 다양한 형태와 변형에 필요한 추가적인 정보를 정의한다. 특정 문자간의 조합에 대한 합자 정보, 문자간의 변형 정보 등이 포함된다.
암호 폰트 생성기(114)(또는 별도로 구성된 문자간 다중치환 GSUB 생성기)는 문자와 문자간의 다중 치환 정보를 GSUB에 추가한다. 다중 치환의 경우 치환이 실행될 조건(도 8의 52 참조)이 필요하고, 치환쌍이 실행될 조건에 대한 정보도 GSUB에 추가한다.
예를 들면, 암호 폰트 생성기(114)(또는 별도로 구성된 문자간 다중치환 GSUB 생성기)는 "가"문자가 "가로수" 문자열을 구성할 때 "가"를 "A"로 치환하고 "가방" 문자열을 구성할 때 "K"로 치환하도록 지정할 수 있다. 이때 "가로수"는 "가"를 "A"로 치환할 실행 조건이되고, "가방"은 "가"를 "K"로 치환하는 조건이 된다.
암호 폰트 생성기(114)(또는 별도로 구성된 문자-문자열간 치환 GSUB 생성기)는 문자-문자열간의 치환 정보세트(도 8의 53)를 이용하여 폰트의 GSUB를 변환하고 폰트를 암호화 한다. 또한, 이 과정에서 문자와 문자열간의 치환 정보가 GSUB에 추가되며, 치환 정보세트의 문자열에 대해 문자의 도안이 표시되도록 지정될 수 있다.
예를 들면, 암호 폰트 생성기(114)(또는 별도로 구성된 문자-문자열간 치환 GSUB 생성기)"가" 문자를 "ab0739cf3a81" 문자열로 치환하였다면 "ab0739cf3a81" 문자열에 대해 "가"문자의 도안이 표시되도록 지정할 수 있다.
암호 폰트 생성기(114)(또는 별도로 구성된 문자열-문자간 치환 GSUB 생성기)는 문자열-문자간의 치환 정보세트(도 8의 54)를 이용하여 폰트의 GSUB를 변환하고 폰트를 암호화 한다. 암호 폰트 생성기(114)(또는 별도로 구성된 문자열-문자간 치환 GSUB 생성기)는 문자열과 문자 간의 치환 정보를 GSUB에 추가하고 치환 정보세트의 문자에 대해 문자열이 표시되도록 지정한다.
예를 들면, 암호 폰트 생성기(114)(또는 별도로 구성된 문자열-문자간 치환 GSUB 생성기)는 "반갑습니다" 문자열를 "A" 문자로 치환하였다면 "A" 문자에 대해 "반갑습니다" 문자열이 표시되도록 지정할 수 있다.
암호 폰트 생성기(114)(또는 별도로 구성된 문자열간 치환 GSUB 생성기)는 문자열간의 치환 정보세트(도 8의 55)를 이용하여 폰트의 GSUB를 변환하고 폰트를 암호화 한다. 암호 폰트 생성기(114)(또는 별도로 구성된 문자열간 치환 GSUB 생성기)는 문자열과 문자열 간의 치환 정보를 GSUB에 추가하고, 치환 정보세트의 문자열에 대해 문자열이 표시되도록 지정한다.
예를 들면, 암호 폰트 생성기(114)(또는 별도로 구성된 문자열간 치환 GSUB 생성기)가 "반갑습니다" 문자열을 "f24a37009b415b" 문자열로 치환하였다면 "f24a37009b415b" 문자열에 대해 "반갑습니다" 문자열이 표시되도록 지정한다. 문자열간 치환의 경우 치환이 실행되기 위해 중간 과정이 필요할 수 있고, 중간 과정에 대한 정보도 GSUB에 추가한다.
예를 들면, 암호 폰트 생성기(114)(또는 별도로 구성된 문자열간 치환 GSUB 생성기)는 "반갑습니다" 문자열을 "f24a37009b415b" 문자열로 치환하였다면, "f24a37009b415b" 문자열을 "B" 문자가 표시되도록 지정하고 "B" 문자를 다시 "반갑습니다" 문자열로 표시되도록 지정할 수 있다.
또한, 암호 폰트 생성기(114)(또는 별도로 구성된 혼합 치환 GSUB 생성기)는 문자간 다중 치환 정보세트(도 8의 52), 문자-문자열간 치환 정보세트(도 8의 53), 문자열-문자간 치환 정보세트(도 8의 54), 문자열간 정보세트가 혼합된 치환 정보세트(도 8의 55)를 이용하여 폰트의 GSUB를 변환하고 암호화한다. 암호 폰트 생성기(114)(또는 별도로 구성된 혼합 치환 GSUB 생성기)는 치환 정보세트의 유형에 따라 해당 GSUB 생성기를 이용하여 GSUB를 변환하고 암호화 한다.
앞서 살펴본 암호 폰트 생성기(114)와 텍스트 변환기(113)는 서로 역의 치환을 수행할 수 있다.
다음으로, 폰트 내부 정보인 cmap과 GSUB 정보가 모두 변경되었다면, 암호 폰트 생성기(114)는 S66-3단계와 같이 변경된 정보를 포함하는 새로운 암호화 폰트 파일을 생성한다.
그리고 암호 폰트 생성기(114)는 폰트 파일이 정상적으로 생성되면 S66-4단계와 같이 폰트 파일 저장소에 암호화 폰트파일을 저장한다. 폰트파일은 변환코드 당 하나의 폰트파일이 저장된다.
이후, 암호화된 폰트 파일과 암호화된 텍스트 문서는 해당 암호화 장치(110)에서 다시 오픈되거나, 혹은 다른 장치(도 1의 120)로 전송된 후 오픈될 수 있다.
이 경우, 이 문서를 오픈하려는 장치(110, 120)는 암호화 장치(110)의 텍스트 변환기(113)가 변환하여 암호화시킨 텍스트 문서에 암호 폰트 생성기(114)가 변환하여 암호화시킨 폰트를 적용하면(S67) 별도의 복호화 과정 없이 텍스트를 복원하여 원문 텍스트의 내용을 확인할 수 있다.
또한, 암호화된 텍스트만 있고, 폰트가 없는 경우, 해당 텍스트는 원본 텍스트로 변환되지 않으므로, 텍스트의 보안을 향상시킬 수 있다.
도 11 내지 도 14는 본 발명의 다양한 암호화 방식에 따른 암호화 및 복원의 예시를 보여준다. Abg는 폰트파일을 지시한다. Abg에 "원본폰트"라 부기된 것은 원본 폰트를 의미하며, "암호화폰트"라 부기된 것은 암호화된 폰트를 의미한다. 그리고 화살표에서 enc라 표시된 것은 암호화 과정을 나타낸다.
도 11은 본 발명의 일 실시예에 의한 문자간 다중 치환의 암호화 및 복원 과정을 보여주는 도면이다. 앞서 도 4에서 설명한 내용을 참조한다. 또한 대응하는 프로세스로 도 10의 단계들이 지시되어 있다.
S61~S62의 텍스트 입력 및 폰트 선택과 암호화 방식(1:N 다중 매핑)을 선택하면, 일부 문자에 대해 변환 코드 생성기(111)로 변환 코드를 생성하고, 또한 일부 문자(예를 들어 "다"라는 문자)에 대해서 치환 규칙 생성기(112)(또는 별도로 구성된 문자간 다중 치환 규칙 생성기)는 해당 문자("다")를 "e" 또는 "l"로 치환하는 규칙을 생성한다(S63, S64).
그리고 텍스트 변환기(113)는 치환 규칙에 따라 텍스트를 암호화한다(S65). 그리고 암호폰트 생성기(114)(또는 문자간 다중 치환 GSUB 생성기)는 지정된 폰트를 암호화한다(S66).
여기서 다중 치환에 해당하지 않는 문자들에 대해서는 치환 규칙 생성기(112)(또는 별도로 구성된 문자간 1:1 치환 규칙 생성기)가 문자간 1:1 치환 규칙을 생성하고, 이에 따라 암호 폰트 생성기(114)(또는 별도로 구성된 문자간 1:1 치환 cmap 생성기)가 문자간 1:1 치환 cmap 생성을 생성할 수 있다.
생성된 암호화 폰트를 암호화된 텍스트에 적용하면 원래의 텍스트가 복원된다(S67).
도 12는 본 발명의 일 실시예에 의한 문자-문자열간 치환의 암호화 및 복원 과정을 보여주는 도면이다. 앞서 도 5에서 설명한 내용을 참조한다. 또한 대응하는 프로세스로 도 10의 단계들이 지시되어 있다.
S61~S65의 텍스트 입력 및 폰트 선택과 암호화 방식(문자:문자열 매핑, 1개의 문자가 m개의 문자로 구성된 문자열로 매핑되는 방식)을 선택하면, 특정 문자(예를 들어 "폰", "트"라는 문자)에 대해서 치환 규칙 생성기(112)(또는 별도로 구성된 문자-문자열간 치환 규칙 생성기)는 각각의 글자에 대응하는 문자열을 치환 규칙으로 생성한다. 그리고 텍스트 변환기(113)는 치환 규칙에 따라 각 문자를 암호화한다.
그리고 암호폰트 생성기(114)(또는 문자-문자열간 치환 GSUB 생성기)는 지정된 폰트를 암호화한다(S66). 생성된 암호화 폰트를 암호화된 텍스트에 적용하면 원래의 텍스트가 복원된다(S67).
도 13은 본 발명의 일 실시예에 의한 문자열-문자간 치환의 암호화 및 복원 과정을 보여주는 도면이다. 앞서 도 6에서 설명한 내용을 참조한다. 또한 대응하는 프로세스로 도 10의 단계들이 지시되어 있다.
S61~S65의 텍스트 입력 및 폰트 선택과 암호화 방식(문자열:문자 매핑, m개의 문자가 1개의 문자로 구성된 문자열로 매핑되는 방식)을 선택하면, 특정 문자열에 대해서 치환 규칙 생성기(112)(또는 별도로 구성된 문자열-문자간 치환 규칙 생성기)는 각각의 글자에 대응하는 문자열을 치환 규칙으로 생성한다. 그리고 텍스트 변환기(113)는 치환 규칙에 따라 해당 문자열을 암호화한다.
그리고 암호폰트 생성기(114)(또는 문자열-문자간 치환 GSUB 생성기)는 지정된 폰트를 암호화한다(S66).
생성된 암호화 폰트를 암호화된 텍스트에 적용하면 원래의 텍스트가 복원된다(S67).
도 14는 본 발명의 일 실시예에 의한 문자열간 치환의 암호화 및 복원 과정을 보여주는 도면이다. 앞서 도 7에서 설명한 내용을 참조한다. 또한 대응하는 프로세스로 도 10의 단계들이 지시되어 있다.
S61~S65의 텍스트 입력 및 폰트 선택과 암호화 방식(문자열: 문자열간 매핑, m개의 문자로 구성된 문자열이 n개의 문자로 구성된 문자열로 매핑되는 방식)을 선택하면, 특정 문자열에 대해서 치환 규칙 생성기(112)(또는 별도로 구성된 문자열간 치환 규칙 생성기)는 각각의 글자에 대응하는 문자열을 치환 규칙으로 생성한다. 그리고 텍스트 변환기(113)는 치환 규칙에 따라 해당 문자열을 암호화한다(S65).
그리고 암호폰트 생성기(114)(또는 문자열-문자열간 치환 GSUB 생성기)는 지정된 폰트를 암호화한다(S66).
생성된 암호화 폰트를 암호화된 텍스트에 적용하면 원래의 텍스트가 복원된다(S67).
도 15는 본 발명의 일 실시예에 의한 암호화된 텍스트를 다시 복원하여 표시하는 과정을 보여준다.
암호화 장치(110)가 암호화된 텍스트와 암호화된 폰트를 전술한 바와 같이 생성하여 저장한다. 또는 저장한 암호화 텍스트와 암호화된 폰트를 서버로 전송하여 다른 장치에서 이를 확인할 수 있도록 한다(S71).
그리고 암호화된 텍스트는 메일이나 웹사이트 등을 통해 복원 장치(120)로 전달되거나, 혹은 복원 장치(120)가 암호화된 텍스트에 접근한다(S72).
이후 복원 장치(120)가 서버에 암호화 폰트를 요청한다(S73). 그리고 복원 장치(120)가 수신한 암호화 폰트를 암호화 텍스트에 적용하여 원문을 복원한다(S74).
암호화 장치(110)와 복원 장치(120)의 미리 약속된 방식에 따라서, 암호화된 텍스트와 암호화된 폰트가 함께 복원 장치(120)에 전달될 수 있다. 이는 복원 장치(120)가 해당 문서에 접근할 권한이 있음을 인증한 경우를 일 실시예로 한다.
즉, 도 15의 복호화 과정은 복원 장치(120)가 암호화 텍스트 및 암호화 텍스트에 대응하는 암호화 폰트를 획득하는 단계(S71~S73) 및 복원 장치(120)가 암호화 폰트를 상기 암호화 텍스트에 적용하여 암호화 폰트가 적용되기 전의 암호화 텍스트의 제1문자와 상이하게 표시되는 제2문자를 포함하는 텍스트를 표시하는 단계(S74)로 구성된다.
만약 암호화 폰트가 적용되기 전이라면 암호화된 텍스트의 "A"라는 문자는 그대로 "A"로 표시된다. 하지만, 암호화 폰트가 적용되면 암호화된 텍스트의 "A"라는 문자는 "하" 또는 "안녕하세요" 등과 같이 다르게 표시된다. 이는 제1문자가 문자열인 경우에도 해당한다.
도 15의 실시예를 보다 상세히 살펴본다.
복원 장치(120)가 웹브라우저를 이용하여 해당 암호 텍스트를 표시하는 경우라면, 복원 장치(120)장치의 웹브라우저로 암호 텍스트와 함께 웹폰트형식의 암호 폰트 파일이 함께 전달되어 표시된다.
설명의 편의를 위해 블로그 시스템의 경우를 예로 들면, 블로그 사용자(관리자)가 보호가 필요한 원문을 작성하고 저장을 하면 문서가 저장되는 시점에 원문의 텍스트는 암호화되고 이와 동시에 암호화 폰트가 함께 생성된다(S71).
한편, 블로그 방문자(접속자)가 해당 블로그 페이지에 접속하면 암호화된 텍스트가 포함된 HTML 문서를 방문자의 웹브라우저로 전달한다(S72). 웹브라우저는 HTML 문서 내용을 분석하고 HTML 문서에서 필요로 하는 폰트 정보를 확인하고 서버(300)에 해당 폰트를 요청한다(s73). 폰트 정보를 요청받은 서버는 원문 작성시 생성된 암호화 폰트를 웹폰트 형식으로 웹브라우저에 전달한다. 웹브라우저가 웹폰트를 수신하여 해당 HTML 문서에 폰트를 적용하면 원문의 내용이 재현되어 화면에 표시된다(S74).
이때, 문서를 복원하여 표시하기 위해, 웹브라우저는 웹폰트를 수신하여 폰트를 HTML 문서에 적용하는 것 이외의 다른 부가적인 작업을 필요로 하지 않는다. HTML문서의 내용에서는 암호화된 텍스트는 암호화된 상태를 그대로 유지한 상태에서 원문의 내용이 재현되어 표시되는 방식이다.
다른 실시예로 문서편집기가 탑재된 시스템의 경우도 이와 동일한 방식으로 작동한다. 사용자가 보호가 필요한 문서를 작성하고 저장 버튼을 누르면, 문서 내의 텍스트를 암호화 하고 동시에 이에 대응하는 암호화 폰트를 생성한다(S71). 암호화 과정은 사용자의 장치에서 실행될 수도 있고 서버(300)에서 수행될 수도 있다.
생성된 암호화 폰트는 서버(300)의 저장소에 저장된다. 사용자가 암호화된 문서를 다른 사용자에게 전달할 경우(S72), 수신자가 암호화 문서를 열면 수신자의 장치(복원 장치)의 문서편집기는 암호화 문서에 사용된 폰트가 수신자의 장치에 없음을 확인하고 문서 편집기 서버 시스템에 해당 폰트를 요청한다(S73). 서버(300)는 해당 암호화 폰트를 수신자의 장치로 전달한다.
수신자의 장치(복원 장치)의 문서 편집기는 해당 암호화 폰트를 다운로드하고 문서에 폰트를 로딩하여 표시한다. 암호화 폰트가 적용되면 암호 텍스트가 원문 내용으로 자동으로 표시되지만 텍스트는 암호화 된 상태를 유지한다(S74).
폰트를 이용한 암호화 방식의 특성은 시스템이 폰트를 로딩하여 문자를 표시하는 방법을 이용한 것으로 별도의 복호화 과정 없이 폰트를 적용하는 것 만으로도 원문의 내용을 재현하여 표시하게 된다.
도 15의 실시예는 웹문서의 암호화 및 복원 표시 과정에도 적용된다.
웹문서를 작성하고 작성한 문서를 폰트와 함께 암호화한 후, 사용자 화면에 표시하기 위해 전술한 암호화 및 복원 프로세스를 적용할 수 있다.
사용자가 웹 문서 편집화면에서 문서 내용을 작성하고, 텍스트에 적용할 폰트를 지정한다. 폰트는 나눔명조, 나눔고딕, Rix고딕 등 문서 작성시 사용할 수 있는 일반적인 TTF, OTF 폰트를 선택할 수 있다. 웹폰트로 변환이 허가된 폰트이고 서버에 설치된 폰트라면 어떠한 폰트라도 사용이 가능하다.
사용자는 문서 작성이 완료되면, 도 10 내지 도 14에서 살펴본 텍스트 문서의 암호화 방법을 지정하고 저장한다. 텍스트가 암호화되면서 동시에 텍스트 암호화 방법(문자간 다중/문자-문자열/문자열-문자/문자열-문자열 등)에 대응하는 내용을 정보를 가진 암호화 폰트를 생성한다.
이후, 사용자가 생성한 암호화 문서에 대해 수신자(접속자)가 복원 장치에 설치된 웹브라우저로 암호화된 해당 웹문서를 요청하면, 도 15의 과정에 따라 암호된 텍스트가 포함한 웹 문서와 이에 대응하는 암호화 웹폰트를 획득하고, 웹브라우저에서 원문의 내용을 재현하여 표시한다.
도 16은 본 발명의 일 실시예에 의한 암호문을 복원하는 과정을 보여준다.
복원 장치(120)에서 폰트를 이용하여 암호 텍스트를 재현하는 방법은 TTF/OTF 폰트를 사용하는 대부분의 운영체제에서 동일하게 작동할 수 있다.
복원 장치(120)는 암호문(77)을 원문의 텍스트로 복원하는 것이 아니라, 암호문은 유지한 상태에서 폰트를 이용하여 시각적인 형태만 원문과 동일한 내용으로 표시한다. 따라서, 복원 장치(120)가 수행하는 작업은 복호화가 아닌 표시상의 복원 또는 재현에 해당한다.
암호문의 내용이 77이 지시하는 바와 같이, "tnoFe. ruce Sol. leH다니, 입트폰안보다니습갑반!" 이고 원문이 79가 지시하는 바와 같이 "반갑습니다. 보안폰트 입니다. Hello, SecureFont!"이다.
암호문은 원문의 앞과 뒤를 서로 맞교환하는 방식으로 암호화한 것이다. 이 암호문에 대응하는 폰트를 생성하기 위해서는 2번이상 반복해서 나타나는 문자 "e, o, l, 니, 다" 에 대해 다중 변환이 수행되었으며, 도 4의 S31/S32 과정을 거쳐 암호화가 이루어졌다.
만약, 복원 장치(120)가 암호화된 폰트가 아닌 일반 폰트를 이용하여 암호문의 문자열을 표시하는 경우에, 복원 장치(120)는 폰트에서 "t" 문자에 대한 문자코드 0x0074에 대응하는 문자도안을 폰트의 문자-글립 인덱스 매핑표(cmap)에서 검색하여 해당 문자도안(Glyph)인 "t"를 화면에 표시하고, 다음 문자인 "n"의 문자코드 0x006e 에 대응하는 문자도안인 "n"를 찾아 화면에 표시한다.
문자 중 공백이 있을 경우 공백 문자코드 "0x0020" 가 사용되고 이에 대응하는 문자도안의 띄어쓰기 공간 크기만큼 다음 문자와의 간격을 띄운다. 이러한 과정을 모든 문자에 대해 반복 수행하여 화면에는 77이 지시하는 암호문의 일부인 "tnoFe. ruce Sol." 이라는 암호문 형태 그대로 표시된다.
문자 코드간의 다중 변환이 지원되지 않는 경우, 77이 지시하는 암호문 "tnoFe. ruce Sol. leH다니, 입트폰안보다니습갑반!"는 78이 지시하는 "반갑습니다. 보안폰다 입습H. H다leF, S트cureFont!" 형태로만 표현된다. 이는 원문(79)과 다르다. 즉, 다중 변환이 지원되지 않으면 원문을 완벽하게 재현할 수가 없다. 왜냐하면 암호화 과정에서 하나의 동일한 문자(예를 들어 e)가 다양한 문자로 변환될 수 있기 때문이다.
따라서, 암호문에 대응하도록 다중 변환 기능이 가능한 암호화 폰트를 적용하여 화면에 표시할 경우, 첫 번째 암호문 "tnoFe."를 표현하기 위해 복원 장치(120)는 암호화 폰트에서 "t"문자에 대해 문자-글립인덱스 매핑표를 검색하기 전에 문자코드 0x0074에 대응하는 오픈타입 피쳐(OpenType Feature) 기능이 있는지 GSUB에서 검색한다. 즉, 복원 장치(120)는 오픈타입 피쳐 기능을 변형 및 합자 정보(GSUB)에서 검색한다.
검색된 결과가 없다면, 복원 장치(120)는 문자코드 0x0074에 대응하는 문자도안을 폰트의 문자 코드 문자-도안 매핑 정보(cmap)에서 검색하여 변환된 해당 문자도안인 "반"를 화면에 표시한다.
다음 문자 "n"에 대해서도 복원 장치(120)는 문자코드 0x006e 역시 OpenType Feature 기능으로 지정된 것이 있는지 GSUB에서 검색하고, "tn" 문자열 즉 0x0074 0x006e 문자 코드의 나열에 대응하는 OpenType Feature 기능이 있는지 GSUB 에서 검색한다. 검색된 결과가 없다면, "n" 의 문자코드 0x006e에 대응하는 문자도안을 문자 코드 문자-도안 매핑 정보(cmap)에서 검색하여 변환된 해당 문자도안인 "갑"을 화면에 표시한다.
이 과정을 "o", "F", "e" 문자에 대해 반복 수행하여 변환된 문자도안인 "습", "니", "다"를 화면에 표시하여 "tnoFe."라는 암호문은 "반갑습니다. "로 표시된다.
암호문의 두번째 문장인 "ruce Sol. "에 대해서도 동일한 과정을 반복 수행한다. "r", "u", "c" 에 대해 반복 수행하여 대응 문자도안 "보", "안", "폰" 을 출력한 다음, "e" 문자에 대한 문자 코드 0x0065도 OpenType Feature 기능이 지정된 것이 있는지 GSUB에서 검색한다. 검색된 결과가 없다면, 앞 문자를 포함한 "ce" 문자열의 문자 코드 나열 0x0063 0x0065에 대한 OpenType Feature 기능이 있는지 GSUB 에서 검색한다.
검색 결과 0x0063 0x0065 문자코드 나열에 대해 0x0063 0xd2b8로 변환하도록 지정된 것이 검색되면, 복원 장치(120)는 변환된 문자코드에 대한 문자도안을 문자 코드 문자-도안 매핑 정보(cmap)에서 에서 찾아서 화면에 표시한다. 변환된 문자코드 0x0063은 "폰" 문자도안, 0xd2b8 문자코드는 "트" 문자도안을 표시한다. 그 결과, 'ce'암호문이 '폰다' 대신 '폰트'로 표현되도록 한다. 이런 과정을 나머지 문자 "S", "o", "l"에 대해서도 동일하게 수행하면, "So" 문자열은 "입습" 에서 "입니"으로 표현되고, "ol" 문자열은 "So"문자열의 다중 변환 결과에 따라 기본 변환형인 "습H" 에서 "니H"로 변환된 후 "니H"에 대한 다중 변환 결과인 "니다"로 표현되어, 두번째 암호문인 "ruce Sol." 도 "보안폰트 입니다. " 로 원문의 내용을 완벽하게 재현하여 표시할 수 있게 된다.
이러한 방식으로 화면상에 원문 형태를 재현하는 방식은 OpenType Feature 기능을 지원하는 운영체제 또는 웹브라우저, 응용프로그램에서는 모두 가능하다.
도 16의 과정을 정리하면, 복원 장치(120)는 암호화 텍스트의 제1문자에 대응하는 오픈타입 피쳐 기능을 변형 및 합자 정보(GSUB)에서 검색한다. 그리고 기능이 검색된 경우, 도 11의 S63 내지 S67에 도시된 바와 같이 복원 장치(120)는 제1문자로 변환되었던 제2문자의 문자 코드에 대한 문자 도안을 문자 코드 문자-도안 매핑 정보(cmap)에서 검색하여 표시한다. 또는 기능이 검색된 경우, 도 13의 S67에 도시된 바와 같이 복원 장치(120)는 제1문자로 변환되었던 제2문자열의 문자 코드에 대한 문자 도안을 문자 코드 문자-도안 매핑 정보(cmap)에서 검색하여 표시한다.
기능이 검색되지 않은 경우, 복원 장치(120)는 제1문자의 문자 코드에 대응하는 문자 도안을 문자 코드 문자-도안 매핑 정보(cmap)에서 검색하여 표시한다.
여기서 제2문자 및 제2문자열은 원문 텍스트에 포함된 내용을 재현하기 위한 구성요소이다.
도 17은 본 발명의 다른 실시예에 의한 암호문을 복원하는 과정을 보여준다.
도 17은 복원 장치(120)에서 하나의 문자열을 다른 문자열로 변환하여 암호화된 텍스트를 복원(재현)하는 과정을 보여준다.
앞서 도 16에서 살펴본 실시예와 마찬가지로 복원 장치(120)에서 폰트를 이용하여 암호 텍스트를 재현하는 방법은 TTF/OTF 폰트를 사용하는 대부분의 운영체제에서 동일하게 작동한다. 아래의 설명은 하나의 문자열을 다른 문자열로 변환하여 암호화한 경우에 대해 수신 장치에서 원문 형태를 재현하는 방법을 서술한 것이다.
암호문을 원문의 텍스트로 복호화하는 것이 아니라, 암호문은 유지한 상태에서 시각적인 형태만 원문과 동일한 내용으로 표시되기 때문에 복원 또는 재현에 해당한다.
암호문의 내용이 "fr87" 이고 원문이 "반갑습니다" 인 경우, 일반 폰트를 이용하여 문자열을 표시하였다면, 시스템은 폰트에서 "f"문자에 대한 문자코드 0 x0066에 대응하는 문자도안을 폰트의 문자 코드 문자-도안 매핑 정보(cmap)에서 검색하여 해당 문자도안(Glyph)인 "f"를 화면에 표시하고, 다음 문자인 "r"의 문자코드 0x0072 에 대응하는 문자도안인 "r"를 찾아 화면에 표시하게 된다. 이 과정을 모든 문자에 대해 반복 수행하여 화면에 "fr87" 이라는 암호문의 문자열을 표시하게 된다.
암호문에 대응하는 암호화 폰트를 적용하여 화면에 표시할 경우, 시스템은 암호화 폰트에서 "f"문자에 대해 문자 코드 문자-도안 매핑 정보(cmap)를 검색하기 전에 문자코드 0x0066에 대응하는 OpenType Feature 기능이 있는지 변형 및 합자 정보(GSUB)에서 검색한다. 검색된 결과가 없다면, 문자코드 0x0066에 대응하는 문자도안을 폰트의 문자 코드 문자-도안 매핑 정보(cmap)에서 검색하여 해당 문자도안인 'f'를 화면에 표시한다. 다음 문자 "r" 의 문자코드 0x0072 역시 OpenType Feature 기능으로 지정된 것이 있는지 변형 및 합자 정보(GSUB)에서 검색하고, "fr" 문자열 즉 0x0066 0x0072 문자 코드의 나열에 대응하는 OpenType Feature 기능이 있는지 변형 및 합자 정보(GSUB)에서 검색한다. 검색된 결과가 없다면, "r" 의 문자코드 0x0072에 대응하는 문자도안을 문자 코드 문자-도안 매핑 정보(cmap)에서 검색하여 해당 문자도안인 "r"을 화면에 표시한다. 이 과정을 "8" 문자에 대해 반복 수행한다. 마지막 문자인 "7" 문자에 대한 문자 코드 0x0037도 OpenType Feature 기능이 지정된 것이 있는지 변형 및 합자 정보(GSUB)에서 검색한다.
검색된 결과가 없다면, "fr87" 문자열의 문자 코드 나열 "0x0066 0x0072 0x0038 0x0037"에 대한 오픈타입 피쳐 (OpenType Feature) 기능이 있는지 변형 및 합자 정보(GSUB) 에서 검색한다.
검색 결과 "0x0066 0x0072 0x0038 0x0037" 문자코드 나열에 대해 "0xbc18 0xac11 0xc2b5 0xb2c8 0xb2e4"으로 변환하도록 지정된 것이 검색되면, 변환된 문자코드에 대한 문자도안을 문자 코드 문자-도안 매핑 정보(cmap)에서 찾아서 화면에 표시한다. 변환된 문자코드 0xbc18는 "반" 문자도안, 0xac11 문자코드는 "갑" 문자도안, 0xc2b5 문자코드는 "습" 문자도안, 0xb2c8 문자코드는 "니" 문자도안 그리고 0xb2e4 문자코드는 "다" 문자도안를 표시한다. 그 결과, 암호문자열 "fr87"은 화면상에서 "반갑습니다" 문자열에 대응하는 문자도안들의 나열로 표시되고 문자열은 암호화된 상태인 "fr87"을 그대로 유지한다.
이러한 방식으로 화면상에 원문 형태를 재현하는 방식은 OpenType Feature 기능을 지원하는 운영체제 또는 웹브라우저, 응용프로그램에서는 모두 가능하다.
도 17을 정리하면 다음과 같다.
복원 장치(120)는 암호화 텍스트의 제1문자열을 구성하는 문자코드에 대응하는 오픈타입 피쳐 기능을 변형 및 합자 정보(GSUB)에서 검색한다.
기능이 검색된 경우, 도 12의 S67에 도시된 바와 같이 복원 장치(120)는 제1문자열로 변환되었던 제2문자의 문자 코드에 대응하는 문자도안을 문자 코드 문자-도안 매핑 정보(cmap)에서 검색하여 표시한다.
또는 도 14의 S67에 도시된 바와 같이 복원 장치(120)는 제1문자열로 변환되었던 제2문자열의 문자 코드에 대응하는 문자도안을 문자 코드 문자-도안 매핑 정보(cmap)에서 검색하여 표시한다.
여기서 제2문자 및 제2문자열은 원문 텍스트에 포함된 내용을 재현하기 위한 구성요소이다.
도 18은 본 발명의 일 실시예에 의한 암호화 시스템의 구성을 보여준다. 암호화 시스템(500)의 구성은 도 9의 암호화 장치의 구성을 토대로 한다. 화살표는 암호화가 진행되는 과정을 보여주며 이는 앞서 도 9 및 관련 설명에서 제시되었다.
암호화 시스템은 암호화 장치로 구성된 시스템을 일 실시예로 한다. 또는 암호화 시스템은 암호화 장치와 서버를 포함하는 시스템을 일 실시예로 한다.
즉, 암호화 작업은 하나의 장치에서 수행될 수도 있고, 암호화 장치와 서버 사이에서 수행될 수 있으므로, 도 18의 구성은 암호화 시스템으로 지칭한다. 따라서 도 18의 구성은 하나의 장치 내에 구현될 수도 있고 또는 둘 이상의 장치들이 각각의 구성요소를 포함하며 암호화 작업이 다수의 장치에서 협업으로 수행될 수 있음을 의미한다.
제어기(501)는 사용자가 입력 또는 업로드하는 텍스트와 사용자가 선택한 폰트를 입력받는다. 제어기(501)는 입력된 정보를 변환 코드 생성기(511)로 전달하며, 변환 코드 생성기(511)는 치환 암호화 내부 규칙을 결정하는 변환 코드를 생성한다. 이는 앞서 살펴본 바와 같다.
치환 규칙 생성기(512)는 전술한 암호화 장치(110)의 치환 규칙 생성기(112)의 설명을 대신한다.
치환 규칙 생성기(512)는 내부적으로 도 2 내지 도 7에서 설명된 각각의 치환 방식에 대응하는 문자간 1:1 치환 규칙 생성기(512a), 문자간 다중 치환 규칙 생성기(512b), 문자-문자열간 치환 규칙 생성기(512c), 문자열-문자간 치환 규칙 생성기(512d), 문자열간 치환 규칙 생성기(512e), 혼합 치환 규칙 생성기(512f) 그리고 치환 규칙 검사기(512g)를 하위 구성요소로 포함할 수 있다.
치환 규칙 생성기(512)는 문자간 1:1 치환 규칙 생성기(512a)는 선택적으로 포함할 수 있다.
도 18의 구성도에서 치환규칙 저장소(512s)는 치환 규칙 생성기(512)의 외부에 배치되어 있으나, 본 발명이 이에 한정되는 것은 아니며 치환 규칙 생성기(512) 내에 치환규칙 저장소(512s)가 배치될 수 있다.
치환 규칙 생성기(512)는 치환 규칙을 생성하고, 이를 포함하는 치환 정보 세트들(도 8의 51 내지 55)을 치환규칙 저장소(512s)에 저장할 수 있다.
그리고 텍스트 변환기(513)는 치환 규칙 생성기(112)에서 생성된 치환 정보 세트들(도 8의 51 내지 55)을 이용하여 원본 텍스트의 문자코드를 변환하여 암호화한다.
한편, 암호폰트 생성기(514)는 폰트를 변환하고 암호화한다. 전술한 암호화 장치(110)의 암호폰트 생성기(114)의 설명을 대신한다.
암호폰트 생성기(514)는 내부적으로 도 2 내지 도 7에서 설명된 각각의 치환 방식을 지원하는 문자간 1:1 치환 cmap 생성기(514a), 문자간 다중 치환 GSUB 생성기(514b), 문자-문자열간 치환 GSUB 생성기(514c), 문자열-문자간 치환 GSUB 생성기(514d), 문자열간 치환 GSUB 생성기(514e), 혼합 치환 GSUB 생성기(514f) 그리고 폰트 변환기(514g)를 하위 구성요소로 포함할 수 있다.
또한, 암호폰트 생성기(514)는 암호화된 폰트 파일을 저장하는 폰트 저장소(또는 폰트 파일 저장소)(514a)를 더 포함할 수 있다.
도 18의 구성도에서 폰트파일 저장소(514s)는 암호폰트 생성기(514)의 외부에 배치되어 있으나, 본 발명이 이에 한정되는 것은 아니며 암호폰트 생성기(514) 내에 폰트파일 저장소(514s)가 배치될 수 있다.
암호화 시스템(500)에서 폰트/텍스트가 입력되면 암호화 과정을 거쳐 변환된 암호화 폰트와 변환된 암호화 텍스트가 산출된다. 이는 시스템 내에 저장될 수도 있고 외부 장치의 요청으로 외부 장치로 암호화된 텍스트 및 암호화된 폰트가 전송될 수 있다.
정리하면 도 9 및 도 18에서 살펴본 암호화를 수행하는 장치 혹은 시스템의 구성은 다음과 같다.
폰트와 원문 텍스트와 상기 텍스트를 암호화하는 암호화 방법을 지시하는 식별정보를 제어기(501)가 변환 코드 생성기(511, 도 9의 111)에 입력한다.
그리고 변환 코드 생성기(511, 도 9의 111)는 원문 텍스트의 하나 이상의 문자를 식별 정보가 지시하는 암호화 방법에 따라 치환될 문자 코드 또는 문자열 코드에 대응하는 변환 코드를 생성한다. 여기서 바람직하게는 하나의 변환 코드가 생성될 수 있다. 그러나, 본 발명이 이에 한정되지는 않으며, 하나 이상, 예를 들어 둘 또는 셋 등의 변환 코드가 생성될 수도 있다.
그리고 치환 규칙 생성기(512, 도 9의 112)는 변환 코드에 대응하는 치환 규칙을 포함하는 치환 정보세트를 생성한다.
또한, 텍스트 변환기(513, 도 9의 113)는 치환 규칙에 따라 원문 텍스트의 하나 이상의 문자 코드를 변환하여 암호화 텍스트를 생성한다.
또한, 암호 폰트 생성기(514, 도 9의 114)는 치환 정보세트에 대응하여 폰트의 문자 코드 문자-도안 매핑 정보(cmap)와 변형 및 합자 정보(GSUB) 또는 도안 정보(glyf)를 변환하여 암호화한다.
각 구성 요소들이 모두 하나의 암호화 장치(110)에 포함될 수 있다. 이 경우, 암호화 장치(110)는 다른 장치와의 상호작용을 하지 않고도 암호화를 수행할 수 있다.
또는 각 구성 요소들이 다수의 장치에 분산될 수 있다. 예를 들어, 제어기(501), 변환 코드 생성기(511), 치환 규칙 생성기(512)는 제1암호화 장치에 포함되고, 또한 암호 폰트 생성기(514), 텍스트 변환기(513), 치환규칙 저장소(512s), 암호화 폰트 저장소(514s)는 제2암호화 장치에 포함될 수 있다. 이 경우, 암호화 시스템은 제1암호화 장치 및 제2암호화 장치를 포함한다.
도 19 및 도 20은 본 발명의 다른 실시예에 의한 암호화 시스템의 구성을 보여준다. 만약, 도 18의 과정에서 생성된 치환 규칙과 암호화 폰트가 이미 암호화 시스템(500a) 내에 있을 경우, 도 19의 암호화 시스템(500a)은 변환 코드 생성기(511) 및 치환 규칙 생성기(512), 암호 폰트 생성기(514) 없이도 암호화 텍스트를 생성할 수 있다.
따라서, 도 19 및 도 20에서 점선으로 구성된 구성요소는 암호화 시스템(500a)에서 제외될 수 있다. 대신 변환 코드가 미리 암호화 시스템(500a)내에 확보된 상태이다.
그 결과 제어기(501)가 입력받은 텍스트, 그리고 암호화 시스템(500a)에 저장된 변환 코드와 치환 규칙 저장서(512s)의 치환 규칙을 이용하면 텍스트 변환기(513)가 원문 텍스트를 암호화할 수 있다. 그 결과 변환된 암호화 텍스트가 산출된다.
도 19 및 도 20에서 암호화 폰트는 이미 암호화 시스템(500a)에 저장된 상태이다. 따라서, 별도의 치환 규칙 생성과 암호 폰트 생성 과정 없이 암호화 시스템(500a)은 빠른 시간 내에 암호화 텍스트와 암호화 폰트를 생성한다.
도 19 및 도 20은 폰트와 원문 텍스트를 입력받는 제어기(501)와 텍스트를 암호화하는데 필요한 변환 코드 및 치환 규칙 저장소에 저장된 치환 정보 세트를 이용하여 상기 원문 텍스트의 하나 이상의 문자 코드를 변환하여 암호화 텍스트를 생성하는 텍스트 변환기(513), 그리고 치환 정보세트에 대응하여 폰트의 문자 코드 문자-도안 매핑 정보(cmap)와 변형 및 합자 정보(GSUB) 또는 도안 정보(glyf)를 변환하여 암호화한 암호 폰트가 저장된 암호화 폰트 저장소(514s)를 포함한다.
치환 규칙 저장소(512s)에 저장되는 치환 정보 세트는 앞서 도 8에서 살펴본 바와 같다.
예를 들어, 치환 정보 세트는 52가 지시하는 바와 같이, 원문 텍스트를 구성하는 제1문자(원본 문자)에 대응하여 치환되는 제2문자(치환 문자) 또는 제3문자(치환 문자) 중 어느 하나의 문자를 지시하는 정보를 포함할 수 있다. 이때, 치환 조건 역시 치환 정보 세트에 포함된다.
예를 들어, 치환 정보 세트는 53이 지시하는 바와 같이, 원문 텍스트를 구성하는 제1문자(원본 문자)에 대응하여 치환되는 제1문자열(치환 문자열)을 구성하는 둘 이상의 문자를 지시하는 정보를 포함할 수 있다.
예를 들어, 치환 정보 세트는 54가 지시하는 바와 같이, 원문 텍스트를 구성하는 연속하는 둘 이상의 문자들로 구성된 제1문자열(원본 문자열)에 대응하여 치환되는 제4문자(치환 문자)를 지시하는 정보를 포함할 수 있다.
예를 들어, 치환 정보 세트는 55가 지시하는 바와 같이, 원문 텍스트를 구성하는 연속하는 둘 이상의 문자들로 구성된 제1문자열(원본 문자열)에 대응하여 치환되며 제1문자열과 상이한 제2문자열(치환 문자열)을 지시하는 정보를 포함할 수 있다. 이때, 문자열의 중간 치환 조건 역시 치환 정보 세트에 포함된다.
암호화 방법에 대해 정리하면 다음과 같다.
도 2 내지 도 4 및 도 11의 실시예는 원문 텍스트를 구성하는 제1문자에 대해 제2문자 또는 제3문자 중 어느 하나를 선택하여 암호화하는 암호화 방법이다. 이에 따라, 치환 규칙 생성기(112, 512)는 제1문자에 대응하여 치환되는 제2문자 또는 제3문자 중 어느 하나의 문자를 지시하는 정보를 생성한다. 이는 치환 규칙 생성기(112, 512)가 치환 정보세트를 생성하는 일 실시예이다.
그리고 텍스트 변환기(113, 513)는 원문 텍스트의 둘 이상의 제1문자들을 각각 제2문자 또는 제3문자 중 어느 하나를 선택하여 변환한다. 이때, 제1문자는 랜덤하게, 또는 위치나 전후 문자에 따라, 또는 순서에 따라 제2문자로 변환되거나 또는 제3문자로 변환될 수 있다. 이는 텍스트 변환기(113, 513)가 암호화 텍스트를 생성하는 일 실시예이다.
도 5 및 도 12의 실시예는 원문 텍스트를 구성하는 제1문자에 대해 둘 이상의 문자들로 구성된 제1문자열을 선택하여 암호화하는 암호화 방법이다. 이에 따라, 치환 규칙 생성기(112, 512)는 제1문자에 대응하여 치환되는 상기 제1문자열을 구성하는 둘 이상의 문자를 지시하는 정보를 생성한다. 이는 치환 규칙 생성기(112, 512)가 치환 정보세트를 생성하는 일 실시예이다.
그리고 텍스트 변환기(113, 513)는 원문 텍스트의 제1문자를 상기 제1문자열로 변환한다. 이는 텍스트 변환기(113, 513)가 암호화 텍스트를 생성하는 일 실시예이다.
도 6 및 도 13의 실시예는 원문 텍스트를 구성하는 연속하는 둘 이상의 문자들로 구성된 제1문자열에 대해 제1문자를 선택하여 암호화하는 암호화 방법이다. 이에 따라, 치환 규칙 생성기(112, 512)는 제1문자열에 대응하여 치환되는 상기 제1문자를 구성하는 하나의 문자를 지시하는 정보를 생성한다. 이는 치환 규칙 생성기(112, 512)가 치환 정보세트를 생성하는 일 실시예이다.
그리고 텍스트 변환기(113, 513)는 원문 텍스트의 제1문자열을 상기 제1문자로 변환한다. 이는 텍스트 변환기(113, 513)가 암호화 텍스트를 생성하는 일 실시예이다.
도 7 및 도 14의 실시예는 원문 텍스트를 구성하는 연속하는 둘 이상의 문자들로 구성된 제1문자열에 대해 상기 제1문자열과 적어도 하나 이상의 문자를 달리하는 제2문자열을 선택하여 암호화하는 암호화 방법이다. 이에 따라, 치환 규칙 생성기(112, 512)는 제1문자열에 대응하여 치환되는 상기 제2문자열을 구성하는 둘 이상의 문자를 지시하는 정보를 생성한다. 이는 치환 규칙 생성기(112, 512)가 치환 정보세트를 생성하는 일 실시예이다.
그리고 텍스트 변환기(113, 513)는 원문 텍스트의 제1문자열을 상기 제2문자열로 변환한다. 이는 텍스트 변환기(113, 513)가 암호화 텍스트를 생성하는 일 실시예이다.
특히, 앞서 살펴본 다양한 암호화 방식을 적용하면 문자코드간의 교환 규칙을 다양화하여 유추하기 어려운 더 높은 수준의 암호화가 가능하다. 또한, 문자코드뿐만 아니라 문자열간의 암호화가 가능하므로 암호화된 텍스트에서 원문을 복원하는 것이 어려워진다. 그리고, 문자간 다중 치환, 문자와 문자열간의 치환, 문자열과 문자간의 치환, 문자열간의 치환 방식의 새로운 4가지 방식의 문자 코드와 문자열 암호화 방법 및 이들의 혼용 사용은 암호화의 복잡도를 향상시킨다.
대신, 암호화된 텍스트를 별도의 복호화 과정 없이, 암호화된 폰트를 적용하여 원문의 텍스트를 재현할 수 있으므로, 강력하고 빠른 암호화 및 내용의 확인이 가능하다.
특히, 컴퓨팅 기술, 인공지능 기술, 빅데이터 기술이 발전하면서 인터넷 웹사이트에서 필요한 정보들을 자동화 수집 시스템(Bot 시스템)을 이용하여 손쉽게 획득할 수 있게 되었다. 인터넷에서 대량으로 획득한 문서들은 다양한 구문 해석 프로그램들을 이용하여 재분류하고 저장하여, 다양한 곳에서 사용되고 있다.
그런데, 이런 자동화 수집 시스템에서 수집되는 정보들 중 상당 수는 저작권 보호가 필요하지만, 대량의 수집된 정보에서 저작권에 대한 판별이 어렵고, 재분류되고 저장된 정보에서 그 출처를 파악하는 것은 더욱 어렵다.
블로그와 온라인 게시판, SNS 등에 작성한 글 역시 불특정 다수의 사람들에 의해 재공유되고 개인간 문자 메시지 서비스들을 통하여 전달되면서 그 출처를 파악하는 것이 어려운 실정이다. 이러한 저작권 보호이슈는 개인 뿐만 아니라 인터넷 뉴스 콘텐츠 서비스를 하는 각 언론사에게도 동일하게 발생하고 있다.
특히, 뉴스 콘텐츠의 원출처가 기록되고 전달되고 보호되어야, 뉴스 콘텐츠 소비자가 언론사의 원출처 서비스에 접속하여 콘텐츠를 소비할 수 있게 되고 해당 언론사에게는 콘텐츠 생산에 대한 정당한 보상이 돌아갈 수 있다.
또한, IoT 기술이 발전하면서 개인의 집과 사무실 내의 다양한 장치들이 인터넷에 연결되고 있다. 이 장치들은 중요한 개인정보들을 담고 있거나 그 정보에 접근할 수 있기 때문에, 매우 강력한 보호 수단이 필요한다.
그러나 IoT 장치 중 일부가 간단한 비밀번호만으로도 접근할 수 있는 등의 문제를 가지고 있다. 특히, 사용 후 버려진 IoT 장치들 내부에 저장된 정보들이 암호화되지 않았거나 IoT 장치를 제어하는 프로그램을 이용하여 손쉽게 정보를 취득할 수 있는 등의 문제가 발생하고 있다.
이처럼, 정보기술이 발전하면서 원저작자의 의도와는 달리 저작자의 텍스트 문서가 유통되거나 개인 정보와 같이 반드시 보호되어야 하는 정보들이 무분별하게 노출되는 것을 막는 방법이 더욱 필요해지고 있다.
텍스트 기반의 정보들은 복제와 저장이 용이하므로 더욱더 보호가 필요하지만, 암호화 방법이 복잡하거나 까다로운 경우가 많다. 그리고 기존의 암호화 기법들은 복호화 과정을 거쳐야만 원문의 텍스트 내용을 확인할 수가 있다. 이렇게 복호화되어 복원된 텍스트는 다시 노출의 위험을 갖는 한계를 가지고 있다.
본 발명의 실시예를 적용할 경우, 복원은 암호화된 원문을 재현하는 것으로 실제 암호화된 텍스트는 복호화되지 않는다. 즉 사용자는 텍스트를 재현된 형태로 보지만, 이를 복사 등의 방식으로 재사용할 수는 없다. 따라서, 텍스트의 암호화 및 재현은 텍스트의 저작권을 보호하는 효과를 발생한다.
특히, 오픈된 환경에서 문제가 되는 웹문서의 복사, 스크랩, 자동 문서 수집봇 (웹 크롤링) 등에 의한 수집에 대해서도 본 발명의 실시예들을 적용한다면 웹문서가 암호화된 상태를 유지하면서도 재현이 가능하기 때문에 문서 보호 효과가 크다.
지금까지 살펴본 실시예들을 적용할 경우, 암호화 수준을 높이고, 또한 웹사이트의 텍스트, IoT 등 장치들에 저장된 정보의 암호화를 가능하게 한다.
즉, 종래의 문서 보안은 파일 자체의 암호화 또는 텍스트의 문자 별 1:1 단일 대체로 인해 암호화의 한계가 있었다. 파일 자체의 암호화는 복호화 한 후에 컨텐츠의 유통을 제어할 수 없으며 문자별 1:1 단일 대체는 암호화 수준이 낮아 쉽게 복호화되는 문제가 있어왔다.
본 명세서에서 설명한 복합적 암호화 방법을 적용할 경우, 특히, 암호화된 폰트(보안 폰트)와 암호화된 텍스트(보안 텍스트)는 셋트로 구비될 경우에만 컨텐츠의 재현이 가능하므로 컨텐츠의 보호 효과를 높일 수 있다.
발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니며, 본 발명의 목적 범위 내에서 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 반도체 기록소자를 포함하는 저장매체를 포함한다. 또한 본 발명의 실시예를 구현하는 컴퓨터 프로그램은 외부의 장치를 통하여 실시간으로 전송되는 프로그램 모듈을 포함한다.
전술된 실시예는 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해되어야 하며, 본 발명의 범위는 전술된 상세한 설명보다는 후술될 특허청구범위에 의해 나타내어질 것이다. 그리고 이 특허청구범위의 의미 및 범위는 물론, 그 등가개념으로부터 도출되는 모든 변환 및 변형 가능한 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
110, 510, 510a: 암호화 장치 120: 복원 장치
300: 서버

Claims (17)

  1. 폰트와 원문 텍스트와 상기 텍스트를 암호화하는 암호화 방법을 지시하는 식별정보를 입력받아서 상기 원문 텍스트의 하나 이상의 문자를 상기 식별 정보가 지시하는 암호화 방법에 따라 치환될 문자 코드 또는 문자열 코드에 대응하는 변환 코드를 생성하는 변환 코드 생성기;
    상기 변환 코드에 대응하는 치환 규칙을 포함하는 치환 정보세트를 생성하는 치환 규칙 생성기;
    상기 치환 규칙에 따라 상기 원문 텍스트의 하나 이상의 문자 코드를 변환하여 암호화 텍스트를 생성하는 텍스트 변환기; 및
    상기 치환 정보세트에 대응하여 상기 폰트의 문자 코드 문자-도안 매핑 정보(cmap)와 변형 및 합자 정보(GSUB) 또는 도안 정보(glyf)를 변환하여 암호화하는 암호 폰트 생성기를 포함하며,
    상기 암호화 방법은 상기 원문 텍스트를 구성하는 제1문자에 대해 제2문자 또는 제3문자 중 어느 하나를 선택하여 암호화하는 암호화 방법이며,
    상기 치환 규칙 생성기는 상기 제1문자에 대응하여 치환되는 제2문자 또는 제3문자 중 어느 하나의 문자를 지시하는 정보를 생성하며,
    상기 텍스트 변환기는 상기 원문 텍스트의 둘 이상의 제1문자들을 각각 상기 제2문자 또는 상기 제3문자 중 어느 하나를 선택하여 변환하는, 암호화 장치.
  2. 폰트와 원문 텍스트와 상기 텍스트를 암호화하는 암호화 방법을 지시하는 식별정보를 입력받아서 상기 원문 텍스트의 하나 이상의 문자를 상기 식별 정보가 지시하는 암호화 방법에 따라 치환될 문자 코드 또는 문자열 코드에 대응하는 변환 코드를 생성하는 변환 코드 생성기;
    상기 변환 코드에 대응하는 치환 규칙을 포함하는 치환 정보세트를 생성하는 치환 규칙 생성기;
    상기 치환 규칙에 따라 상기 원문 텍스트의 하나 이상의 문자 코드를 변환하여 암호화 텍스트를 생성하는 텍스트 변환기; 및
    상기 치환 정보세트에 대응하여 상기 폰트의 문자 코드 문자-도안 매핑 정보(cmap)와 변형 및 합자 정보(GSUB) 또는 도안 정보(glyf)를 변환하여 암호화하는 암호 폰트 생성기를 포함하며,
    상기 암호화 방법은 상기 원문 텍스트를 구성하는 제1문자에 대해 둘 이상의 문자들로 구성된 제1문자열을 선택하여 암호화하는 암호화 방법이며,
    상기 치환 규칙 생성기는 상기 제1문자에 대응하여 치환되는 상기 제1문자열을 구성하는 둘 이상의 문자를 지시하는 정보를 생성하며,
    상기 텍스트 변환기는 상기 원문 텍스트의 둘 이상의 제1문자들을 상기 제1문자열로 변환하는, 암호화 장치.
  3. 폰트와 원문 텍스트와 상기 텍스트를 암호화하는 암호화 방법을 지시하는 식별정보를 입력받아서 상기 원문 텍스트의 하나 이상의 문자를 상기 식별 정보가 지시하는 암호화 방법에 따라 치환될 문자 코드 또는 문자열 코드에 대응하는 변환 코드를 생성하는 변환 코드 생성기;
    상기 변환 코드에 대응하는 치환 규칙을 포함하는 치환 정보세트를 생성하는 치환 규칙 생성기;
    상기 치환 규칙에 따라 상기 원문 텍스트의 하나 이상의 문자 코드를 변환하여 암호화 텍스트를 생성하는 텍스트 변환기; 및
    상기 치환 정보세트에 대응하여 상기 폰트의 문자 코드 문자-도안 매핑 정보(cmap)와 변형 및 합자 정보(GSUB) 또는 도안 정보(glyf)를 변환하여 암호화하는 암호 폰트 생성기를 포함하며,
    상기 암호화 방법은 상기 원문 텍스트를 구성하는 연속하는 둘 이상의 문자들로 구성된 제1문자열에 대해 제1문자를 선택하여 암호화하는 암호화 방법이며,
    상기 치환 규칙 생성기는 상기 제1문자열에 대응하여 치환되는 상기 제1문자를 구성하는 하나의 문자를 지시하는 정보를 생성하며,
    상기 텍스트 변환기는 상기 원문 텍스트의 제1문자열을 상기 제1문자로 변환하는, 암호화 장치.
  4. 폰트와 원문 텍스트와 상기 텍스트를 암호화하는 암호화 방법을 지시하는 식별정보를 입력받아서 상기 원문 텍스트의 하나 이상의 문자를 상기 식별 정보가 지시하는 암호화 방법에 따라 치환될 문자 코드 또는 문자열 코드에 대응하는 변환 코드를 생성하는 변환 코드 생성기;
    상기 변환 코드에 대응하는 치환 규칙을 포함하는 치환 정보세트를 생성하는 치환 규칙 생성기;
    상기 치환 규칙에 따라 상기 원문 텍스트의 하나 이상의 문자 코드를 변환하여 암호화 텍스트를 생성하는 텍스트 변환기; 및
    상기 치환 정보세트에 대응하여 상기 폰트의 문자 코드 문자-도안 매핑 정보(cmap)와 변형 및 합자 정보(GSUB) 또는 도안 정보(glyf)를 변환하여 암호화하는 암호 폰트 생성기를 포함하며.
    상기 암호화 방법은 상기 원문 텍스트를 구성하는 연속하는 둘 이상의 문자들로 구성된 제1문자열에 대해 상기 제1문자열과 적어도 하나 이상의 문자를 달리하는 제2문자열을 선택하여 암호화하는 암호화 방법이며,
    상기 치환 규칙 생성기는 상기 제1문자열에 대응하여 치환되는 상기 제2문자열을 구성하는 둘 이상의 문자를 지시하는 정보를 생성하며,
    상기 텍스트 변환기는 상기 원문 텍스트의 제1문자열을 상기 제2문자열로 변환하는, 암호화 장치.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 암호화 장치는 상기 폰트와 상기 원문 텍스트를 입력받는 제어기를 더 포함하며,
    상기 변환 코드는 상기 제어기가 입력받거나 또는 상기 변환 코드 생성기가 랜덤하게 생성하는, 암호화 장치.
  6. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 치환 정보세트를 저장하는 치환 규칙 저장소; 및
    상기 암호 폰트를 저장하는 암호 폰트 저장소를 더 포함하는, 암호화 장치.
  7. 암호화 장치의 변환 코드 생성기가 폰트와 원문 텍스트와 상기 텍스트를 암호화하는 암호화 방법을 지시하는 식별정보를 입력받아서 상기 원문 텍스트의 하나 이상의 문자를 상기 식별 정보가 지시하는 암호화 방법에 따라 치환될 문자 코드 또는 문자열 코드에 대응하는 변환 코드를 생성하는 단계;
    상기 암호화 장치의 치환 규칙 생성기가 상기 변환 코드에 대응하는 치환 규칙을 포함하는 치환 정보세트를 생성하는 단계;
    상기 암호화 장치의 텍스트 변환기가 상기 치환 규칙에 따라 상기 원문 텍스트의 하나 이상의 문자 코드를 변환하여 암호화 텍스트를 생성하는 단계; 및
    상기 암호화 장치의 암호 폰트 생성기가 상기 치환 정보세트에 대응하여 상기 폰트의 문자 코드 문자-도안 매핑 정보(cmap)와 변형 및 합자 정보(GSUB) 또는 도안 정보(glyf)를 변환하여 암호화하는 단계를 포함하며,
    상기 암호화 방법은 상기 원문 텍스트를 구성하는 제1문자에 대해 제2문자 또는 제3문자 중 어느 하나를 선택하여 암호화하는 암호화 방법이며,
    상기 치환 정보세트를 생성하는 단계는
    상기 치환 규칙 생성기가 상기 제1문자에 대응하여 치환되는 제2문자 또는 제3문자 중 어느 하나의 문자를 지시하는 정보를 생성하는 단계를 포함하며,
    상기 암호화 텍스트를 생성하는 단계는
    상기 텍스트 변환기가 상기 원문 텍스트의 둘 이상의 제1문자들을 각각 상기 제2문자 또는 상기 제3문자 중 어느 하나를 선택하여 변환하는 단계를 포함하는, 텍스트를 암호화하는 방법.
  8. 암호화 장치의 변환 코드 생성기가 폰트와 원문 텍스트와 상기 텍스트를 암호화하는 암호화 방법을 지시하는 식별정보를 입력받아서 상기 원문 텍스트의 하나 이상의 문자를 상기 식별 정보가 지시하는 암호화 방법에 따라 치환될 문자 코드 또는 문자열 코드에 대응하는 변환 코드를 생성하는 단계;
    상기 암호화 장치의 치환 규칙 생성기가 상기 변환 코드에 대응하는 치환 규칙을 포함하는 치환 정보세트를 생성하는 단계;
    상기 암호화 장치의 텍스트 변환기가 상기 치환 규칙에 따라 상기 원문 텍스트의 하나 이상의 문자 코드를 변환하여 암호화 텍스트를 생성하는 단계; 및
    상기 암호화 장치의 암호 폰트 생성기가 상기 치환 정보세트에 대응하여 상기 폰트의 문자 코드 문자-도안 매핑 정보(cmap)와 변형 및 합자 정보(GSUB) 또는 도안 정보(glyf)를 변환하여 암호화하는 단계를 포함하며,
    상기 암호화 방법은 상기 원문 텍스트를 구성하는 제1문자에 대해 둘 이상의 문자들로 구성된 제1문자열을 선택하여 암호화하는 암호화 방법이며,
    상기 치환 정보세트를 생성하는 단계는
    상기 치환 규칙 생성기가 상기 제1문자에 대응하여 치환되는 상기 제1문자열을 구성하는 둘 이상의 문자를 지시하는 정보를 생성하는 단계를 포함하며,
    상기 암호화 텍스트를 생성하는 단계는
    상기 텍스트 변환기가 상기 원문 텍스트의 제1문자를 상기 제1문자열로 변환하는 단계를 포함하는, 텍스트를 암호화하는 방법.
  9. 암호화 장치의 변환 코드 생성기가 폰트와 원문 텍스트와 상기 텍스트를 암호화하는 암호화 방법을 지시하는 식별정보를 입력받아서 상기 원문 텍스트의 하나 이상의 문자를 상기 식별 정보가 지시하는 암호화 방법에 따라 치환될 문자 코드 또는 문자열 코드에 대응하는 변환 코드를 생성하는 단계;
    상기 암호화 장치의 치환 규칙 생성기가 상기 변환 코드에 대응하는 치환 규칙을 포함하는 치환 정보세트를 생성하는 단계;
    상기 암호화 장치의 텍스트 변환기가 상기 치환 규칙에 따라 상기 원문 텍스트의 하나 이상의 문자 코드를 변환하여 암호화 텍스트를 생성하는 단계; 및
    상기 암호화 장치의 암호 폰트 생성기가 상기 치환 정보세트에 대응하여 상기 폰트의 문자 코드 문자-도안 매핑 정보(cmap)와 변형 및 합자 정보(GSUB) 또는 도안 정보(glyf)를 변환하여 암호화하는 단계를 포함하며,
    상기 암호화 방법은 상기 원문 텍스트를 구성하는 연속하는 둘 이상의 문자들로 구성된 제1문자열에 대해 제1문자를 선택하여 암호화하는 암호화 방법이며,
    상기 치환 정보세트를 생성하는 단계는
    상기 치환 규칙 생성기가 상기 제1문자열에 대응하여 치환되는 상기 제1문자를 구성하는 하나의 문자를 지시하는 정보를 생성하는 단계를 포함하며,
    상기 텍스트 변환기가 상기 원문 텍스트의 제1문자열을 상기 제1문자로 변환하는 단계를 포함하는, 텍스트를 암호화하는 방법.
  10. 암호화 장치의 변환 코드 생성기가 폰트와 원문 텍스트와 상기 텍스트를 암호화하는 암호화 방법을 지시하는 식별정보를 입력받아서 상기 원문 텍스트의 하나 이상의 문자를 상기 식별 정보가 지시하는 암호화 방법에 따라 치환될 문자 코드 또는 문자열 코드에 대응하는 변환 코드를 생성하는 단계;
    상기 암호화 장치의 치환 규칙 생성기가 상기 변환 코드에 대응하는 치환 규칙을 포함하는 치환 정보세트를 생성하는 단계;
    상기 암호화 장치의 텍스트 변환기가 상기 치환 규칙에 따라 상기 원문 텍스트의 하나 이상의 문자 코드를 변환하여 암호화 텍스트를 생성하는 단계; 및
    상기 암호화 장치의 암호 폰트 생성기가 상기 치환 정보세트에 대응하여 상기 폰트의 문자 코드 문자-도안 매핑 정보(cmap)와 변형 및 합자 정보(GSUB) 또는 도안 정보(glyf)를 변환하여 암호화하는 단계를 포함하며,
    상기 암호화 방법은 상기 원문 텍스트를 구성하는 연속하는 둘 이상의 문자들로 구성된 제1문자열에 대해 상기 제1문자열과 적어도 하나 이상의 문자를 달리하는 제2문자열을 선택하여 암호화하는 암호화 방법이며,
    상기 치환 정보세트를 생성하는 단계는
    상기 치환 규칙 생성기가 상기 제1문자열에 대응하여 치환되는 상기 제2문자열을 구성하는 둘 이상의 문자를 지시하는 정보를 포함하며,
    상기 텍스트 변환기가 상기 원문 텍스트의 제1문자열을 상기 제2문자열로 변환하는 단계를 포함하는, 텍스트를 암호화하는 방법.
  11. 폰트와 원문 텍스트를 입력받는 제어기;
    상기 텍스트를 암호화하는데 필요한 변환 코드 및 치환 규칙 저장소에 저장된 치환 정보 세트를 이용하여 상기 원문 텍스트의 하나 이상의 문자 코드를 변환하여 암호화 텍스트를 생성하는 텍스트 변환기; 및
    상기 치환 정보세트에 대응하여 상기 폰트의 문자 코드 문자-도안 매핑 정보(cmap)와 변형 및 합자 정보(GSUB) 또는 도안 정보(glyf)를 변환하여 암호화한 암호 폰트가 저장된 암호화 폰트 저장소를 포함하며,
    상기 치환 정보세트는
    상기 원문 텍스트를 구성하는 제1문자에 대응하여 치환되는 제2문자 또는 제3문자 중 어느 하나의 문자를 지시하는 정보를 포함하거나, 또는
    상기 제1문자에 대응하여 치환되는 제1문자열을 구성하는 둘 이상의 문자를 지시하는 정보를 포함하거나, 또는
    상기 원문 텍스트를 구성하는 연속하는 둘 이상의 문자들로 구성된 제1문자열에 대응하여 치환되는 제4문자를 지시하는 정보를 포함하거나, 또는
    상기 제1문자열에 대응하여 치환되며 상기 제1문자열과 상이한 제2문자열을 지시하는 정보를 포함하는, 암호화 장치.
  12. 복원 장치가 암호화 텍스트 및 상기 암호화 텍스트에 대응하는 암호화 폰트를 획득하는 단계; 및
    상기 암호화 폰트를 상기 암호화 텍스트에 적용하여 상기 암호화 폰트가 적용되기 전의 상기 암호화 텍스트의 제1문자와 상이하게 표시되는 제2문자를 포함하는 텍스트를 표시하는 단계를 포함하며,
    상기 복원 장치는 상기 암호화 텍스트의 제1문자에 대응하는 오픈타입 피쳐 기능을 변형 및 합자 정보(GSUB)에서 검색하는 단계를 더 포함하며,
    상기 기능이 검색된 경우, 상기 제1문자로 변환되었던 제2문자 또는 상기 제1문자로 변환되었던 제2문자열의 문자 코드에 대한 문자 도안을 문자 코드 문자-도안 매핑 정보(cmap)에서 검색하여 표시하는 단계; 또는
    상기 기능이 검색되지 않은 경우, 상기 제1문자의 문자 코드에 대응하는 문자 도안을 상기 문자 코드 문자-도안 매핑 정보(cmap)에서 검색하여 표시하는 단계 중 어느 하나를 포함하는, 암호화 텍스트를 복원하는 방법.
  13. 복원 장치가 암호화 텍스트 및 상기 암호화 텍스트에 대응하는 암호화 폰트를 획득하는 단계; 및
    상기 암호화 폰트를 상기 암호화 텍스트에 적용하여 상기 암호화 폰트가 적용되기 전의 상기 암호화 텍스트의 제1문자와 상이하게 표시되는 제2문자를 포함하는 텍스트를 표시하는 단계를 포함하며,
    상기 복원 장치는 상기 암호화 텍스트의 제1문자열을 구성하는 문자코드에 대응하는 오픈타입 피쳐 기능을 변형 및 합자 정보(GSUB)에서 검색하는 단계; 및
    상기 기능이 검색된 경우, 상기 제1문자열로 변환되었던 제2문자 또는 상기 제1문자열로 변환되었던 제2문자열의 문자 코드에 대응하는 문자도안을 문자 코드 문자-도안 매핑 정보(cmap)에서 검색하여 표시하는 단계를 더 포함하는, 암호화 텍스트를 복원하는 방법.
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
KR1020200052507A 2020-04-29 2020-04-29 텍스트를 암호화 하는 방법 및 이를 구현하는 장치 KR102401229B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200052507A KR102401229B1 (ko) 2020-04-29 2020-04-29 텍스트를 암호화 하는 방법 및 이를 구현하는 장치
PCT/KR2021/004140 WO2021221331A1 (ko) 2020-04-29 2021-04-02 텍스트를 암호화 하는 방법 및 이를 구현하는 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200052507A KR102401229B1 (ko) 2020-04-29 2020-04-29 텍스트를 암호화 하는 방법 및 이를 구현하는 장치

Publications (2)

Publication Number Publication Date
KR20210134135A KR20210134135A (ko) 2021-11-09
KR102401229B1 true KR102401229B1 (ko) 2022-05-25

Family

ID=78373632

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200052507A KR102401229B1 (ko) 2020-04-29 2020-04-29 텍스트를 암호화 하는 방법 및 이를 구현하는 장치

Country Status (2)

Country Link
KR (1) KR102401229B1 (ko)
WO (1) WO2021221331A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114244518B (zh) * 2021-11-16 2023-10-03 广东电网有限责任公司 数字签名混淆加密方法、装置、计算机设备、存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101321800B1 (ko) * 2011-09-02 2013-11-21 김상현 대표값 치환을 이용한 데이터 보호 방법 및 장치

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100920287B1 (ko) * 2007-06-01 2009-10-08 허영순 문서 보안 방법
WO2014002281A1 (ja) * 2012-06-29 2014-01-03 株式会社エス・ケイ・ケイ 文書処理システム、電子文書、文書処理方法及びプログラム
KR101785369B1 (ko) * 2016-02-04 2017-10-13 (주)폰트릭스 프로그램 폰트를 생성 및 출력하는 방법과 이를 구현하는 장치
KR101977128B1 (ko) * 2017-02-27 2019-05-10 주식회사 한컴시큐어 장문 텍스트열에 대한 고정 길이 암호화 장치 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101321800B1 (ko) * 2011-09-02 2013-11-21 김상현 대표값 치환을 이용한 데이터 보호 방법 및 장치

Also Published As

Publication number Publication date
WO2021221331A1 (ko) 2021-11-04
KR20210134135A (ko) 2021-11-09

Similar Documents

Publication Publication Date Title
JP7467456B2 (ja) ブロックチェーンネットワークを介するデータの効率的且つセキュアな処理、アクセス、及び送信のためのシステム及び方法
CN108090329B (zh) 一种对文本内容进行数字水印加密保护的方法及装置
CN101322136B (zh) 一种文档数据安全管理方法和***
US9237011B2 (en) Unique surrogate key generation using cryptographic hashing
KR100920287B1 (ko) 문서 보안 방법
CN1126014C (zh) 便携式电子书和分配文本信息的***
CN1979478B (zh) 文档处理***和文档处理方法
CN1979511B (zh) 一种文档数据安全管理***和方法
CN103119594A (zh) 可检索密码处理***
EP1965327A1 (en) A document data security management method and system
CN103543980A (zh) 数字数据处理的方法及装置
KR102401229B1 (ko) 텍스트를 암호화 하는 방법 및 이를 구현하는 장치
Rafat et al. Secure digital steganography for ASCII text documents
CN113468862A (zh) 区块链创建版式文件的方法、装置、电子设备及存储介质
CN104412255A (zh) 文本处理***、电子文本、文本处理方法以及程序
CN100507913C (zh) 一种文档处理方法及***
US8473516B2 (en) Computer storage apparatus for multi-tiered data security
CN114553393A (zh) 一种基于分层移位的汉字加密方法
Sadié et al. Two high capacity text steganography schemes based on color coding
CN1979479B (zh) 文档处理***和文档处理方法
JP6780428B2 (ja) 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置
JP2001043135A (ja) データ抽出方法及びデータ抽出プログラムを格納した記憶媒体
CN113360859B (zh) 基于Python解释器的加密文件安全控制方法和装置
JP2008294734A (ja) コンテンツ管理システム
Komiya et al. Memorability of Japanese Mnemonic Passwords

Legal Events

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