KR101428650B1 - 암호화 방법 및 복호화 방법 - Google Patents

암호화 방법 및 복호화 방법 Download PDF

Info

Publication number
KR101428650B1
KR101428650B1 KR1020140027448A KR20140027448A KR101428650B1 KR 101428650 B1 KR101428650 B1 KR 101428650B1 KR 1020140027448 A KR1020140027448 A KR 1020140027448A KR 20140027448 A KR20140027448 A KR 20140027448A KR 101428650 B1 KR101428650 B1 KR 101428650B1
Authority
KR
South Korea
Prior art keywords
characters
string
character
format
index
Prior art date
Application number
KR1020140027448A
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 KR1020140027448A priority Critical patent/KR101428650B1/ko
Application granted granted Critical
Publication of KR101428650B1 publication Critical patent/KR101428650B1/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/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation

Landscapes

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

Abstract

암호화 방법은 기 설정된 복수의 선택된 문자들 및 선택된 문자들에 각각 상응하는 색인값들을 포함하는 테이블을 메모리에 로딩하는 단계, 원문 문자열에 포함되는 문자들 중에서 선택된 문자들에 포함되지 않는 비포함 문자 및 원문 문자열에서 비포함 문자의 위치정보를 나타내는 오프셋을 결정하는 단계, 원문 문자열에서 비포함 문자를 삭제하여 정규화 문자열을 생성하는 단계, 정규화 문자열에 포함되는 문자들 각각을 테이블에 기초하여 상응하는 색인값으로 변환함으로써 색인변환수열을 생성하는 단계, 색인변환수열에 형식유지 암호화 알고리즘을 적용하여 색인변환수열에 포함되는 색인값들 각각이 테이블에 포함되는 색인값들 중 하나의 값으로 변환된 형식유지변환수열을 생성하는 단계, 형식유지변환수열에 포함되는 색인값들 각각을 테이블에 기초하여 상응하는 선택된 문자로 변환함으로써 형식유지변환문자열을 생성하는 단계, 및 비포함 문자를 오프셋에 기초하여 형식유지변환문자열 사이에 삽입함으로써 암호문 문자열을 생성하는 단계를 포함한다.

Description

