KR101428648B1 - 블록 토큰 기반의 암호화 방법 및 블록 토큰 기반의 복호화 방법 - Google Patents
블록 토큰 기반의 암호화 방법 및 블록 토큰 기반의 복호화 방법 Download PDFInfo
- Publication number
- KR101428648B1 KR101428648B1 KR1020140011501A KR20140011501A KR101428648B1 KR 101428648 B1 KR101428648 B1 KR 101428648B1 KR 1020140011501 A KR1020140011501 A KR 1020140011501A KR 20140011501 A KR20140011501 A KR 20140011501A KR 101428648 B1 KR101428648 B1 KR 101428648B1
- Authority
- KR
- South Korea
- Prior art keywords
- token
- block
- ciphertexts
- original
- divided
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
Abstract
블록 토큰 기반의 암호화 방법에서, N자리 내지 (N+M)자리의 모든 숫자열들을 암호화한 원문 암호문들 및 N자리 내지 (N+M)자리의 모든 숫자열들 각각에 상응하는 토큰들을 암호화한 토큰 암호문들을 서로 연관시켜 저장하는 토큰 이미지 파일을 생성하고, 원문 숫자열을 N자리 내지 (N+M)자리의 숫자열들로 분할하여 분할 원문들을 생성하고, 분할 원문들 각각을 암호화하여 분할 원문 암호문들을 생성하고, 토큰 이미지 파일로부터 분할 원문 암호문들 각각에 상응하는 분할 토큰 암호문들을 독출하고, 분할 토큰 암호문들을 복호화하여 분할 토큰들을 생성하고, 분할 토큰들을 조합하여 원문 숫자열에 상응하는 보안 토큰을 생성한다.
Description
본 발명은 암호화 방법 및 복호화 방법에 관한 것으로, 보다 상세하게는 블록 토큰 기반의 암호화 방법 및 블록 토큰 기반의 복호화 방법에 관한 것이다.
데이터베이스 관리 시스템에서 테이블 내의 필드 데이터를 일반적인 암호화 알고리즘을 사용하여 암호화하는 경우, 원문 데이터는 문자열들로 구성되는 텍스트(text) 포맷을 갖는데 반해, 암호화된 데이터는 이진수들로 구성되는 바이너리(binary) 포맷을 갖게 된다. 따라서 테이블의 각각의 필드의 타입 및 길이의 변경 없이는 암호화된 데이터를 원래의 테이블에 저장할 수 없다.
원문 데이터의 포맷과 길이의 변화 없이 원문 데이터를 암호화하는 기술로서 토큰화 기술이 알려져 있다. 어플리케이션에서 원문 데이터와 일대일로 매핑되는 토큰을 생성하기 위해서는 별도의 토큰 서버에 원문 데이터를 제공하고, 토큰 서버로부터 원문 데이터에 상응하는 토큰을 수신하는 과정이 필요하다.
이와 같이, 토큰 생성 과정에서 어플리케이션과 토큰 서버 사이에 데이터 통신이 수행되므로, 대용량의 데이터에 대한 토큰을 생성하는 경우 어플리케이션과 토큰 서버 사이의 통신 오버헤드로 인해 어플리케이션의 동작 속도가 늦어지는 문제점이 있다. 또한, 토큰 서버에 장애가 발생하는 경우, 어플리케이션은 암호화 동작을 수행할 수 없는 문제점이 있다.
이에 따라, 본 발명의 일 목적은 암호화 과정 및 복호화 과정에서 어플리케이션과 토큰 서버 사이의 통신 오버헤드를 줄일 수 있고, 토큰 서버에 장애가 발생한 경우에도 암복호화 동작을 수행할 수 있는 블록 토큰 기반의 암호화 방법 및 블록 토큰 기반의 복호화 방법을 제공하는데 있다.
상술한 본 발명의 일 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 블록 토큰 기반의 암호화 방법에서, N자리 내지 (N+M)자리의 모든 숫자열들을 암호화한 원문 암호문들 및 상기 N자리 내지 (N+M)자리의 모든 숫자열들 각각에 상응하는 토큰들을 암호화한 토큰 암호문들을 서로 연관시켜 저장하는 토큰 이미지 파일을 생성하고, 원문 숫자열을 N자리 내지 (N+M)자리의 숫자열들로 분할하여 분할 원문들을 생성하고, 상기 분할 원문들 각각을 암호화하여 분할 원문 암호문들을 생성하고, 상기 토큰 이미지 파일로부터 상기 분할 원문 암호문들 각각에 상응하는 분할 토큰 암호문들을 독출하고, 상기 분할 토큰 암호문들을 복호화하여 분할 토큰들을 생성하고, 상기 분할 토큰들을 조합하여 상기 원문 숫자열에 상응하는 보안 토큰을 생성한다.
일 실시예에 있어서, 상기 토큰 이미지 파일을 생성하는 단계는, K(K는 N 이상 (N+M) 이하의 정수)자리의 모든 숫자열들 각각에 상응하는 K-블록 토큰들을 생성하는 단계, 상기 K자리의 모든 숫자열들 각각을 암호화하여 K-블록 원문 암호문들을 생성하는 단계, 상기 K-블록 토큰들 각각을 암호화하여 K-블록 토큰 암호문들을 생성하는 단계, 서로 대응되는 상기 K-블록 원문 암호문들 및 상기 K-블록 토큰 암호문들의 쌍들을 상기 K-블록 토큰 암호문을 기준으로 오름차순으로 정렬하여 K-블록 쌍들을 생성하는 단계, 상기 K-블록 쌍들의 순서를 나타내는 일련번호들을 상기 K-블록 쌍들에 포함되는 상기 K-블록 원문 암호문을 기준으로 오름차순으로 정렬하여 K-블록 암호 인덱스를 생성하는 단계, 및 상기 K-블록 쌍들 및 상기 K-블록 암호 인덱스를 상기 토큰 이미지 파일로서 저장하는 단계를 포함할 수 있다.
상기 K-블록 원문 암호문들 및 상기 K-블록 토큰 암호문들 각각은 텍스트 포맷을 가질 수 있다.
상기 K자리의 모든 숫자열들 각각을 암호화하여 상기 K-블록 원문 암호문들을 생성하는 단계는, 상기 K자리의 모든 숫자열들 각각에 대해 암호화 알고리즘을 적용하여 K-블록 임시 원문 암호문들을 생성하는 단계 및 상기 K-블록 임시 원문 암호문들 각각에 대해 BASE64 알고리즘을 적용하여 상기 K-블록 원문 암호문들을 생성하는 단계를 포함하고, 상기 K-블록 토큰들 각각을 암호화하여 상기 K-블록 토큰 암호문들을 생성하는 단계는, 상기 K-블록 토큰들 각각에 대해 상기 암호화 알고리즘을 적용하여 K-블록 임시 토큰 암호문들을 생성하는 단계 및 상기 K-블록 임시 토큰 암호문들 각각에 대해 BASE64 알고리즘을 적용하여 상기 K-블록 토큰 암호문들을 생성하는 단계를 포함할 수 있다.
상기 K-블록 토큰들 각각은 K자리의 문자열을 포함할 수 있다.
상기 원문 숫자열을 N자리 내지 (N+M)자리의 숫자열들로 분할하여 상기 분할 원문들을 생성하는 단계는, 상기 원문 숫자열을 N자리 내지 (N+M)자리 중에서 최대 자리의 숫자열들로 순차적으로 분할하여 상기 분할 원문들을 생성하는 단계를 포함할 수 있다.
상기 토큰 이미지 파일로부터 상기 분할 원문 암호문들 각각에 상응하는 상기 분할 토큰 암호문들을 독출하는 단계는, 상기 분할 원문 암호문들 각각에 대해, 상기 분할 원문 암호문에 상응하는 상기 분할 원문의 자리수를 판단하는 단계, 상기 분할 원문이 K자리 숫자열인 경우, 상기 토큰 이미지 파일에 포함되는 상기 K-블록 암호 인덱스에 기초하여 상기 K-블록 쌍들 중에서 상기 분할 원문 암호문과 일치하는 상기 K-블록 원문 암호문을 포함하는 일치 K-블록 쌍을 판단하는 단계, 및 상기 일치 K-블록 쌍에 포함되는 상기 K-블록 토큰 암호문을 상기 분할 토큰 암호문으로서 독출하는 단계를 포함할 수 있다.
상기 일치 K-블록 쌍을 판단하는 단계는, 상기 K-블록 암호 인덱스 및 상기 K-블록 쌍들에 이진 검색(binary search) 알고리즘을 적용하여 상기 K-블록 쌍들 중에서 상기 분할 원문 암호문과 일치하는 상기 K-블록 원문 암호문을 포함하는 상기 일치 K-블록 쌍을 결정하는 단계를 포함할 수 있다.
상기 분할 토큰들을 조합하여 상기 원문 숫자열에 상응하는 상기 보안 토큰을 생성하는 단계는, 상기 분할 원문들 각각에 대응되는 상기 분할 토큰들을 상기 원문 숫자열에 포함되는 상기 분할 원문들의 순서대로 조합하여 상기 보안 토큰을 생성하는 단계를 포함할 수 있다.
상기 토큰 이미지 파일을 생성하는 단계는, 상기 원문 숫자열의 종류들 각각에 대해 상기 K-블록 쌍들 및 상기 K-블록 인덱스를 각각 생성하는 단계 및 상기 원문 숫자열의 종류들 각각에 대해 생성된 상기 K-블록 쌍들 및 상기 K-블록 인덱스를 상기 토큰 이미지 파일로서 저장하는 단계를 더 포함하고, K자리의 동일한 숫자열에 대해 상기 원문 숫자열의 종류들 각각에 상응하여 생성되는 상기 K-블록 토큰들은 서로 상이할 수 있다.
상기 분할 토큰 암호문들은 상기 토큰 이미지 파일에 저장된 상기 원문 숫자열의 종류에 상응하는 상기 K-블록 쌍들로부터 독출될 수 있다.
상술한 본 발명의 일 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 블록 토큰 기반의 복호화 방법에서, N자리 내지 (N+M)자리의 모든 숫자열들을 암호화한 원문 암호문들 및 상기 N자리 내지 (N+M)자리의 모든 숫자열들 각각에 상응하는 토큰들을 암호화한 토큰 암호문들을 서로 연관시켜 저장하는 토큰 이미지 파일을 생성하고, 보안 토큰을 N자리 내지 (N+M)자리의 숫자열들로 분할하여 분할 토큰들을 생성하고, 상기 분할 토큰들 각각을 암호화하여 분할 토큰 암호문들을 생성하고, 상기 토큰 이미지 파일로부터 상기 분할 토큰 암호문들 각각에 상응하는 분할 원문 암호문들을 독출하고, 상기 분할 원문 암호문들을 복호화하여 분할 원문들을 생성하고, 상기 분할 원문들을 조합하여 상기 보안 토큰에 상응하는 원문 숫자열을 생성할 수 있다.
본 발명의 실시예들에 따른 블록 토큰 기반의 암호화 방법 및 복호화 방법에 따르면, 암호화 과정 및 복호화 과정에서 토큰 서버와 데이터 통신을 수행할 필요가 없으므로, 암복호화 속도를 향상시킬 수 있고, 토큰 서버에 장애가 발생한 경우에도 암복호화 동작을 지속적으로 수행할 수 있다.
도 1은 본 발명의 일 실시예에 따른 블록 토큰 기반의 암호화 방법을 나타내는 순서도이다.
도 2는 본 발명의 일 실시예에 따른 암복호화 시스템을 나타내는 블록도이다.
도 3은 도 1의 토큰 이미지 파일을 생성하는 단계의 일 예를 나타내는 순서도이다.
도 4는 도 3의 토큰 이미지 파일을 생성하는 단계의 일 예를 설명하기 위한 도면이다.
도 5는 토큰 이미지 파일의 일 예를 나타내는 도면이다.
도 6은 도 2의 암복호화 시스템에 포함되는 응용 서버의 암호화 동작을 설명하기 위한 도면이다.
도 7은 토큰 이미지 파일의 다른 예를 나타내는 도면이다.
도 8은 본 발명의 일 실시예에 따른 블록 토큰 기반의 복호화 방법을 나타내는 순서도이다.
도 9는 도 2의 암복호화 시스템에 포함되는 응용 서버의 복호화 동작을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 암복호화 시스템을 나타내는 블록도이다.
도 3은 도 1의 토큰 이미지 파일을 생성하는 단계의 일 예를 나타내는 순서도이다.
도 4는 도 3의 토큰 이미지 파일을 생성하는 단계의 일 예를 설명하기 위한 도면이다.
도 5는 토큰 이미지 파일의 일 예를 나타내는 도면이다.
도 6은 도 2의 암복호화 시스템에 포함되는 응용 서버의 암호화 동작을 설명하기 위한 도면이다.
도 7은 토큰 이미지 파일의 다른 예를 나타내는 도면이다.
도 8은 본 발명의 일 실시예에 따른 블록 토큰 기반의 복호화 방법을 나타내는 순서도이다.
도 9는 도 2의 암복호화 시스템에 포함되는 응용 서버의 복호화 동작을 설명하기 위한 도면이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 블록 토큰 기반의 암호화 방법을 나타내는 순서도이다.
도 1을 참조하면, 본 발명에 따른 블록 토큰 기반의 암호화 방법에서, N자리 내지 (N+M)자리의 모든 숫자열들을 암호화한 원문 암호문들 및 상기 N자리 내지 (N+M)자리의 모든 숫자열들 각각에 상응하는 토큰들을 암호화한 토큰 암호문들을 서로 연관시켜 저장하는 토큰 이미지 파일을 생성한다(단계 S100). 여기서, N 및 M은 양의 정수를 나타낸다.
예를 들어, N은 3이고 M은 3인 경우, 000 내지 999를 포함하는 세 자리의 모든 숫자열들, 0000 내지 9999를 포함하는 네 자리의 모든 숫자열들, 00000 내지 99999를 포함하는 다섯 자리의 모든 숫자열들 및 000000 내지 999999를 포함하는 여섯 자리의 모든 숫자열들 각각에 상응하는 상기 토큰들을 생성하고, 상기 세 자리의 모든 숫자열들, 상기 네 자리의 모든 숫자열들, 상기 다섯 자리의 모든 숫자열들 및 상기 여섯 자리의 모든 숫자열들을 암호화한 원문 암호문들을 생성하고, 상기 세 자리의 모든 숫자열들, 상기 네 자리의 모든 숫자열들, 상기 다섯 자리의 모든 숫자열들 및 상기 여섯 자리의 모든 숫자열들 각각에 상응하는 상기 토큰들을 암호화하여 상기 토큰 암호문들을 생성한 후, 상기 원문 암호문들과 상기 토큰 암호문들을 서로 연관시켜 상기 토큰 이미지 파일로서 저장할 수 있다.
일 실시예에 있어서, 상기 N자리 내지 (N+M)자리의 모든 숫자열들 각각에 상응하는 상기 토큰들은 토큰 서버를 통해 생성될 수 있다.
상기 원문 암호문들 및 상기 토큰 암호문들은 다양한 암호화 알고리즘을 사용하여 생성될 수 있다.
이후, 암호화를 수행하고자 하는 원문 숫자열을 N자리 내지 (N+M)자리의 숫자열들로 분할하여 분할 원문들을 생성한다(단계 S200).
예를 들어, 상기 원문 숫자열이 열 자리 숫자열인 경우, 상기 원문 숫자열을 여섯 자리 숫자열 및 네 자리 숫자열로 분할하여 두 개의 분할 원문들을 생성할 수 있다.
이후, 상기 분할 원문들 각각을 암호화하여 분할 원문 암호문들을 생성하고(단계 S300), 상기 토큰 이미지 파일로부터 상기 분할 원문 암호문들 각각에 상응하는 분할 토큰 암호문들을 독출하고(단계 S400), 상기 분할 토큰 암호문들을 복호화하여 분할 토큰들을 생성하고(단계 S500), 상기 분할 토큰들을 조합하여 상기 원문 숫자열에 상응하는 보안 토큰을 생성한다(단계 S600).
상술한 바와 같이, 본 발명에 따른 블록 토큰 기반의 암호화 방법에 따르면, 상기 토큰 서버를 사용하여 상기 토큰 이미지 파일을 미리 생성한 후, 상기 미리 생성된 토큰 이미지 파일을 사용하여 상기 원문 숫자열을 암호화하여 상기 보안 토큰을 생성한다. 이와 같이, 상기 원문 숫자열에 대한 암호화 과정에서 상기 토큰 서버와 데이터 통신을 수행할 필요가 없으므로, 암호화 속도를 향상시킬 수 있고, 상기 토큰 서버에 장애가 발생한 경우에도 암호화 동작을 지속적으로 수행할 수 있다.
도 2는 본 발명의 일 실시예에 따른 암복호화 시스템을 나타내는 블록도이다.
도 1의 블록 토큰 기반의 암호화 방법은 도 2에 도시된 암복호화 시스템(10)을 통해 수행될 수 있다.
이하, 도 1 및 2를 참조하여 암복호화 시스템(10)에 의해 수행되는 도 1의 블록 토큰 기반의 암호화 방법에 대해 상세히 설명한다.
도 2를 참조하면, 암복호화 시스템(10)은 응용 서버(100) 및 토큰 서버(200)를 포함한다.
응용 서버(100)는 동작 초기에 토큰 서버(200)를 사용하여 N자리 내지 (N+M)자리의 모든 숫자열들을 암호화한 상기 원문 암호문들 및 상기 N자리 내지 (N+M)자리의 모든 숫자열들 각각에 상응하는 상기 토큰들을 암호화한 상기 토큰 암호문들을 서로 연관시켜 저장하는 토큰 이미지 파일(TIF)(110)을 생성할 수 있다(단계 S100).
도 3은 도 1의 토큰 이미지 파일을 생성하는 단계의 일 예를 나타내는 순서도이고, 도 4는 도 3의 토큰 이미지 파일을 생성하는 단계의 일 예를 설명하기 위한 도면이다.
도 2 내지 4를 참조하면, 응용 서버(100)는 토큰 서버(200)를 사용하여 K자리의 모든 숫자열들(K-NS) 각각에 상응하는 K-블록 토큰들(K-TK)을 생성할 수 있다(단계 S110). 여기서, K는 N 이상 (N+M) 이하의 정수를 나타낸다.
일 실시예에 있어서, 도 2에 도시된 바와 같이, 응용 서버(100)는 K자리의 모든 숫자열들(K-NS)을 토큰 서버(200)에 제공하고, 토큰 서버(200)는 응용 서버(100)로부터 수신되는 K자리의 모든 숫자열들(K-NS) 각각과 일대일로 매핑되는 K-블록 토큰들(K-TK)을 생성하여 응용 서버(100)에 제공할 수 있다.
예를 들어, N은 3이고 M은 3인 경우, 응용 서버(100)는 토큰 서버(200)를 사용하여 세 자리의 모든 숫자열들 각각과 일대일로 매핑되는 3-블록 토큰들을 생성하고, 토큰 서버(200)를 사용하여 네 자리의 모든 숫자열들 각각과 일대일로 매핑되는 4-블록 토큰들을 생성하고, 토큰 서버(200)를 사용하여 다섯 자리의 모든 숫자열들 각각과 일대일로 매핑되는 5-블록 토큰들을 생성하고, 토큰 서버(200)를 사용하여 여섯 자리의 모든 숫자열들 각각과 일대일로 매핑되는 6-블록 토큰들을 생성할 수 있다.
도 4에는 예시적으로 K가 3인 경우, 000 내지 999를 포함하는 세 자리의 모든 숫자열들(K-NS) 및 세 자리의 모든 숫자열들(K-NS) 각각과 일대일로 매핑되는 3-블록 토큰들(K-TK)이 도시된다.
도 4에 도시된 바와 같이, 토큰 서버(200)로부터 생성되어 응용 서버(100)에 제공되는 K-블록 토큰들(K-TK)은 K자리의 숫자열들(K-NS)과 동일한 포맷 및 동일한 길이를 가질 수 있다. 즉, K-블록 토큰들(K-TK) 각각은 K자리의 문자열을 포함할 수 있다.
응용 서버(100)는 K자리의 모든 숫자열들(K-NS) 각각을 암호화하여 K-블록 원문 암호문들(K-PED)을 생성하고(단계 S120), K-블록 토큰들(K-TK) 각각을 암호화하여 K-블록 토큰 암호문들(K-TED)을 생성할 수 있다(단계 S130).
일 실시예에 있어서, 응용 서버(100)는 K자리의 모든 숫자열들(K-NS) 각각에 대해 암호화 알고리즘을 적용하여 K-블록 임시 원문 암호문들을 생성하고, 상기 K-블록 임시 원문 암호문들 각각에 대해 BASE64 알고리즘을 적용하여 K-블록 원문 암호문들(K-PED)을 생성할 수 있다. 또한, 응용 서버(100)는 K-블록 토큰들(K-TK) 각각에 대해 상기 암호화 알고리즘을 적용하여 K-블록 임시 토큰 암호문들을 생성하고, 상기 K-블록 임시 토큰 암호문들 각각에 대해 BASE64 알고리즘을 적용하여 K-블록 토큰 암호문들(K-TED)을 생성할 수 있다.
따라서, 도 4에 도시된 바와 같이, K-블록 원문 암호문들(K-PED) 및 K-블록 토큰 암호문들(K-TED) 각각은 문자열을 포함하는 텍스트 포맷을 가질 수 있다.
상기 K-블록 임시 원문 암호문들 및 상기 K-블록 임시 토큰 암호문들은 국제표준인 3DES, AES, RSA 및 국내표준인 SEED, ARIA 등의 다양한 암호화 알고리즘을 사용하여 생성될 수 있다.
이후, 응용 서버(100)는 서로 대응되는 K-블록 원문 암호문들(K-PED) 및 K-블록 토큰 암호문들(K-TED)의 쌍들을 K-블록 토큰 암호문(K-TED)을 기준으로 오름차순으로 정렬하여 K-블록 쌍들(K-PAIR)을 생성할 수 있다(단계 S140).
K-블록 쌍들(K-PAIR)에는 상기 정렬된 순서대로 일련번호(K-SER)가 부여될 수 있다.
응용 서버(100)는 K-블록 쌍들(K-PAIR)의 순서를 나타내는 일련번호들(K-SER)을 K-블록 쌍들(K-PAIR)에 포함되는 K-블록 원문 암호문(K-PED)을 기준으로 오름차순으로 정렬하여 K-블록 암호 인덱스(K-IDX)를 생성할 수 있다(단계 S150).
이후, 응용 서버(100)는 K-블록 쌍들(K-PAIR) 및 K-블록 암호 인덱스(K-IDX)를 토큰 이미지 파일(110)로서 저장할 수 있다(단계 S160).
응용 서버(100)는 N자리의 모든 숫자열들부터 (N+M)자리의 모든 숫자열들에 대해 도 2 내지 4를 참조하여 설명한 바와 같은 동작을 반복적으로 수행하여, N-블록 쌍들(N-PAIR) 및 N-블록 암호 인덱스(N-IDX)부터 (N+M)-블록 쌍들((N+M)-PAIR) 및 (N+M)-블록 암호 인덱스((N+M)-IDX)를 생성하고, 도 5에 도시된 바와 같이, 이를 토큰 이미지 파일(110)로서 저장할 수 있다.
이와 같이, 응용 서버(100)는 동작 초기에 토큰 서버(200)를 사용하여 토큰 이미지 파일(110)을 미리 생성할 수 있다.
다시 도 1 및 2를 참조하면, 응용 서버(100)는 미리 생성된 토큰 이미지 파일(110)을 메모리에 로딩하고, 토큰 이미지 파일(110)을 사용하여 암호화 동작을 수행할 수 있다.
도 6은 도 2의 암복호화 시스템에 포함되는 응용 서버의 암호화 동작을 설명하기 위한 도면이다.
이하, 도 1 내지 6을 참조하여, 응용 서버(100)의 암호화 동작에 대해 설명한다.
도 6을 참조하면, 응용 서버(100)는 암복호화 정책에 기초하여 원문 데이터(PD)로부터 암호화 대상이 되는 원문 숫자열(PNS)을 추출할 수 있다.
일 실시예에 있어서, 상기 암복호화 정책은 토큰 길이 정보를 포함할 수 있다.
예를 들어, 도 6에 도시된 바와 같이, 원문 데이터(PD)가 20자리의 신용카드 번호에 상응하고, 상기 암복호화 정책에 포함되는 상기 토큰 길이 정보가 10을 나타내는 경우, 응용 서버(100)는 원문 데이터(PD)를 원문 데이터(PD)의 마지막 10자리에 상응하는 원문 숫자열(PNS) 및 나머지 자리에 상응하는 비암호화 데이터(NPD)로 분할할 수 있다.
일 실시예에 있어서, 상기 암복호화 정책은 토큰 이미지 파일(110)에 저장될 수 있다.
다른 실시예에 있어서, 상기 암복호화 정책은 응용 서버(100)의 내부 저장 장치에 저장될 수 있다.
응용 서버(100)는 원문 숫자열(PNS)을 N자리 내지 (N+M)자리의 숫자열들로 분할하여 분할 원문들(DPD)을 생성할 수 있다(단계 S200).
일 실시예에 있어서, 응용 서버(100)는 원문 숫자열(PNS)을 N자리 내지 (N+M)자리 중에서 최대 자리의 숫자열들로 순차적으로 분할하여 분할 원문들(DPD)을 생성할 수 있다.
예를 들어, N은 3이고 M은 3인 경우, 도 6에 도시된 바와 같이, 응용 서버(100)는 열 자리의 원문 숫자열(PNS)을 여섯 자리의 제1 분할 원문(DPD1) 및 네 자리의 제2 분할 원문(DPD2)으로 분할할 수 있다.
응용 서버(100)는 분할 원문들(DPD) 각각을 암호화하여 분할 원문 암호문들(DPD_E)을 생성할 수 있다(단계 S300).
이 때, 응용 서버(100)는 토큰 이미지 파일(110)을 생성하는 과정에서 K자리의 모든 숫자열들(K-NS) 각각을 암호화하여 K-블록 원문 암호문들(K-PED)을 생성하고, K-블록 토큰들(K-TK) 각각을 암호화하여 K-블록 토큰 암호문들(K-TED)을 생성할 때 사용되는 암호화 알고리즘과 동일한 알고리즘을 사용하여 분할 원문 암호문들(DPD_E)을 생성할 수 있다.
이후, 응용 서버(100)는 토큰 이미지 파일(110)로부터 분할 원문 암호문들(DPD_E) 각각에 상응하는 분할 토큰 암호문들(DTK_E)을 독출할 수 있다(단계 S400).
구체적으로, 응용 서버(100)는 분할 원문 암호문들(DPD_E) 각각에 대해, 분할 원문 암호문(DPD_E)에 상응하는 분할 원문(DPD)의 자리수를 판단할 수 있다. 도 6에 도시된 예시의 경우, 제1 분할 원문(DPD1)은 여섯 자리 숫자열이고, 제2 분할 원문(DPD2)은 네 자리 숫자열일 수 있다.
응용 서버(100)는 분할 원문 암호문들(DPD_E) 각각에 대해, 상응하는 분할 원문(DPD)이 K자리 숫자열인 경우, 토큰 이미지 파일(110)에 포함되는 K-블록 암호 인덱스(K-IDX)에 기초하여 토큰 이미지 파일(110)에 포함되는 K-블록 쌍들(K-PAIR) 중에서 분할 원문 암호문(DPD_E)과 일치하는 K-블록 원문 암호문(K-PED)을 포함하는 일치 K-블록 쌍을 판단할 수 있다.
일 실시예에 있어서, 응용 서버(100)는 K-블록 암호 인덱스(K-IDX) 및 K-블록 쌍들(K-PAIR)에 이진 검색(binary search) 알고리즘을 적용하여 K-블록 쌍들(K-PAIR) 중에서 분할 원문 암호문(DPD_E)과 일치하는 K-블록 원문 암호문(K-PED)을 포함하는 상기 일치 K-블록 쌍을 결정할 수 있다.
응용 서버(100)는 상기 일치 K-블록 쌍에 포함되는 K-블록 토큰 암호문(K-TED)을 분할 토큰 암호문(DTK_E)으로서 독출할 수 있다.
상술한 바와 같은 동작을 통해 응용 서버(100)는 토큰 이미지 파일(110)로부터 분할 원문 암호문들(DPD_E) 각각에 상응하는 분할 토큰 암호문들(DTK_E)을 독출할 수 있다.
이후, 응용 서버(100)는 분할 토큰 암호문들(DTK_E)을 복호화하여 분할 토큰들(DTK)을 생성하고(단계 S500), 분할 토큰들(DTK)을 조합하여 원문 숫자열(PNS)에 상응하는 보안 토큰(STK)을 생성할 수 있다(단계 S600).
예를 들어, 도 6에 도시된 바와 같이, 응용 서버(100)는 분할 원문들(DPD) 각각에 대응되는 분할 토큰들(DTK)을 원문 숫자열(PNS)에 포함되는 분할 원문들(DPD)의 순서대로 조합하여 보안 토큰(STK)을 생성할 수 있다.
따라서 보안 토큰(STK)은 원문 숫자열(PNS)과 동일한 길이를 갖는 문자열일 수 있다.
이후, 응용 서버(100)는, 도 6에 도시된 바와 같이, 원문 데이터(PD)에 포함되는 비암호화 데이터(NPD)와 보안 토큰(STK)을 조합함으로써 원문 데이터(PD)에 상응하는 암호 데이터(EPD)를 생성할 수 있다.
도 7은 토큰 이미지 파일의 다른 예를 나타내는 도면이다.
일 실시예에 있어서, 도 7에 도시된 바와 같이, 응용 서버(100)는 원문 숫자열(PNS)의 종류들 각각에 대해 K-블록 쌍들(K-PAIR) 및 K-블록 암호 인덱스(K-IDX)를 각각 생성하고, 원문 숫자열(PNS)의 종류들 각각에 대해 생성된 K-블록 쌍들(K-PAIR) 및 K-블록 암호 인덱스(K-IDX)를 토큰 이미지 파일(110)로서 저장할 수 있다. 이 때, K자리의 동일한 숫자열(K-NS)에 대해 원문 숫자열(PNS)의 종류들 각각에 상응하여 생성되는 K-블록 토큰들(K-TK)은 서로 상이할 수 있다.
도 7에는 예시적으로 토큰 이미지 파일(110)은 Z개의 K-블록 쌍들(K-PAIR) 및 Z개의 K-블록 암호 인덱스(K-IDX)를 포함하는 것으로 도시된다.
이 경우, 분할 토큰 암호문들(DTK_E)은 토큰 이미지 파일(110)에 저장된 원문 숫자열(PNS)의 종류에 상응하는 K-블록 쌍들(K-PAIR)로부터 독출될 수 있다. 즉, 응용 서버(100)는 원문 숫자열(PNS)의 종류들 별로 토큰 이미지 파일(110)에 저장된 서로 상이한 K-블록 쌍들(K-PAIR) 및 K-블록 암호 인덱스(K-IDX)를 사용하여 암호화 동작을 수행할 수 있다.
예를 들어, 신용카드 번호를 암호화 하는 경우와 주민등록 번호를 암호화 하는 경우 각각에 있어서, 응용 서버(100)는 토큰 이미지 파일(110)에 저장된 서로 상이한 K-블록 쌍들(K-PAIR) 및 K-블록 암호 인덱스(K-IDX)를 사용하여 암호화 동작을 수행할 수 있다. 따라서, 신용카드 번호에 상응하는 원문 숫자열(PNS)과 주민등록 번호에 상응하는 원문 숫자열(PNS)이 동일한 경우에도 생성되는 보안 토큰(STK)은 서로 상이할 수 있다.
이상, 설명의 편의를 위해 본 발명에 따른 암호화 동작은 토큰 이미지 파일(110)이 생성되는 응용 서버(100)에서 수행되는 것으로 설명하였으나, 토큰 이미지 파일(110)은 임의의 다른 서버로 복사될 수 있고, 토큰 이미지 파일(110)을 가지고 있는 임의의 서버는 상술한 바와 같은 암호화 동작을 수행함으로써 원문 데이터(PD)에 상응하는 암호 데이터(EPD)를 생성할 수 있다.
도 1 내지 6을 참조하여 상술한 바와 같이, 본 발명에 따른 블록 토큰 기반의 암호화 방법에 따르면, 토큰 서버(200)를 사용하여 토큰 이미지 파일(110)을 미리 생성한 후, 미리 생성된 토큰 이미지 파일(110)을 사용하여 원문 데이터(PD)를 암호화하여 암호 데이터(EPD)를 생성한다. 이와 같이, 원문 데이터(PD)에 대한 암호화 과정에서 토큰 서버(200)와 데이터 통신을 수행할 필요가 없으므로, 암호화 속도를 향상시킬 수 있고, 토큰 서버(200)에 장애가 발생한 경우에도 암호화 동작을 지속적으로 수행할 수 있다.
도 8은 본 발명의 일 실시예에 따른 블록 토큰 기반의 복호화 방법을 나타내는 순서도이다.
도 8의 블록 토큰 기반의 복호화 방법은 도 2에 도시된 암복호화 시스템(10)을 통해 수행될 수 있다.
도 8을 참조하면, 본 발명에 따른 블록 토큰 기반의 복호화 방법에서, 응용 서버(100)는 N자리 내지 (N+M)자리의 모든 숫자열들을 암호화한 원문 암호문들 및 상기 N자리 내지 (N+M)자리의 모든 숫자열들 각각에 상응하는 토큰들을 암호화한 토큰 암호문들을 서로 연관시켜 저장하는 토큰 이미지 파일을 생성한다(단계 S100).
도 8에 도시된 토큰 이미지 파일을 생성하는 단계(S100)는 도 1에 도시된 토큰 이미지 파일을 생성하는 단계(S100)와 동일하게 수행될 수 있다.
응용 서버(100)는 미리 생성된 토큰 이미지 파일(110)을 메모리에 로딩하고, 토큰 이미지 파일(110)을 사용하여 복호화 동작을 수행할 수 있다.
도 9는 도 2의 암복호화 시스템에 포함되는 응용 서버의 복호화 동작을 설명하기 위한 도면이다.
도 9에 도시된 바와 같이, 도 8의 블록 토큰 기반의 복호화 방법은 도 1의 블록 토큰 기반의 암호화 방법의 역순으로 수행될 수 있다.
이하, 도 1 내지 9를 참조하여, 응용 서버(100)의 복호화 동작에 대해 설명한다.
도 9를 참조하면, 응용 서버(100)는 상기 암복호화 정책에 기초하여 암호 데이터(EPD)를 복호화 대상이 되는 보안 토큰(STK)과 비암호화 데이터(NPD)로 분할할 수 있다.
응용 서버(100)는 보안 토큰(STK)을 N자리 내지 (N+M)자리의 숫자열들로 분할하여 분할 토큰들(DTK)을 생성할 수 있다(단계 S201).
일 실시예에 있어서, 응용 서버(100)는 보안 토큰(STK)을 N자리 내지 (N+M)자리 중에서 최대 자리의 숫자열들로 순차적으로 분할하여 분할 토큰들(DTK)을 생성할 수 있다.
예를 들어, N은 3이고 M은 3인 경우, 도 9에 도시된 바와 같이, 응용 서버(100)는 열 자리의 보안 토큰(STK)을 여섯 자리의 제1 분할 토큰(DTK1) 및 네 자리의 제2 분할 토큰(DTK2)으로 분할할 수 있다.
응용 서버(100)는 분할 토큰들(DTK) 각각을 암호화하여 분할 토큰 암호문들(DTK_E)을 생성할 수 있다(단계 S301).
이 때, 응용 서버(100)는 토큰 이미지 파일(110)을 생성하는 과정에서 K자리의 모든 숫자열들(K-NS) 각각을 암호화하여 K-블록 원문 암호문들(K-PED)을 생성하고, K-블록 토큰들(K-TK) 각각을 암호화하여 K-블록 토큰 암호문들(K-TED)을 생성할 때 사용되는 암호화 알고리즘과 동일한 알고리즘을 사용하여 분할 토큰 암호문들(DTK_E)을 생성할 수 있다.
이후, 응용 서버(100)는 토큰 이미지 파일(110)로부터 분할 토큰 암호문들(DTK_E) 각각에 상응하는 분할 원문 암호문들(DPD_E)을 독출할 수 있다(단계 S401).
구체적으로, 응용 서버(100)는 분할 토큰 암호문들(DTK_E) 각각에 대해, 분할 토큰 암호문들(DTK_E)에 상응하는 분할 토큰(DTK)의 자리수를 판단할 수 있다. 도 9에 도시된 예시의 경우, 제1 분할 토큰(DTK1)은 여섯 자리 문자열이고, 제2 분할 토큰(DTK2)은 네 자리 문자열일 수 있다.
응용 서버(100)는 분할 토큰 암호문들(DTK_E) 각각에 대해, 상응하는 분할 토큰(DTK)이 K자리 문자열인 경우, 토큰 이미지 파일(110)에 포함되는 K-블록 쌍들(K-PAIR) 중에서 분할 토큰 암호문(DTK_E)과 일치하는 K-블록 토큰 암호문(K-TED)을 포함하는 일치 K-블록 쌍을 판단할 수 있다.
일 실시예에 있어서, 토큰 이미지 파일(110)에 포함되는 K-블록 쌍들(K-PAIR)은 K-블록 토큰 암호문(K-TED)을 기준으로 오름차순으로 정렬되어 있으므로, 응용 서버(100)는 K-블록 쌍들(K-PAIR)에 이진 검색(binary search) 알고리즘을 적용하여 K-블록 쌍들(K-PAIR) 중에서 분할 토큰 암호문(DTK_E)과 일치하는 K-블록 토큰 암호문(K-TED)을 포함하는 상기 일치 K-블록 쌍을 결정할 수 있다.
응용 서버(100)는 상기 일치 K-블록 쌍에 포함되는 K-블록 원문 암호문(K-PED)을 분할 원문 암호문(DPD_E)으로서 독출할 수 있다.
상술한 바와 같은 동작을 통해 응용 서버(100)는 토큰 이미지 파일(110)로부터 분할 토큰 암호문들(DTK_E) 각각에 상응하는 분할 원문 암호문들(DPD_E)을 독출할 수 있다.
이후, 응용 서버(100)는 분할 원문 암호문들(DPD_E)을 복호화하여 분할 원문들(DPD)을 생성하고(단계 S501), 분할 원문들(DPD)을 조합하여 보안 토큰(STK)에 상응하는 원문 숫자열(PNS)을 생성할 수 있다(단계 S601).
예를 들어, 도 9에 도시된 바와 같이, 응용 서버(100)는 분할 토큰들(DTK) 각각에 대응되는 분할 원문들(DPD)을 보안 토큰(STK)에 포함되는 분할 토큰들(DTK)의 순서대로 조합하여 원문 숫자열(PNS)을 생성할 수 있다.
따라서 원문 숫자열(PNS)은 보안 토큰(STK)과 동일한 길이를 갖는 숫자열일 수 있다.
이후, 응용 서버(100)는, 도 9에 도시된 바와 같이, 암호 데이터(EPD)에 포함되는 비암호화 데이터(NPD)와 원문 숫자열(PNS)을 조합함으로써 암호 데이터(EPD)에 상응하는 원문 데이터(PD)를 생성할 수 있다.
이상, 설명의 편의를 위해 본 발명에 따른 복호화 동작은 토큰 이미지 파일(110)이 생성되는 응용 서버(100)에서 수행되는 것으로 설명하였으나, 토큰 이미지 파일(110)은 임의의 다른 서버로 복사될 수 있고, 토큰 이미지 파일(110)을 가지고 있는 임의의 서버는 상술한 바와 같은 복호화 동작을 수행함으로써 암호 데이터(EPD)에 상응하는 원문 데이터(PD)를 생성할 수 있다.
도 1 내지 9를 참조하여 상술한 바와 같이, 본 발명에 따른 블록 토큰 기반의 암호화 방법 및 복호화 방법에 따르면, 토큰 서버(200)를 사용하여 토큰 이미지 파일(110)을 미리 생성한 후, 미리 생성된 토큰 이미지 파일(110)을 사용하여 원문 데이터(PD)를 암호화하여 암호 데이터(EPD)를 생성하거나 암호 데이터(EPD)를 복호화하여 원문 데이터(PD)를 생성한다. 이와 같이, 원문 데이터(PD)에 대한 암호화 과정 및 암호 데이터(EPD)에 대한 복호화 과정에서 토큰 서버(200)와 데이터 통신을 수행할 필요가 없으므로, 암복호화 속도를 향상시킬 수 있고, 토큰 서버(200)에 장애가 발생한 경우에도 암복호화 동작을 지속적으로 수행할 수 있다.
본 발명의 실시예들에 따른 암호화 방법 및 복호화 방법은 숫자열에 대해 토큰 기반으로 암호화 및 복호화를 수행하는 장치에 적용되어 토큰 서버의 장애 발생시에도 서비스 중단 없이 빠른 속도로 암복호화 서비스를 제공하는 데에 유용하게 사용될 수 있다.
상술한 바와 같이, 본 발명의 바람직한 실시예를 참조하여 설명하였지만 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
Claims (12)
- N자리 내지 (N+M)자리의 모든 숫자열들을 암호화한 원문 암호문들 및 상기 N자리 내지 (N+M)자리의 모든 숫자열들 각각에 상응하는 토큰들을 암호화한 토큰 암호문들을 서로 연관시켜 저장하는 토큰 이미지 파일을 생성하는 단계(N 및 M은 양의 정수);
원문 숫자열을 N자리 내지 (N+M)자리의 숫자열들로 분할하여 분할 원문들을 생성하는 단계;
상기 분할 원문들 각각을 암호화하여 분할 원문 암호문들을 생성하는 단계;
상기 토큰 이미지 파일로부터 상기 분할 원문 암호문들 각각에 상응하는 분할 토큰 암호문들을 독출하는 단계;
상기 분할 토큰 암호문들을 복호화하여 분할 토큰들을 생성하는 단계; 및
상기 분할 토큰들을 조합하여 상기 원문 숫자열에 상응하는 보안 토큰을 생성하는 단계를 포함하는 블록 토큰 기반의 암호화 방법. - 제1 항에 있어서, 상기 토큰 이미지 파일을 생성하는 단계는,
K(K는 N 이상 (N+M) 이하의 정수)자리의 모든 숫자열들 각각에 상응하는 K-블록 토큰들을 생성하는 단계;
상기 K자리의 모든 숫자열들 각각을 암호화하여 K-블록 원문 암호문들을 생성하는 단계;
상기 K-블록 토큰들 각각을 암호화하여 K-블록 토큰 암호문들을 생성하는 단계;
서로 대응되는 상기 K-블록 원문 암호문들 및 상기 K-블록 토큰 암호문들의 쌍들을 상기 K-블록 토큰 암호문을 기준으로 오름차순으로 정렬하여 K-블록 쌍들을 생성하는 단계;
상기 K-블록 쌍들의 순서를 나타내는 일련번호들을 상기 K-블록 쌍들에 포함되는 상기 K-블록 원문 암호문을 기준으로 오름차순으로 정렬하여 K-블록 암호 인덱스를 생성하는 단계; 및
상기 K-블록 쌍들 및 상기 K-블록 암호 인덱스를 상기 토큰 이미지 파일로서 저장하는 단계를 포함하는 것을 특징으로 하는 블록 토큰 기반의 암호화 방법. - 제2 항에 있어서, 상기 K-블록 원문 암호문들 및 상기 K-블록 토큰 암호문들 각각은 텍스트 포맷을 갖는 것을 특징으로 하는 블록 토큰 기반의 암호화 방법.
- 제3 항에 있어서, 상기 K자리의 모든 숫자열들 각각을 암호화하여 상기 K-블록 원문 암호문들을 생성하는 단계는,
상기 K자리의 모든 숫자열들 각각에 대해 암호화 알고리즘을 적용하여 K-블록 임시 원문 암호문들을 생성하는 단계; 및
상기 K-블록 임시 원문 암호문들 각각에 대해 BASE64 알고리즘을 적용하여 상기 K-블록 원문 암호문들을 생성하는 단계를 포함하고,
상기 K-블록 토큰들 각각을 암호화하여 상기 K-블록 토큰 암호문들을 생성하는 단계는,
상기 K-블록 토큰들 각각에 대해 상기 암호화 알고리즘을 적용하여 K-블록 임시 토큰 암호문들을 생성하는 단계; 및
상기 K-블록 임시 토큰 암호문들 각각에 대해 BASE64 알고리즘을 적용하여 상기 K-블록 토큰 암호문들을 생성하는 단계를 포함하는 것을 특징으로 하는 블록 토큰 기반의 암호화 방법. - 제2 항에 있어서, 상기 K-블록 토큰들 각각은 K자리의 문자열을 포함하는 것을 특징으로 하는 블록 토큰 기반의 암호화 방법.
- 제2 항에 있어서, 상기 원문 숫자열을 N자리 내지 (N+M)자리의 숫자열들로 분할하여 상기 분할 원문들을 생성하는 단계는,
상기 원문 숫자열을 N자리 내지 (N+M)자리 중에서 최대 자리의 숫자열들로 순차적으로 분할하여 상기 분할 원문들을 생성하는 단계를 포함하는 것을 특징으로 하는 블록 토큰 기반의 암호화 방법. - 제2 항에 있어서, 상기 토큰 이미지 파일로부터 상기 분할 원문 암호문들 각각에 상응하는 상기 분할 토큰 암호문들을 독출하는 단계는,
상기 분할 원문 암호문들 각각에 대해, 상기 분할 원문 암호문에 상응하는 상기 분할 원문의 자리수를 판단하는 단계;
상기 분할 원문이 K자리 숫자열인 경우, 상기 토큰 이미지 파일에 포함되는 상기 K-블록 암호 인덱스에 기초하여 상기 K-블록 쌍들 중에서 상기 분할 원문 암호문과 일치하는 상기 K-블록 원문 암호문을 포함하는 일치 K-블록 쌍을 판단하는 단계; 및
상기 일치 K-블록 쌍에 포함되는 상기 K-블록 토큰 암호문을 상기 분할 토큰 암호문으로서 독출하는 단계를 포함하는 것을 특징으로 하는 블록 토큰 기반의 암호화 방법. - 제7 항에 있어서, 상기 일치 K-블록 쌍을 판단하는 단계는,
상기 K-블록 암호 인덱스 및 상기 K-블록 쌍들에 이진 검색(binary search) 알고리즘을 적용하여 상기 K-블록 쌍들 중에서 상기 분할 원문 암호문과 일치하는 상기 K-블록 원문 암호문을 포함하는 상기 일치 K-블록 쌍을 결정하는 단계를 포함하는 것을 특징으로 하는 블록 토큰 기반의 암호화 방법. - 제2 항에 있어서, 상기 분할 토큰들을 조합하여 상기 원문 숫자열에 상응하는 상기 보안 토큰을 생성하는 단계는,
상기 분할 원문들 각각에 대응되는 상기 분할 토큰들을 상기 원문 숫자열에 포함되는 상기 분할 원문들의 순서대로 조합하여 상기 보안 토큰을 생성하는 단계를 포함하는 것을 특징으로 하는 블록 토큰 기반의 암호화 방법. - 제2 항에 있어서, 상기 토큰 이미지 파일을 생성하는 단계는,
상기 원문 숫자열의 종류들 각각에 대해 상기 K-블록 쌍들 및 상기 K-블록 인덱스를 각각 생성하는 단계; 및
상기 원문 숫자열의 종류들 각각에 대해 생성된 상기 K-블록 쌍들 및 상기 K-블록 인덱스를 상기 토큰 이미지 파일로서 저장하는 단계를 더 포함하고,
K자리의 동일한 숫자열에 대해 상기 원문 숫자열의 종류들 각각에 상응하여 생성되는 상기 K-블록 토큰들은 서로 상이한 것을 특징으로 하는 블록 토큰 기반의 암호화 방법. - 제10 항에 있어서, 상기 분할 토큰 암호문들은 상기 토큰 이미지 파일에 저장된 상기 원문 숫자열의 종류에 상응하는 상기 K-블록 쌍들로부터 독출되는 것을 특징으로 하는 블록 토큰 기반의 암호화 방법.
- N자리 내지 (N+M)자리의 모든 숫자열들을 암호화한 원문 암호문들 및 상기 N자리 내지 (N+M)자리의 모든 숫자열들 각각에 상응하는 토큰들을 암호화한 토큰 암호문들을 서로 연관시켜 저장하는 토큰 이미지 파일을 생성하는 단계(N 및 M은 양의 정수);
보안 토큰을 N자리 내지 (N+M)자리의 숫자열들로 분할하여 분할 토큰들을 생성하는 단계;
상기 분할 토큰들 각각을 암호화하여 분할 토큰 암호문들을 생성하는 단계;
상기 토큰 이미지 파일로부터 상기 분할 토큰 암호문들 각각에 상응하는 분할 원문 암호문들을 독출하는 단계;
상기 분할 원문 암호문들을 복호화하여 분할 원문들을 생성하는 단계; 및
상기 분할 원문들을 조합하여 상기 보안 토큰에 상응하는 원문 숫자열을 생성하는 단계를 포함하는 블록 토큰 기반의 복호화 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140011501A KR101428648B1 (ko) | 2014-01-29 | 2014-01-29 | 블록 토큰 기반의 암호화 방법 및 블록 토큰 기반의 복호화 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140011501A KR101428648B1 (ko) | 2014-01-29 | 2014-01-29 | 블록 토큰 기반의 암호화 방법 및 블록 토큰 기반의 복호화 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101428648B1 true KR101428648B1 (ko) | 2014-08-13 |
Family
ID=51750038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140011501A KR101428648B1 (ko) | 2014-01-29 | 2014-01-29 | 블록 토큰 기반의 암호화 방법 및 블록 토큰 기반의 복호화 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101428648B1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160131620A (ko) * | 2015-05-08 | 2016-11-16 | (주)케이사인 | 데이터 암복호화 방법 |
KR20160131624A (ko) * | 2015-05-08 | 2016-11-16 | (주)케이사인 | 암호화 방법 및 복호화 방법 |
KR101728878B1 (ko) * | 2015-05-08 | 2017-05-02 | (주)케이사인 | 개인정보 이관 시스템 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030097550A (ko) * | 2002-06-21 | 2003-12-31 | (주)케이사인 | 인가된 키 복구 서비스 시스템 및 그 방법 |
KR20080076721A (ko) * | 2007-02-16 | 2008-08-20 | 후지쯔 가부시끼가이샤 | 부호화 장치 및 부호화 방법 |
WO2011050293A2 (en) * | 2009-10-23 | 2011-04-28 | Samplify Systems, Inc. | Block floating point compression of signal data |
KR101214502B1 (ko) * | 2012-03-30 | 2012-12-27 | (주)필리아아이티 | 데이터 보안 장치 |
-
2014
- 2014-01-29 KR KR1020140011501A patent/KR101428648B1/ko not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030097550A (ko) * | 2002-06-21 | 2003-12-31 | (주)케이사인 | 인가된 키 복구 서비스 시스템 및 그 방법 |
KR20080076721A (ko) * | 2007-02-16 | 2008-08-20 | 후지쯔 가부시끼가이샤 | 부호화 장치 및 부호화 방법 |
WO2011050293A2 (en) * | 2009-10-23 | 2011-04-28 | Samplify Systems, Inc. | Block floating point compression of signal data |
KR101214502B1 (ko) * | 2012-03-30 | 2012-12-27 | (주)필리아아이티 | 데이터 보안 장치 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160131620A (ko) * | 2015-05-08 | 2016-11-16 | (주)케이사인 | 데이터 암복호화 방법 |
KR20160131624A (ko) * | 2015-05-08 | 2016-11-16 | (주)케이사인 | 암호화 방법 및 복호화 방법 |
KR101678182B1 (ko) | 2015-05-08 | 2016-11-21 | (주)케이사인 | 암호화 방법 및 복호화 방법 |
KR101688811B1 (ko) | 2015-05-08 | 2016-12-22 | (주)케이사인 | 데이터 암복호화 방법 |
KR101728878B1 (ko) * | 2015-05-08 | 2017-05-02 | (주)케이사인 | 개인정보 이관 시스템 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10951392B2 (en) | Fast format-preserving encryption for variable length data | |
US9979537B2 (en) | Format-preserving cipher | |
US20150134971A1 (en) | Apparatus and method for decrypting encrypted file | |
US8600048B1 (en) | Format-translating encryption systems | |
CN110941817B (zh) | 一种密码加密及密文解密的方法和装置 | |
US10733317B2 (en) | Searchable encryption processing system | |
EP2924953A1 (en) | Method and system for encrypted data synchronization for secure data management | |
KR101688811B1 (ko) | 데이터 암복호화 방법 | |
EP3667647A1 (en) | Encryption device, encryption method, decryption device, and decryption method | |
CN106131049A (zh) | 一种数据传输加解密的方法 | |
Geetha et al. | Tamilian cryptography: an efficient hybrid symmetric key encryption algorithm | |
KR101428648B1 (ko) | 블록 토큰 기반의 암호화 방법 및 블록 토큰 기반의 복호화 방법 | |
Lantz et al. | Visual cryptography and obfuscation: A use-case for decrypting and deobfuscating information using augmented reality | |
CN102833077A (zh) | 金融ic及金融社保ic卡远程发卡数据传输加解密方法 | |
Fairosebanu et al. | Data security in cloud environment using cryptographic mechanism | |
KR101678182B1 (ko) | 암호화 방법 및 복호화 방법 | |
KR102045052B1 (ko) | 금융서비스 중계 방법 및 장치 | |
CN106612170A (zh) | Drm服务提供装置及方法、内容再现装置及方法 | |
US10853502B1 (en) | Systems and methods for reducing computational difficulty of cryptographic operations | |
Babash | XOR ciphers model and the attack to it | |
JP6631989B2 (ja) | 暗号化装置、制御方法、及びプログラム | |
KR101757768B1 (ko) | 데이터 암호화 방법과 이를 수행하기 위한 장치 및 시스템 | |
KR20170005850A (ko) | 암호 장치, 기억 시스템, 복호 장치, 암호 방법, 복호 방법, 암호 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 및 복호 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 | |
EP3515010A1 (en) | Transmission and reception system, transmission device, reception device, method, and computer program | |
JP2005167794A (ja) | 秘密情報保管方法及び装置、秘密情報復元方法及び装置、秘密情報保管プログラム並びに秘密情報復元プログラム。 |
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 |