암호화 방법 및 복호화 방법{METHOD OF ENCRYPTION AND METHOD OF DECRYPTION}
본 발명은 보안 시스템에 관한 것으로, 보다 상세하게는 암호화 방법 및 복호화 방법에 관한 것이다.
인터넷과 같이 원거리 통신기술을 이용하여 서비스를 제공하는 방식이 활성화됨에 따라, 대부분의 서비스 제공자는 서비스 이용자가 정당한 이용자인지를 확인하기 위해 서비스 이용자의 개인정보를 보관한다. 그러나, 최근 개인정보가 서비스 제공자의 데이터베이스에서 유출되는 사건들이 자주 발생하여 보안의 중요성이 부각되었다.
개인정보가 유출되어도 유출된 개인정보가 암호화되어 있다면 개인정보의 기밀성은 보장될 수 있다. 따라서, 데이터베이스는 보안을 위해 개인정보를 원문 형태 그대로 보관하지 않고, 원문을 암호화한 암호문 형태로 보관하고, 이를 위해 암호화된 개인정보를 부정한 방법으로 입수한 제3자가 상기 암호화된 개인정보를 복호화할 수 없도록 하는 암호화 및 복호화 방법들이 제시되었다. 나아가, 데이터베이스 관리의 효율성을 위해 데이터베이스가 암호문을 위한 새로운 테이블을 생성하지 않도록 원문과 암호문의 길이 및 형식을 통일하는 방식인 형식유지 암호화 방법(format-preserving encryption)이 제시되었다. 예를 들어, 형식유지 암호화 방법 중 하나인 FFX 모드(format-preserving feistel-based encryption mode)은 출력 가능한 아스키(ASCII) 문자열을 암호화 대상으로 하여 원문과 암호문의 길이 및 형식을 통일한다. 즉, FFX 양식은 영문 알파벳을 암호화 대상으로 하므로, 다국어를 지원하지 못한다는 문제점이 있다.
본 발명의 일 목적은 다국어를 지원하는 형식유지 암호화 방법을 제공하는 것이다.
본 발명의 다른 목적은 다국어를 지원하는 형식유지 복호화 방법을 제공하는 것이다.
다만, 본 발명의 목적은 상기 목적들로 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.
본 발명의 일 목적을 달성하기 위하여, 본 발명의 실시예들에 따른 암호화 방법은 기 설정된 복수의 선택된 문자들 및 상기 선택된 문자들에 각각 상응하는 색인값들을 포함하는 테이블을 메모리에 로딩하는 단계, 원문 문자열에 포함되는 문자들 중에서 상기 선택된 문자들에 포함되지 않는 비포함(OOR; Out Of Range) 문자 및 상기 원문 문자열에서 상기 비포함 문자의 위치정보를 나타내는 오프셋(offset)을 결정하는 단계, 상기 원문 문자열에서 상기 비포함 문자를 삭제하여 정규화 문자열을 생성하는 단계, 상기 정규화 문자열에 포함되는 문자들 각각을 상기 테이블에 기초하여 상응하는 상기 색인값으로 변환함으로써 색인변환수열을 생성하는 단계, 상기 색인변환수열에 형식유지(format-preserving) 암호화 알고리즘을 적용하여 상기 색인변환수열에 포함되는 상기 색인값들 각각이 상기 테이블에 포함되는 상기 색인값들 중 하나의 값으로 변환된 형식유지변환수열을 생성하는 단계, 상기 형식유지변환수열에 포함되는 상기 색인값들 각각을 상기 테이블에 기초하여 상응하는 상기 선택된 문자로 변환함으로써 형식유지변환문자열을 생성하는 단계, 및 상기 비포함 문자를 상기 오프셋에 기초하여 상기 형식유지변환문자열 사이에 삽입함으로써 암호문 문자열을 생성하는 단계를 포함한다.
일 실시예에 의하면, 상기 원문 문자열 및 상기 테이블에 포함되는 상기 선택된 문자들은 복수의 바이트(byte)들로 표현되는 멀티바이트 문자를 포함할 수 있다.
일 실시예에 의하면, 상기 선택된 문자들은 256개의 대표 문자들일 수 있다.
일 실시예에 의하면, 상기 색인값들은 0 이상 255 이하의 정수값을 가질 수 있다.
일 실시예에 의하면, 상기 선택된 문자들과 상기 색인값들은 일대일 대응할 수 있다.
일 실시예에 의하면, 상기 형식유지 암호화 알고리즘은 FFX 모드(format-preserving feistel-based encryption mode)로 동작할 수 있다.
일 실시예에 의하면, 상기 암호문 문자열을 생성하는 단계는 상기 오프셋이 나타내는 상기 비포함 문자의 위치 정보에 기초하여 순방향의 순서로 상기 오프셋에 상응하는 상기 비포함 문자를 상기 형식유지변환문자열 사이에 삽입하는 단계를 포함할 수 있다.
일 실시예에 의하면, 상기 암호문 문자열을 생성하는 단계는 상기 오프셋이 나타내는 상기 비포함 문자의 위치 정보에 기초하여 역방향의 순서로 상기 오프셋에 상응하는 상기 비포함 문자를 상기 형식유지변환문자열 사이에 삽입하는 단계를 포함할 수 있다.
일 실시예에 의하면, 상기 테이블은 상기 선택된 문자들 및 상기 색인값들에 대한 해시값(hash value)을 포함할 수 있고, 상기 암호화 방법은 상기 로딩된 테이블에 포함되는 상기 해시값에 기초하여 상기 로딩된 테이블의 무결성(integrity)을 검증하는 단계를 더 포함할 수 있다.
본 발명의 다른 목적을 달성하기 위하여, 본 발명의 실시예들에 따른 복호화 방법은 기 설정된 복수의 선택된 문자들 및 상기 선택된 문자들에 각각 상응하는 색인값들을 포함하는 테이블을 메모리에 로딩하는 단계, 암호문 문자열에 포함되는 문자들 중에서 상기 선택된 문자들에 포함되지 않는 비포함 문자 및 상기 암호문 문자열에서 상기 비포함 문자의 위치정보를 나타내는 오프셋을 결정하는 단계, 상기 암호문 문자열에서 상기 비포함 문자를 삭제하여 정규화 문자열을 생성하는 단계, 상기 정규화 문자열에 포함되는 문자들 각각을 상기 테이블에 기초하여 상응하는 상기 색인값으로 변환함으로써 색인변환수열을 생성하는 단계, 상기 색인변환수열에 형식유지 복호화 알고리즘을 적용하여 상기 색인변환수열에 포함되는 상기 색인값들 각각이 상기 테이블에 포함되는 상기 색인값들 중 하나의 값으로 변환된 형식유지변환수열을 생성하는 단계, 상기 형식유지변환수열에 포함되는 상기 색인값들 각각을 상기 테이블에 기초하여 상응하는 상기 선택된 문자로 변환함으로써 형식유지변환문자열을 생성하는 단계, 및 상기 비포함 문자를 상기 오프셋에 기초하여 상기 형식유지변환문자열 사이에 삽입함으로써 원문 문자열을 생성하는 단계를 포함한다.
본 발명의 실시예들에 따른 암호화 방법 및 복호화 방법은 다국어 문자를 포함하는 테이블을 이용하므로 다국어를 지원할 수 있고, 암호문이 원문과 동일한 포맷과 길이를 가지므로 형식유지 암호화 방법 및 복호화 방법을 제공할 수 있다.
다만, 본 발명의 효과는 상기 효과들로 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.
도 1은 본 발명의 실시예들에 따른 암호화 방법을 나타내는 순서도이다.
도 2a는 도 1의 암호화 방법과 관련하여 테이블의 일 예를 나타내는 도면이다.
도 2b는 도 1의 암호화 방법과 관련하여 테이블의 다른 예를 나타내는 도면이다.
도 3은 도 2a의 테이블을 이용하여 원문 문자열을 암호문 문자열로 암호화하는 과정을 나타내는 도면이다.
도 4는 본 발명의 실시예들에 따른 복호화 방법을 나타내는 순서도이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성 요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제 2 구성 요소도 제1 구성 요소로 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 실시예들을 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성 요소에 대해서는 동일하거나 유사한 참조 부호를 사용한다.
도 1은 본 발명의 실시예들에 따른 암호화 방법을 나타내는 순서도이다.
도 1을 참조하면, 본 발명의 실시예들에 따른 암호화 방법은 기 설정된 복수의 선택된 문자들 및 상기 선택된 문자들에 각각 상응하는 색인값들을 포함하는 테이블을 메모리에 로딩(S110)할 수 있다. 상기 암호화 방법은 원문 문자열에 포함되는 문자들 중에서 상기 선택된 문자들에 포함되지 않는 비포함(OOR; Out Of Range) 문자 및 원문 문자열에서 비포함 문자의 위치정보를 나타내는 오프셋(offset)을 결정(S130)할 수 있고, 원문 문자열에서 비포함 문자를 삭제하여 정규화 문자열을 생성(S140)할 수 있다. 상기 암호화 방법은 정규화 문자열에 포함되는 문자들 각각을 테이블에 기초하여 상응하는 색인값으로 변환함으로써 색인변환수열을 생성(S150)할 수 있고, 색인변환수열에 형식유지(format-preserving) 암호화 알고리즘을 적용하여 형식유지변환수열을 생성(S160)할 수 있다. 색인변환수열에 형식유지 암호화 알고리즘을 적용하는 경우, 색인변환수열에 포함되는 색인값들 각각은 테이블에 포함되는 색인값들 중의 하나의 값으로 변환되므로, 형식유지변환수열은 테이블에 포함되는 색인값들만으로 구성된 수열일 수 있다. 상기 암호화 방법은 형식유지변환수열에 포함되는 색인값들 각각을 테이블에 기초하여 상응하는 선택된 문자로 변환함으로써 형식유지변환문자열을 생성(S170)할 수 있고, 비포함 문자를 오프셋에 기초하여 형식유지변환문자열 사이에 삽입함으로써 암호문 문자열을 생성(S180)할 수 있다. 예시적인 실시예들에 있어서, 테이블은 선택된 문자들 및 색인값들에 대한 해시값(hash value)을 포함할 수 있고, 상기 암호화 방법은 로딩된 테이블에 포함되는 해시값에 기초하여 로딩된 테이블의 무결성(integrity)을 검증(S120)할 수 있다.
테이블이 메모리에 로딩(S110)됨에 있어서, 테이블은 기 설정된 복수의 선택된 문자들 및 선택된 문자들에 각각 상응하는 색인값들을 포함할 수 있다. 예시적인 일시예들에 있어서, 테이블은 선택된 문자들 및 색인값의 무결성을 검증하기 위한 해시값을 더 포함할 수 있다.
예시적인 실시예들에 있어서, 원문 문자열 및 테이블에 포함되는 선택된 문자들은 복수의 바이트(byte)들로 표현되는 멀티바이트 문자를 포함할 수 있다. 알파벳은 통상적으로 1 바이트로 표현될 수 있으나, 다국어 문자들을 표현하기 위해서는 복수의 바이트들로 표현되는 멀티바이트 문자가 필요할 수 있다. 예를 들어, 알파벳을 표현하기 위한 ANSI 표준인 아스키코드(ASCII code)는 1 바이트를 사용하여 문자들을 표현하므로, 256개 이상의 문자들을 표현할 수 없으나, 다국어 문자들을 표현하기 위한 유니코드(unicode)의 경우 알파벳 및 한글 등의 다국어 문자를 2 바이트로 표현하므로, 65536개의 문자들을 표현할 수 있다. 즉, 원문 문자열 및 테이블에 포함되는 선택된 문자들이 멀티바이트 문자를 포함할 수 있고, 상기 테이블을 이용하여 원문 문자열을 암호화하므로, 알파벳뿐만 아니라 다국어 문자로 된 원문 문자열이라도 암호화될 수 있다. 다만, 상기에서는 한글을 예시하였으나, 다국어 문자는 한글에 특별히 한정되지 않는다.
예시적인 실시예들에 있어서, 테이블에 포함되는 선택된 문자들은 256개의 대표 문자들일 수 있고, 색인값들은 0 이상 255 이하의 정수값을 가질 수 있으며, 상기 선택된 문자들과 상기 색인값들은 일대일 대응할 수 있다. 테이블의 크기가 증가할수록 더 많은 문자들에 대응하는 공간을 가질 수 있으나, 암호화에 필요한 시스템 자원도 동시에 증가하므로 시스템 구축 및 운용에 필요한 비용이 증가할 수 있다. 나아가, 선택된 문자들에 대한 정보를 암호화 방법을 수행하는 장치와 복호화 방법을 수행하는 장치만이 가짐으로써, 상기 정보를 가지지 못한 장치가 부정한 방법으로 암호문 문자열을 복호화할 수 없으므로, 암호문 문자열의 기밀성이 증가할 수 있다. 따라서, 효율적이고 기밀성이 증가된 암호화 시스템을 구축하기 위해 테이블의 크기를 적절한 값으로 설정할 수 있다.
그 결과, 테이블의 크기가 충분히 크지 못함에 따라 다국어 문자들 중 일 문자 체계(예를 들어, 한글)의 문자들에 모두 대응할 수 없는 경우, 선택된 문자들은 개인정보의 형식 및 종류에 따라 상대적으로 사용빈도가 높은 문자들을 포함하여 효율성 및 기밀성을 증가시킬 수 있다. 예를 들어, 개인정보가 주소일 경우, 선택된 문자들은 상대적으로 사용빈도가 높은 문자들인 '동', '서', '남', '북', '상', '중', '하', '시', '군', '구', 및 숫자('0', '1', '2', '3', '4', '5' 등) 등의 문자들을 포함할 수 있고, 선택된 문자들이 암호화 방법에 자주 사용될 수 있으므로 암호화 방법의 효율성 및 기밀성이 증가될 수 있다.
테이블이 포함하는 해시값은 동 테이블이 포함하는 선택된 문자들 및 색인값들에 기초하여 생성될 수 있다. 해시값은 테이블이 메모리에 로딩될 때 전송 중간에 발생할 수 있는 오류에 의해 테이블이 포함하는 선택된 문자들 및 색인값들이 변질되었는지 확인하기 위해 생성될 수 있다. 또는 해시값은 저장 장치에 저장된 테이블이 포함하는 선택된 문자들 및 색인값들이 해커에 의한 공격 등에 의해 변질되었는지 확인하기 위해 생성될 수 있다. 예시적인 실시예들에 있어서, 해시값은 해시 함수에 의해 생성될 수 있다. 해시 함수는 선택된 문자들 및 색인값들을 입력받아 해시값을 생성할 수 있다. 해시 함수는 선택된 문자들 및 색인값들로 구성된 데이터를 자르고 치환하거나 위치를 바꾸는 등의 방법을 사용하여 해시값을 생성할 수 있다. 해시 함수는 결정적이므로 생성된 해시 값이 상이할 경우 원래의 데이터(즉, 선택된 문자들 및 색인값들)도 상이할 수 있다. 테이블이 포함하는 선택된 문자, 색인값, 및 해시값의 일 실시예는 아래 도 2a 및 도 2b를 참조하여 보다 자세히 설명한다.
로딩된 테이블에 포함되는 해시값에 기초하여 로딩된 테이블의 무결성이 검증(S120)됨에 있어서, 로딩된 테이블이 포함하는 해시값은 로딩된 테이블이 포함하는 선택된 문자들 및 색인값들을 해시 함수에 입력하여 생성된 해시값과 비교될 수 있다. 두 해시값이 동일할 경우, 로딩된 테이블의 무결성은 인정될 수 있다. 두 해시값이 상이할 경우, 로딩된 테이블이 포함하는 선택된 문자들 및 색인값들이 변질되었거나, 로딩된 테이블이 포함하는 해시값이 변질되었을 수 있다. 어느 경우에 해당하더라도 로딩된 테이블은 변질되었을 가능성이 높으므로, 로딩된 테이블의 무결성은 인정되지 않을 수 있다. 따라서, 테이블은 다시 메모리에 로딩(S110)될 수 있다.
비포함 문자 및 비포함 문자의 오프셋이 결정(S130)됨에 있어서, 비포함 문자는 원문 문자열에 포함되는 문자들 중에서 로딩된 테이블이 포함하는 선택된 문자들에 포함되지 않는 문자일 수 있다. 오프셋은 원문 문자열에서 상기 비포함 문자의 위치정보를 나타낼 수 있다. 비포함 문자 및 비포함 문자의 오프셋은 임시로 별도 보관될 수 있고, 추후에 형식유지변환문자열 사이에 삽입됨으로써 암호문 문자열이 생성(S180)될 수 있다. 비포함 문자 및 비포함 문자의 오프셋을 결정(S130)하는 일 실시예는 아래 도 2a, 도 2b, 및 도 3을 참조하여 보다 자세히 설명한다.
정규화 문자열이 생성(S140)됨에 있어서, 정규화 문자열은 원문 문자열에서 비포함 문자를 삭제한 문자열일 수 있다. 예시적인 실시예에 있어서, 비포함 문자 및 비포함 문자의 오프셋이 결정(S130)됨과 동시에 정규화 문자열이 생성(S140)될 수 있다. 결과적으로, 정규화 문자열은 테이블의 선택된 문자들만을 포함할 수 있으므로, 원문 문자열에 포함된 문자들과 달리 정규화 문자열에 포함된 문자들은 상응하는 색인값들이 반드시 존재할 수 있다. 즉, 정규화 문자열이 생성(S140)됨으로써, 추후에 형식유지 암호화 알고리즘을 적용할 수 있는 정규적인 상태로 원문 문자열이 변환될 수 있다. 정규화 문자열이 생성(S140)되는 일 실시예는 아래 도 2a, 도 2b, 및 도 3을 참조하여 보다 자세히 설명한다.
색인변환수열이 생성(S150)됨에 있어서, 색인변환수열은 테이블이 포함하는 선택된 문자들만으로 구성되는 정규화 문자열의 문자들을 각각 테이블이 포함하는 상응하는 색인값들로 변환하여 생성되는 수열을 포함할 수 있다. 테이블의 선택된 문자들에 포함되지 않는 글자들은 상응하는 색인값들로 변환할 수 없으므로, 색인변환수열이 생성(S150)되기 전에 우선 정규화 문자열(S140)이 생성될 수 있다. 색인변환수열이 생성(S150)됨으로써, 기 설정된 범위 내의 숫자들로 구성된 수열(즉, 색인변환수열)을 일대일 대응 관계에 있는 동일한 범위 내의 숫자들로 구성된 수열(즉, 형식유지변환수열)로 변환시키는 것이 용이해질 수 있다. 색인변환수열이 생성(S150)되는 일 실시예는 아래 도 2a, 도 2b, 및 도 3을 참조하여 보다 자세히 설명한다.
색인변환수열에 형식유지 암호화 알고리즘을 적용하여 형식유지변환수열이 생성(S160)됨에 있어서, 색인변환수열에 포함되는 색인값들 각각은 테이블에 포함되는 색인값들 중의 하나의 값으로 변환되므로, 형식유지변환수열은 테이블이 포함하는 색인값들만으로 구성되는 수열일 수 있다. 즉, 색인변환수열과 형식유지변환수열은 일대일로 대응될 수 있다. 일반적으로, 상기 변환에 적용되는 형식유지 암호화 알고리즘(또는, 속성유지 암호화 알고리즘)이란 암호문의 형식(예를 들어, 암호문의 타입 또는 길이)을 원문의 형식(예를 들어, 원문의 타입 또는 길이)과 일치하도록 암호화하는 알고리즘을 의미한다. 형식유지 암호화 알고리즘을 적용할 경우, 암호문의 형식이 원문의 형식과 동일하므로, 원문을 관리하기 위해 생성한 테이블을 변경하지 않고도, 암호문이 상기 테이블을 사용할 수 있다는 장점이 있다.
예시적인 실시예들에 있어서, 형식유지 암호화 알고리즘은 FFX 모드로 동작할 수 있다. FFX 모드는 출력이 가능한 아스키 문자열을 암호화 대상으로 할 수 있으며, 암호화 대상의 문자 개수를 radix라고 표현할 수 있다. 예를 들어, FFX 모드에서 radix 256의 경우 256개의 문자들(즉, 1 바이트로 표현할 수 있는 문자들)을 암호화 대상으로 할 수 있다. 암호화 대상인 256개의 문자들은 0 내지 255의 숫자들로 서로 중복되지 않도록 각각 구성될 수 있고, FFX 모드로 동작되는 형식유지 암호화 알고리즘은 상기 암호화 대상인 256개의 문자들(즉, 0 내지 255의 숫자들)로 구성되는 입력 수열을 0 내지 255의 숫자들로 구성되는 출력 수열로 일대일 대응시킬 수 있다. 따라서, 상기 형식유지 암호화 알고리즘이 적용될 경우, 0 내지 255의 범위를 가지는 숫자들로 구성된 수열은 0 내지 255의 동일한 범위를 가지는 숫자들로 구성된 수열로 변환될 수 있다. 즉, 0 내지 255의 범위를 가지는 숫자들로 구성된 형식유지변환수열이 생성될 수 있다. 다만, 상기에서는 radix 256을 예시하였으나, 암호화 대상의 문자 개수는 256개에 특별히 한정되지 않는다. 형식유지변환수열이 생성(S160)되는 일 실시예는 아래 도 2a, 도 2b, 및 도 3을 참조하여 보다 자세히 설명한다.
형식유지변환문자열이 생성(S170)됨에 있어서, 형식유지변환문자열은 테이블이 포함하는 색인값들만으로 구성되는 형식유지변환수열의 숫자들을 각각 테이블이 포함하는 상응하는 선택된 문자들로 변환하여 생성되는 문자열을 포함할 수 있다. 형식유지변환문자열이 생성(S170)되는 일 실시예는 아래 도 2a, 도 2b, 및 도 3을 참조하여 보다 자세히 설명한다.
비포함 문자를 오프셋에 기초하여 형식유지변환문자열 사이에 삽입함으로써 암호문 문자열이 생성(S180)됨에 있어서, 암호문 문자열은 비포함 문자를 상기 비포함 문자 각각에 상응하는 오프셋에 기초하여 형식유지변환문자열 사이에 삽입함으로써 생성될 수 있다. 암호문 문자열이 생성(S180)됨으로써, 본 발명의 실시예들에 따른 암호화 방법은 종료될 수 있다. 일 실시예에 있어서, 오프셋이 나타내는 비포함 문자의 위치 정보에 기초하여 순방향의 순서로 오프셋에 상응하는 비포함 문자는 형식유지변환문자열 사이에 삽입될 수 있다. 예를 들어, 오프셋의 위치 정보가 5일 경우, 형식유지변환문자열의 순방향의 순서로 4번째 문자와 5번째 문자 사이에 상기 오프셋에 상응하는 비포함 문자는 삽입될 수 있다. 다른 실시예에 있어서, 오프셋이 나타내는 비포함 문자의 위치 정보에 기초하여 역방향의 순서로 오프셋에 상응하는 비포함 문자는 형식유지변환문자열 사이에 삽입될 수 있다. 예를 들어, 오프셋의 위치 정보가 7일 경우, 형식유지변환문자열의 역방향의 순서로 6번째 문자와 7번째 문자 사이에 상기 오프셋에 상응하는 비포함 문자는 삽입될 수 있다. 다만, 상기에서는 오프셋 위치 정보가 5일 경우와 7일 경우를 각각 예시하였으나, 오프셋 위치 정보는 5일 경우와 7일 경우에 특별히 한정되지 않는다. 이를 통해, 본 발명의 실시예들에 따른 암호화 방법은 다국어를 지원할 수 있고, 암호문이 원문과 동일한 포맷과 길이를 가질 수 있다. 암호문 문자열이 생성(S180)되는 일 실시예는 아래 도 2a, 도 2b, 및 도 3을 참조하여 보다 자세히 설명한다.
도 2a는 도 1의 암호화 방법과 관련하여 테이블의 일 예를 나타내는 도면이고, 도 2b는 도 1의 암호화 방법과 관련하여 테이블의 다른 예를 나타내는 도면이다.
도 2a를 참조하면, 한국어 문자를 지원하는 테이블이 도시되어 있다. 도 2a에 도시된 테이블은 색인값(INDEX) 및 선택된 문자(CHAR)를 포함할 수 있다. 색인값(INDEX)은 각각 선택된 문자(CHAR)와 상응할 수 있다. 예를 들어, 색인값 10은 선택된 문자 'A'와 상응할 수 있고, 색인값 103은 선택된 문자 '생'과 상응할 수 있다. 다만, 상기에서는 일부의 색인값만을 예시하였으나, 색인값은 상기에 특별히 한정되지 않는다.
도 2b를 참조하면, 일본어 문자를 지원하는 테이블이 도시되어 있다. 도 2b에 도시된 테이블은 색인값(INDEX), 선택된 문자(CHAR), 및 해시값(HASH VALUE)을 포함할 수 있다. 색인값(INDEX)은 각각 선택된 문자(CHAR)와 상응할 수 있다. 예를 들어, 색인값 136은 선택된 문자 '特'와 상응할 수 있고, 색인값 255는 선택된 문자 'の'과 상응할 수 있다. 해시값(HASH VALUE)은 색인값(INDEX) 및 선택된 문자(CHAR)에 대한 값으로, 도 1에서 상술한 바와 같이 해시값(HASH VALUE)에 기초하여 로딩된 테이블이 포함하는 색인값(INDEX) 및 선택된 문자(CHAR)의 무결성이 검증될 수 있다. 다만, 상기에서는 일부의 색인값만을 예시하였으나, 색인값은 상기 예시들에 특별히 한정되지 않는다.
도 3은 도 2a의 테이블을 이용하여 원문 문자열을 암호문 문자열로 암호화하는 과정을 나타내는 도면이다.
도 1 및 도 3을 참조하면, 원문 문자열을 암호문 문자열로 암호화하는 방법은 테이블을 메모리에 로딩(S110)할 수 있고, 테이블의 무결성을 검증(S120)할 수 있다. 원문 문자열(110)에서 비포함 문자 및 비포함 문자의 오프셋(130)을 결정(S130)할 수 있고, 원문 문자열(110)에서 비포함 문자를 삭제하여 정규화 문자열(120)을 생성(S140)할 수 있다. 정규화 문자열(120)에 포함되는 문자들 각각을 색인값으로 변환함으로써 색인변환수열(140)을 생성(S150)할 수 있고, 색인변환수열(140)에 형식유지 암호화 알고리즘을 적용하여 형식유지변환수열(150)을 생성(S160)할 수 있다. 형식유지변환수열(150)에 포함되는 색인값들 각각을 테이블에 기초하여 형식유지변환문자열(160)을 생성(S170)할 수 있고, 비포함 문자를 오프셋에 기초하여 형식유지변환문자열(160) 사이에 삽입함으로써 암호문 문자열(170)을 생성(S180)할 수 있다.
구체적으로, 도 2a의 테이블이 메모리에 로딩(S110)될 수 있고, 로딩된 도 2a의 테이블의 무결성이 검증(S120)될 수 있다. 로딩된 도 2a의 테이블에 기초하여 비포함 문자 및 비포함 문자의 오프셋이 결정(S130)되고, 정규화 문자열이 생성(S140)됨에 있어서, 'A훈민정음B-C한글D'가 원문 문자열(110)로서 입력된 경우, 원문 문자열(110)에서 도 2a의 테이블의 선택된 문자들에 포함되지 않는 비포함 문자인 '훈', '-', 및 '글'은 각각 상응하는 오프셋인 1, 6, 9와 함께 결정(S130)될 수 있다. 또한, 원문 문자열(110)에서 비포함 문자인 '훈', '-', 및 '글'을 삭제하여 정규화 문자열(120)이 생성(S140)될 수 있다. 생성된 정규화 문자열(120)이 포함하는 각 문자는 도 2a의 테이블에서 대응하는 색인값으로 변환됨으로써 색인변환수열(140)이 생성(S150)될 수 있다. 예를 들어, '민'은 254로, 'C'는 12로 각각 변환될 수 있다. 생성된 색인변환수열(140)은 형식유지 암호화 알고리즘(예를 들어, FFX 모드의 radix 256)이 적용되어 변환됨으로써 형식유지변환수열(150)이 생성(S160)될 수 있다. 예를 들어, 도 3에 도시된 바와 같이, 색인변환수열(140)인 '10 254 83 137 11 12 119 13'은 형식유지 암호화 알고리즘(예를 들어, FFX 모드의 radix 256)에 의해 형식유지변환수열(150)인 '162 103 51 44 56 184 95 17'로 변환될 수 있다. 생성된 형식유지변환수열(150)이 포함하는 각 숫자는 도 2a의 테이블에서 대응하는 선택된 문자로 변환됨으로써 형식유지변환문자열(160)이 생성(S170)될 수 있다. 예를 들어, 103은 '생'으로, 184는 '영'으로 각각 변환될 수 있다. 또한, 생성된 형식유지변환문자열(160) 사이에 기 결정된 비포함 문자 및 오프셋(130)을 이용하여 '훈', '-', 및 '글'을 각각 상응하는 오프셋인 1, 6, 9에 기초하여 순방향으로 삽입함으로써 암호문 문자열(170)이 생성(S180)될 수 있다. 다만, 상기에서는 문자열의 일부만을 예시하였으나, 암호화 방법의 적용은 상기 예시들에 특별히 한정되지 않는다.
도 4는 본 발명의 실시예들에 따른 복호화 방법을 나타내는 순서도이다.
도 4를 참조하면, 본 발명의 실시예들에 따른 복호화 방법은 기 설정된 복수의 선택된 문자들 및 상기 선택된 문자들에 각각 상응하는 색인값들을 포함하는 테이블을 메모리에 로딩(S210)할 수 있다. 상기 복호화 방법은 암호문 문자열에 포함되는 문자들 중에서 상기 선택된 문자들에 포함되지 않는 비포함 문자 및 암호문 문자열에서 비포함 문자의 위치정보를 나타내는 오프셋을 결정(S230)할 수 있고, 암호문 문자열에서 비포함 문자를 삭제하여 정규화 문자열을 생성(S240)할 수 있다. 상기 복호화 방법은 정규화 문자열에 포함되는 문자들 각각을 테이블에 기초하여 상응하는 색인값으로 변환함으로써 색인변환수열을 생성(S250)할 수 있고, 색인변환수열에 형식유지 복호화 알고리즘을 적용하여 형식유지변환수열을 생성(S260)할 수 있다. 색인변환수열에 형식유지 복호화 알고리즘을 적용하는 경우, 색인변환수열에 포함되는 색인값들 각각은 테이블에 포함되는 색인값들 중의 하나의 값으로 변환되므로, 형식유지변환수열은 테이블에 포함되는 색인값들만으로 구성된 수열일 수 있다. 상기 복호화 방법은 형식유지변환수열에 포함되는 색인값들 각각을 테이블에 기초하여 상응하는 선택된 문자로 변환함으로써 형식유지변환문자열을 생성(S270)할 수 있고, 비포함 문자를 오프셋에 기초하여 형식유지변환문자열 사이에 삽입함으로써 원문 문자열을 생성(S280)할 수 있다. 예시적인 실시예들에 있어서, 테이블은 선택된 문자들 및 색인값들에 대한 해시값(hash value)을 포함할 수 있고, 상기 복호화 방법은 로딩된 테이블에 포함되는 해시값에 기초하여 로딩된 테이블의 무결성(integrity)을 검증(S220)할 수 있다.
테이블이 메모리에 로딩(S210)됨에 있어서, 테이블은 기 설정된 복수의 선택된 문자들 및 선택된 문자들에 각각 상응하는 색인값들을 포함할 수 있다. 예시적인 일시예들에 있어서, 테이블은 선택된 문자들 및 색인값의 무결성을 검증하기 위한 해시값을 더 포함할 수 있다.
예시적인 실시예들에 있어서, 암호문 문자열 및 테이블에 포함되는 선택된 문자들은 복수의 바이트들로 표현되는 멀티바이트 문자를 포함할 수 있다. 알파벳은 통상적으로 1 바이트로 표현될 수 있으나, 다국어 문자들을 표현하기 위해서는 복수의 바이트들로 표현되는 멀티바이트 문자가 필요할 수 있다. 예를 들어, 알파벳을 표현하기 위한 ANSI 표준인 아스키코드는 1 바이트를 사용하여 문자들을 표현하므로, 256개 이상의 문자들을 표현할 수 없으나, 다국어 문자들을 표현하기 위한 유니코드의 경우 알파벳 및 한글 등의 다국어 문자를 2 바이트로 표현하므로, 65536개의 문자들을 표현할 수 있다. 즉, 암호문 문자열 및 테이블에 포함되는 선택된 문자들이 멀티바이트 문자를 포함할 수 있고, 상기 테이블을 이용하여 암호문 문자열을 복호화하므로, 알파벳뿐만 아니라 다국어 문자로 된 암호문 문자열이라도 복호화될 수 있다. 다만, 상기에서는 한글을 예시하였으나, 다국어 문자는 한글에 특별히 한정되지 않는다.
예시적인 실시예들에 있어서, 테이블에 포함되는 선택된 문자들은 256개의 대표 문자들일 수 있고, 색인값들은 0 이상 255 이하의 정수값을 가질 수 있으며, 상기 선택된 문자들과 상기 색인값들은 일대일 대응할 수 있다. 테이블의 크기가 증가할수록 더 많은 문자들에 대응하는 공간을 가질 수 있으나, 복호화에 필요한 시스템 자원도 동시에 증가하므로 시스템 구축 및 운용에 필요한 비용이 증가할 수 있다. 나아가, 선택된 문자들에 대한 정보를 암호화 방법을 수행하는 장치와 복호화 방법을 수행하는 장치만이 가짐으로써, 상기 정보를 가지지 못한 장치가 부정한 방법으로 암호문 문자열을 복호화할 수 없으므로, 암호문 문자열의 기밀성이 증가할 수 있다. 따라서, 효율적이고 기밀성이 증가된 복호화 시스템을 구축하기 위해 테이블의 크기를 적절한 값으로 설정할 수 있다.
그 결과, 테이블의 크기가 충분히 크지 못함에 따라 다국어 문자들 중 일 문자 체계(예를 들어, 한글)의 문자들에 모두 대응할 수 없는 경우, 선택된 문자들은 개인정보의 형식 및 종류에 따라 상대적으로 사용빈도가 높은 문자들을 포함하여 효율성 및 기밀성을 증가시킬 수 있다. 예를 들어, 개인정보가 주소일 경우, 선택된 문자들은 상대적으로 사용빈도가 높은 문자들인 '동', '서', '남', '북', '상', '중', '하', '시', '군', '구', 및 숫자('0', '1', '2', '3', '4', '5' 등) 등의 문자들을 포함할 수 있고, 선택된 문자들이 복호화 방법에 자주 사용될 수 있으므로 복호화 방법의 효율성 및 기밀성이 증가될 수 있다.
테이블이 포함하는 해시값은 동 테이블이 포함하는 선택된 문자들 및 색인값들에 기초하여 생성될 수 있다. 해시값은 테이블이 메모리에 로딩될 때 전송 중간에 발생할 수 있는 오류에 의해 테이블이 포함하는 선택된 문자들 및 색인값들이 변질되었는지 확인하기 위해 생성될 수 있다. 또는 해시값은 저장 장치에 저장된 테이블이 포함하는 선택된 문자들 및 색인값들이 해커에 의한 공격 등에 의해 변질되었는지 확인하기 위해 생성될 수 있다. 예시적인 실시예들에 있어서, 해시값은 해시 함수에 의해 생성될 수 있다. 해시 함수는 선택된 문자들 및 색인값들을 입력받아 해시값을 생성할 수 있다. 해시 함수는 선택된 문자들 및 색인값들로 구성된 데이터를 자르고 치환하거나 위치를 바꾸는 등의 방법을 사용하여 해시값을 생성할 수 있다. 해시 함수는 결정적이므로 생성된 해시 값이 상이할 경우 원래의 데이터(즉, 선택된 문자들 및 색인값들)도 상이할 수 있다.
로딩된 테이블에 포함되는 해시값에 기초하여 로딩된 테이블의 무결성이 검증(S220)됨에 있어서, 로딩된 테이블이 포함하는 해시값은 로딩된 테이블이 포함하는 선택된 문자들 및 색인값들을 해시 함수에 입력하여 생성된 해시값과 비교될 수 있다. 두 해시값이 동일할 경우, 로딩된 테이블의 무결성은 인정될 수 있다. 두 해시값이 상이할 경우, 로딩된 테이블이 포함하는 선택된 문자들 및 색인값들이 변질되었거나, 로딩된 테이블이 포함하는 해시값이 변질되었을 수 있다. 어느 경우에 해당하더라도 로딩된 테이블은 변질되었을 가능성이 높으므로, 로딩된 테이블의 무결성은 인정되지 않을 수 있다. 따라서, 테이블은 다시 메모리에 로딩(S210)될 수 있다.
비포함 문자 및 비포함 문자의 오프셋이 결정(S230)됨에 있어서, 비포함 문자는 암호문 문자열에 포함되는 문자들 중에서 로딩된 테이블이 포함하는 선택된 문자들에 포함되지 않는 문자일 수 있다. 오프셋은 암호문 문자열에서 상기 비포함 문자의 위치정보를 나타낼 수 있다. 비포함 문자 및 비포함 문자의 오프셋은 임시로 별도 보관될 수 있고, 추후에 형식유지변환문자열 사이에 삽입됨으로써 원문 문자열이 생성(S280)될 수 있다.
정규화 문자열이 생성(S240)됨에 있어서, 정규화 문자열은 암호문 문자열에서 비포함 문자를 삭제한 문자열일 수 있다. 예시적인 실시예에 있어서, 비포함 문자 및 비포함 문자의 오프셋이 결정(S230)됨과 동시에 정규화 문자열이 생성(S240)될 수 있다. 결과적으로, 정규화 문자열은 테이블의 선택된 문자들만을 포함할 수 있으므로, 암호문 문자열에 포함된 문자들과 달리 정규화 문자열에 포함된 문자들은 상응하는 색인값들이 반드시 존재할 수 있다. 즉, 정규화 문자열이 생성(S240)됨으로써, 추후에 형식유지 암호화 알고리즘을 적용할 수 있는 정규적인 상태로 암호문 문자열이 변환될 수 있다.
색인변환수열이 생성(S250)됨에 있어서, 색인변환수열은 테이블이 포함하는 선택된 문자들만으로 구성되는 정규화 문자열의 문자들을 각각 테이블이 포함하는 상응하는 색인값들로 변환하여 생성되는 수열을 포함할 수 있다. 테이블의 선택된 문자들에 포함되지 않는 글자들은 상응하는 색인값들로 변환할 수 없으므로, 색인변환수열이 생성(S250)되기 전에 우선 정규화 문자열(S240)이 생성될 수 있다. 색인변환수열이 생성(S250)됨으로써, 기 설정된 범위 내의 숫자들로 구성된 수열(즉, 색인변환수열)을 일대일 대응 관계에 있는 동일한 범위 내의 숫자들로 구성된 수열(즉, 형식유지변환수열)로 변환시키는 것이 용이해질 수 있다.
색인변환수열에 형식유지 복호화 알고리즘을 적용하여 형식유지변환수열이 생성(S260)됨에 있어서, 색인변환수열에 포함되는 색인값들 각각은 테이블에 포함되는 색인값들 중의 하나의 값으로 변환되므로, 형식유지변환수열은 테이블이 포함하는 색인값들만으로 구성되는 수열일 수 있다. 즉, 색인변환수열과 형식유지변환수열은 일대일로 대응될 수 있다. 일반적으로, 상기 변환에 적용되는 형식유지 복호화 알고리즘(또는, 속성유지 복호화 알고리즘)이란 원문의 형식(예를 들어, 원문의 타입 또는 길이)을 암호문의 형식(예를 들어, 암호문의 타입 또는 길이)과 일치하도록 복호화하는 알고리즘을 의미한다. 형식유지 복호화 알고리즘을 적용할 경우, 원문의 형식이 암호문의 형식과 동일하므로, 암호문을 관리하기 위해 생성한 테이블을 변경하지 않고도, 원문이 상기 테이블을 사용할 수 있다는 장점이 있다.
예시적인 실시예들에 있어서, 형식유지 복호화 알고리즘은 FFX 모드로 동작할 수 있다. FFX 모드는 출력이 가능한 아스키 문자열을 복호화 대상으로 할 수 있으며, 복호화 대상의 문자 개수를 radix라고 표현할 수 있다. 예를 들어, FFX 모드에서 radix 256의 경우 256개의 문자들(즉, 1 바이트로 표현할 수 있는 문자들)을 복호화 대상으로 할 수 있다. 복호화 대상인 256개의 문자들은 0 내지 255의 숫자들로 서로 중복되지 않도록 각각 구성될 수 있고, FFX 모드로 동작되는 형식유지 복호화 알고리즘은 상기 복호화 대상인 256개의 문자들(즉, 0 내지 255의 숫자들)로 구성되는 입력 수열을 0 내지 255의 숫자들로 구성되는 출력 수열로 일대일 대응시킬 수 있다. 따라서, 상기 형식유지 복호화 알고리즘이 적용될 경우, 0 내지 255의 범위를 가지는 숫자들로 구성된 수열은 0 내지 255의 동일한 범위를 가지는 숫자들로 구성된 수열로 변환될 수 있다. 즉, 0 내지 255의 범위를 가지는 숫자들로 구성된 형식유지변환수열이 생성될 수 있다. 다만, 상기에서는 radix 256을 예시하였으나, 복호화 대상의 문자 개수는 256개에 특별히 한정되지 않는다.
형식유지변환문자열이 생성(S270)됨에 있어서, 형식유지변환문자열은 테이블이 포함하는 색인값들만으로 구성되는 형식유지변환수열의 숫자들을 각각 테이블이 포함하는 상응하는 선택된 문자들로 변환하여 생성되는 문자열을 포함할 수 있다.
비포함 문자를 오프셋에 기초하여 형식유지변환문자열 사이에 삽입함으로써 원문 문자열이 생성(S280)됨에 있어서, 원문 문자열은 비포함 문자를 상기 비포함 문자 각각에 상응하는 오프셋에 기초하여 형식유지변환문자열 사이에 삽입함으로써 생성될 수 있다. 원문 문자열이 생성(S280)됨으로써, 본 발명의 실시예들에 따른 복호화 방법은 종료될 수 있다. 일 실시예에 있어서, 오프셋이 나타내는 비포함 문자의 위치 정보에 기초하여 순방향의 순서로 오프셋에 상응하는 비포함 문자는 형식유지변환문자열 사이에 삽입될 수 있다. 예를 들어, 오프셋의 위치 정보가 5일 경우, 형식유지변환문자열의 순방향의 순서로 4번째 문자와 5번째 문자 사이에 상기 오프셋에 상응하는 비포함 문자는 삽입될 수 있다. 다른 실시예에 있어서, 오프셋이 나타내는 비포함 문자의 위치 정보에 기초하여 역방향의 순서로 오프셋에 상응하는 비포함 문자는 형식유지변환문자열 사이에 삽입될 수 있다. 예를 들어, 오프셋의 위치 정보가 7일 경우, 형식유지변환문자열의 역방향의 순서로 6번째 문자와 7번째 문자 사이에 상기 오프셋에 상응하는 비포함 문자는 삽입될 수 있다. 다만, 상기에서는 오프셋 위치 정보가 5일 경우와 7일 경우를 각각 예시하였으나, 오프셋 위치 정보는 5일 경우와 7일 경우에 특별히 한정되지 않는다. 이를 통해, 본 발명의 실시예들에 따른 복호화 방법은 다국어를 지원할 수 있고, 원문이 암호문과 동일한 포맷과 길이를 가질 수 있다.
이상, 본 발명의 실시예들에 따른 암호화 방법 및 복호화 방법에 대하여 도면을 참조하여 설명하였지만, 상기 설명은 예시적인 것으로서 본 발명의 기술적 사상을 벗어나지 않는 범위에서 해당 기술 분야에서 통상의 지식을 가진 자에 의하여 수정 및 변경될 수 있을 것이다. 예를 들어, 상기에서는 다국어 문자로써 한글과 일본어 문자를 예시하여 설명하였으나, 다국어 문자의 종류는 이에 한정되는 것이 아니다.
본 발명은 중요한 정보를 암호화 및 복호화하는 시스템에 다양하게 적용될 수 있다. 예를 들어, 본 발명은 인터넷 서비스 계정 생성, 본인 확인 서비스, 개인정보 처리 서비스, 및 정보 보안 서비스 등에 적용될 수 있다.
상기에서는 본 발명의 실시예들을 참조하여 설명하였지만, 해당 기술분야에서 통상의 지식을 가진 자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.
110: 원문 문자열
120: 정규화 문자열
130: 오프셋
140: 색인변환수열
150: 형식유지변환수열
160: 형식유지변환문자열
170: 암호문 문자열
INDEX: 색인값
CHAR: 선택된 문자

Claims (10)

  1. 기 설정된 복수의 선택된 문자들 및 상기 선택된 문자들에 각각 상응하는 색인값들을 포함하는 테이블을 메모리에 로딩하는 단계;
    원문 문자열에 포함되는 문자들 중에서 상기 선택된 문자들에 포함되지 않는 비포함(OOR; Out Of Range) 문자 및 상기 원문 문자열에서 상기 비포함 문자의 위치정보를 나타내는 오프셋(offset)을 결정하는 단계;
    상기 원문 문자열에서 상기 비포함 문자를 삭제하여 정규화 문자열을 생성하는 단계;
    상기 정규화 문자열에 포함되는 문자들 각각을 상기 테이블에 기초하여 상응하는 상기 색인값으로 변환함으로써 색인변환수열을 생성하는 단계;
    상기 색인변환수열에 형식유지(format-preserving) 암호화 알고리즘을 적용하여 상기 색인변환수열에 포함되는 상기 색인값들 각각이 상기 테이블에 포함되는 상기 색인값들 중 하나의 값으로 변환된 형식유지변환수열을 생성하는 단계;
    상기 형식유지변환수열에 포함되는 상기 색인값들 각각을 상기 테이블에 기초하여 상응하는 상기 선택된 문자로 변환함으로써 형식유지변환문자열을 생성하는 단계; 및
    상기 비포함 문자를 상기 오프셋에 기초하여 상기 형식유지변환문자열 사이에 삽입함으로써 암호문 문자열을 생성하는 단계를 포함하는 암호화 방법.
  2. 제 1 항에 있어서, 상기 원문 문자열 및 상기 테이블에 포함되는 상기 선택된 문자들은 복수의 바이트(byte)들로 표현되는 멀티바이트 문자를 포함하는 것을 특징으로 하는 암호화 방법.
  3. 제 1 항에 있어서, 상기 선택된 문자들은 256개의 대표 문자들인 것을 특징으로 하는 암호화 방법.
  4. 제 3 항에 있어서, 상기 색인값들은 0 이상 255 이하의 정수값을 가지는 것을 특징으로 하는 암호화 방법.
  5. 제 4 항에 있어서, 상기 선택된 문자들과 상기 색인값들은 일대일 대응하는 것을 특징으로 하는 암호화 방법.
  6. 제 1 항에 있어서, 상기 형식유지 암호화 알고리즘은 FFX 모드(format-preserving feistel-based encryption mode)로 동작하는 것을 특징으로 하는 암호화 방법.
  7. 제 1 항에 있어서, 상기 암호문 문자열을 생성하는 단계는,
    상기 오프셋이 나타내는 상기 비포함 문자의 위치 정보에 기초하여 순방향의 순서로 상기 오프셋에 상응하는 상기 비포함 문자를 상기 형식유지변환문자열 사이에 삽입하는 단계를 포함하는 것을 특징으로 하는 암호화 방법.
  8. 제 1 항에 있어서, 상기 암호문 문자열을 생성하는 단계는,
    상기 오프셋이 나타내는 상기 비포함 문자의 위치 정보에 기초하여 역방향의 순서로 상기 오프셋에 상응하는 상기 비포함 문자를 상기 형식유지변환문자열 사이에 삽입하는 단계를 포함하는 것을 특징으로 하는 암호화 방법.
  9. 제 1 항에 있어서, 상기 테이블은 상기 선택된 문자들 및 상기 색인값들에 대한 해시값(hash value)을 포함하고,
    상기 로딩된 테이블에 포함되는 상기 해시값에 기초하여 상기 로딩된 테이블의 무결성(integrity)을 검증하는 단계를 더 포함하는 것을 특징으로 하는 암호화 방법.
  10. 기 설정된 복수의 선택된 문자들 및 상기 선택된 문자들에 각각 상응하는 색인값들을 포함하는 테이블을 메모리에 로딩하는 단계;
    암호문 문자열에 포함되는 문자들 중에서 상기 선택된 문자들에 포함되지 않는 비포함 문자 및 상기 암호문 문자열에서 상기 비포함 문자의 위치정보를 나타내는 오프셋을 결정하는 단계;
    상기 암호문 문자열에서 상기 비포함 문자를 삭제하여 정규화 문자열을 생성하는 단계;
    상기 정규화 문자열에 포함되는 문자들 각각을 상기 테이블에 기초하여 상응하는 상기 색인값으로 변환함으로써 색인변환수열을 생성하는 단계;
    상기 색인변환수열에 형식유지 복호화 알고리즘을 적용하여 상기 색인변환수열에 포함되는 상기 색인값들 각각이 상기 테이블에 포함되는 상기 색인값들 중 하나의 값으로 변환된 형식유지변환수열을 생성하는 단계;
    상기 형식유지변환수열에 포함되는 상기 색인값들 각각을 상기 테이블에 기초하여 상응하는 상기 선택된 문자로 변환함으로써 형식유지변환문자열을 생성하는 단계; 및
    상기 비포함 문자를 상기 오프셋에 기초하여 상기 형식유지변환문자열 사이에 삽입함으로써 원문 문자열을 생성하는 단계를 포함하는 복호화 방법.
KR1020140027448A 2014-03-07 2014-03-07 암호화 방법 및 복호화 방법 KR101428650B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140027448A KR101428650B1 (ko) 2014-03-07 2014-03-07 암호화 방법 및 복호화 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140027448A KR101428650B1 (ko) 2014-03-07 2014-03-07 암호화 방법 및 복호화 방법

Publications (1)

Publication Number Publication Date
KR101428650B1 true KR101428650B1 (ko) 2014-08-13

Family

ID=51750040

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140027448A KR101428650B1 (ko) 2014-03-07 2014-03-07 암호화 방법 및 복호화 방법

Country Status (1)

Country Link
KR (1) KR101428650B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017003051A1 (ko) * 2015-07-01 2017-01-05 주식회사 이노스코리아 랜덤하면서 유일한 코드를 생성하는 전자 장치 및 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR850000751B1 (ko) * 1980-12-05 1985-05-24 가부시기 가이샤 히다찌 세이사꾸쇼 문자 패턴의 제어장치
JP2008152059A (ja) * 2006-12-19 2008-07-03 Fujitsu Broad Solution & Consulting Inc 暗号処理プログラム、暗号処理方法および暗号処理装置
JP2010166228A (ja) * 2009-01-14 2010-07-29 Nec Corp 分散型秘匿化データ統合装置、分散型秘匿化データ統合方法および分散型秘匿化データ統合用プログラム
KR101282653B1 (ko) * 2013-03-04 2013-07-12 소프트포럼 주식회사 데이터 치환 암호화 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR850000751B1 (ko) * 1980-12-05 1985-05-24 가부시기 가이샤 히다찌 세이사꾸쇼 문자 패턴의 제어장치
JP2008152059A (ja) * 2006-12-19 2008-07-03 Fujitsu Broad Solution & Consulting Inc 暗号処理プログラム、暗号処理方法および暗号処理装置
JP2010166228A (ja) * 2009-01-14 2010-07-29 Nec Corp 分散型秘匿化データ統合装置、分散型秘匿化データ統合方法および分散型秘匿化データ統合用プログラム
KR101282653B1 (ko) * 2013-03-04 2013-07-12 소프트포럼 주식회사 데이터 치환 암호화 장치 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017003051A1 (ko) * 2015-07-01 2017-01-05 주식회사 이노스코리아 랜덤하면서 유일한 코드를 생성하는 전자 장치 및 방법

Similar Documents

Publication Publication Date Title
CN106788995B (zh) 文件加密方法及装置
KR102219476B1 (ko) 데이터를 암호화하는 방법 및 그를 위한 장치
CN110224999B (zh) 信息交互方法、装置及存储介质
US8874932B2 (en) Method for order invariant correlated encrypting of data and SQL queries for maintaining data privacy and securely resolving customer defects
CN104283668B (zh) 基于移动终端获得应用密码的方法及装置
US10541982B1 (en) Techniques for protecting electronic data
JP6346942B2 (ja) パスワードへの攻撃を阻害すること
US11902417B2 (en) Computer-implemented method of performing format-preserving encryption of a data object of variable size
CN111832056A (zh) 用于生成二维码的方法和系统
CN110704854B (zh) 针对文本数据保留格式的流式加密方法
CN103543980A (zh) 数字数据处理的方法及装置
Geetha et al. Tamilian cryptography: an efficient hybrid symmetric key encryption algorithm
CN103873250A (zh) 一种密文生成方法、密文解密方法及加密解密装置
KR102445811B1 (ko) 컴퓨터 보안, 가변 단어-길이 인코딩 및 가변 길이 디코딩을 향상시키기 위한 기술들
US9798721B2 (en) Innovative method for text encodation in quick response code
US8462948B2 (en) System and method for protecting data of mobile phone
Rafat et al. Secure digital steganography for ASCII text documents
KR100876525B1 (ko) 다국어 텍스트 문자열 암호화를 위한 대칭키 암호 알고리즘보완 방법
KR101428650B1 (ko) 암호화 방법 및 복호화 방법
CN111934987A (zh) 一种针对手机企业微信的数据提取方法,系统以及存储介质
CN111104693A (zh) 一种Android平台软件数据破解方法、终端设备及存储介质
US20170063533A1 (en) Complex format-preserving tokenization scheme
KR20110073227A (ko) 개인 정보를 순서 정보와 내용 정보로 분리하여 암호화하고 합성하는 방법, 장치,서버 및 기록 매체
CN108985109A (zh) 一种数据存储方法及装置
CN107533617B (zh) 服务器装置、信息管理系统、信息管理方法以及计算机程序

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee