KR100910303B1 - 가변코드 테이블을 이용한 데이터 암복호화 장치 및 그 방법 - Google Patents

가변코드 테이블을 이용한 데이터 암복호화 장치 및 그 방법 Download PDF

Info

Publication number
KR100910303B1
KR100910303B1 KR1020090001890A KR20090001890A KR100910303B1 KR 100910303 B1 KR100910303 B1 KR 100910303B1 KR 1020090001890 A KR1020090001890 A KR 1020090001890A KR 20090001890 A KR20090001890 A KR 20090001890A KR 100910303 B1 KR100910303 B1 KR 100910303B1
Authority
KR
South Korea
Prior art keywords
server
key
database
encryption
numbers
Prior art date
Application number
KR1020090001890A
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 KR1020090001890A priority Critical patent/KR100910303B1/ko
Application granted granted Critical
Publication of KR100910303B1 publication Critical patent/KR100910303B1/ko
Priority to PCT/KR2009/005168 priority patent/WO2010079878A1/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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code

Abstract

본 발명은 가변코드 테이블을 이용한 데이타 암/복호화 장치 및 그 방법에 관한 것으로서, 보다 상세하게는 암호 데이터를 인덱스로 찾을 수 있도록 하는 가변코드 테이블을 이용한 데이타 암/복호화 장치 및 그 방법에 대한 것이다.
본 발명은 숫자 또는 문자로 이루어진 원시자료와 숫자 범위를 나타내는 S-KEY를 단말을 통해 입력받는 단계와, 서버가 제1데이터베이스에서 상기 원시자료의 숫자 또는 문자에 대응하는 16진수를 순서적으로 배열한 G-TABLE을 전달받는 단계와, 상기 서버가 상기 숫자 또는 문자를 상기 G-TABLE에 대응하도록 상기 S-KEY의 범위 내에서 16진수를 랜덤하게 배열한 S-TABLE을 설정하고 제2데이터베이스에 저장하는 단계와, 상기 서버가 상기 원시자료를 상기 S-TABLE과 상기 S-KEY 범위 중 하나의 숫자인 S-KEY값에 의거하여 암호화한 최종정보를 제3데이터베이스에 저장하는 단계를 포함하여 구성되는 것을 특징으로 한다.
가변코드 테이블, 데이터 암복호화, 주민등록번호, 랜덤

Description

가변코드 테이블을 이용한 데이터 암복호화 장치 및 그 방법{Data encryption and decryption apparatus using variable code table and method thereof}
본 발명은 가변코드 테이블을 이용한 데이타 암/복호화 장치 및 그 방법에 관한 것으로서, 보다 상세하게는 암호 데이터를 인덱스로 찾을 수 있도록 하는 가변코드 테이블을 이용한 데이타 암/복호화 장치 및 그 방법에 대한 것이다.
데이터베이스 암호화에 따른 검색 성능을 해결하고자 하는 시도는 2000년 이후부터 학계를 중심으로 많은 연구가 진행되고 있다. DB 암호화 및 검색 기술은 크게 인덱스 암호화 기술과 순서유지 암호화 기술로 나눌 수 있으며 그 특징은 다음과 같다.
1. Bucket-based index법
2002년 Hacigumus가 제안한 암호화 DB 검색 알고리즘으로 인덱스를 생성하기 위해 별도의 인덱스 컬럼을 만드는 방법이다. 이 방법은 매핑함수를 잘 정의하면 숫자와 문자에 대해 모두 암호화를 적용할 수 있는 장점이 있으나 정확하게 일치하 는 평문값을 알기 위해 추가 필터링이 필요하고 실질적으로 범위 검색이 되지 않는다.
2. Hash-based index법
일방향 해시함수를 이용하여 인덱스에 사용될 컬럼을 암호화하는 방법이다. Collision이 없는 해시함수를 선택하면 정확한 일치검색이 가능하고 숫자와 문자에 대해 모두 적용할 수 있는 장점이 있으나 범위검색을 지원하지 못하고 일치검색도 추가 필터링이 필요하며 출현 빈도 분포를 이용한 유추공격에 취약하다.
3. B+tree index법
평문의 순서대로 별도로 구성하여 인덱스를 이용한 암호화방법으로 빈도 분포를 이용한 유추공격으로부터 안전하다. 하지만 데이터의 삽입,수정이 빈번할 경우 B+ tree를 다시 만들어야 하고 노드상의 데이터는 직접 사용할 정보가 아님에도 최종 수치까지 도달하기 위하여 반드시 복호화해야 하는 불편이 따른다.
4. Random number based encryption법
암호화 결과의 순서가 원래의 평문 순서와 동일하도록 의사난수를 이용하여 암호화된 데이터를 만들고, 복호화시에는 의사난수를 지속적으로 발생시켜 암호데이터에서 그 난수를 차감하여 평문을 알아내는 방법이다. 암호화 데이터에 대한 업데이트를 고민할 필요가 없는 장점이 있으나 출현빈도분포를 이용한 공격에 취약 하고 의사난수를 관리하는 오버헤드가 매우 크며 정수만 암호화할 수 있는 단점이 있다.
5. Polinomial function based encryption법
random number 기반 암호화 법은 의사난수를 사용하므로 수치가 증가하면 암호화 값도 기하급수적으로 증가하고 이를 관리하는 오버헤드가 증가하므로 이를 해결하는 단조증가함수를 사용한 순서유지 암호화 방법이다. 이 방법은 암복호화시 다항식의 계수정보만 필요하므로 암복호화 절차가 매우 간편하고 실수에도 적용할 수 있으며 암호화된 데이터에 대한 업데이트 문제를 고려할 필요가 없는 장점이 있다. 그러나 암호문의 분포가 다항식에 의해 결정되므로 추론공격이 가능하며, 순서가 그대로 노출되어 다른 컬럼과 함께 사용되었을 때 평문의 정보가 노출될 수 있다.
6. OPES(Order Preserving Encryption Scheme)법
순서유지암호분야의 대표적인 알고리즘이며 수치데이터에 대하여 암호화 값의 순서를 유지하는 방법이다. 암호화된 상태에서 일치검색, 범위검색, MIN, MAX, Count, Groupby Order By등의 검색이 가능하며 평문과 암호문의 분포를 다르게 함으로써 출현빈도 분표를 이용한 공격에도 안전하다. 하지만 숫자데이터에 대해서만 적용이 되고 동일한 테이블에서 암호화되지 않은 컬럼이 있으면 순서통계량 분석을 통해 평문정보가 노출될 수 있다.
상술한 바와 같이 많은 암호화 방법들이 현재 개발되어 있고, 이를 보완한 암호화 방법들도 하루가 멀다하고 논문 또는 특허로 발표되고 있는 실정이다.
그러나, 이러한 암호화 방법은 해커의 침투 등을 방지하는 데는 탁월하지만 현대 보험회사나 금융기관에서 요청되는 빠른 검색기능에 용이하게 대응하지 못하는 원초적인 문제를 가지고 있었다.
또한 한국에서 2009년도 부터는 개인정보보호가이드를 각 보험회사와 은행과 증권회사에 배포하여 이를 법제화시키려고 노력하고 있다.
개인정보보호법은 고객ID, 패스워드, 주민번호 및 계좌번호를 암호화하여 대량 해킹에 대비하는 법이다.
이 법에 따르면 개인정보는 암호화되어야 하고, 이를 빠른 시간 내에 서칭해야하는 데, 기존의 암호화 방법은 자료를 암호화한 다음에는 데이터베이스에서 해당 자료를 찾을 때 인덱스 기능을 사용할 수 없으며 이로 인해 암호화된 자료를 다시 찾기가 매우 어려운 문제점이 있었다.
따라서, 해킹을 방지하고 빠른 서칭(검색)기능을 제공하는 새로운 모델의 암호화 방법이 절실하게 필요하여 본 발명을 제안하게 되었다.
본 발명은 어떤 문자나 숫자를 표현할 때 16진수(또는 이진수)가 고정된 “표준 코드체계”를 사용하지 않고 동일한 문자라도 필요에 따라 지정되는 16진수가 변동하는 “가변 코드 체계(Variable code system)”를 사용하여 암호화자료를 외부인이 해독할 수 없게 하기 위해 G-TABLE과 S-TABLE을 함께 사용하고 이에 따른 S-KEY값을 이용하여 분포분석 공격으로부터 안전한 가변코드 테이블을 이용한 데이터 암복호화 방법을 제공하는 데 목적이 있다.
본 발명은 주민등록번호와 계좌번호, 카드번호 등 개인정보를 암호화하고 검색 처리하는 데 이상적이며, 내부자가 개인정보DB를 유출하더라도 해당 정보를 해독하지 못하게 막는 보안성을 높이는 데 목적이 있다.
본 발명은 원시자료(Source data)를 가변 코드 체계로 암호화하여 최종 자료(Target data)를 산출할 때, 최종 자료가 원시 자료와 동일한 순서를 유지하도록 가변 코드를 조절하여 암호화된 자료를 복호화하지 않고 매우 빠르게 원하는 자료를 찾을 수 있는 가변코드 테이블을 이용한 데이터 암복호화 방법를 제공하는 데 목적이 있다.
본 발명은 테이블을 이용하여 암/복호화하므로 암/복호화 작업이 매우 빠른 가변코드 테이블을 이용한 데이터 암복호화 방법를 제공하는 데 목적이 있다.
본 발명은 숫자 데이타 뿐만 아니라 문자 데이터에 대하여도 암호화가 가능한 가변코드 테이블을 이용한 데이터 암복호화 방법를 제공하는 데 목적이 있다.
본 발명은 숫자 또는 문자로 이루어진 원시자료와 숫자 범위를 나타내는 S-KEY를 단말을 통해 입력받는 단계와, 서버가 제1데이터베이스에서 상기 원시자료의 숫자 또는 문자에 대응하는 16진수를 순서적으로 배열한 G-TABLE을 전달받는 단계와, 상기 서버가 상기 숫자 또는 문자를 상기 G-TABLE에 대응하도록 상기 S-KEY의 범위 내에서 16진수를 랜덤하게 배열한 S-TABLE을 설정하고 제2데이터베이스에 저장하는 단계와, 상기 서버가 상기 원시자료를 상기 S-TABLE과 상기 S-KEY 범위 중 하나의 숫자인 S-KEY값에 의거하여 암호화한 최종정보를 제3데이터베이스에 저장하는 단계를 포함하여 구성되는 것이 바람직하다.
본 발명은 주민등록번호와 S-KEY를 단말을 통해 입력받는 단계와, 서버가 제1데이터베이스에서 0에서 9까지 숫자에 대응하는 문자를 순서적으로 배열한 G-TABLE을 전달받는 단계와, 상기 서버가 상기 G-TABLE에 대응하도록 S-KEY의 범위 내에서 상기 문자를 랜덤하게 배열한 S-TABLE을 설정하고 제2데이터베이스에 저장하는 단계와, 상기 서버가 상기 주민등록번호의 후단 6자리 숫자를 더하고 상기 S-KEY로 나누어 상기 S-KEY를 초과하는 경우 나머지를 S-KEY값으로 하고, 초과하지 않은 경우 상기 더한 숫자를 S-KEY값으로 상기 제2데이터베이스에 저장하는 단계와, 상기 서버가 상기 주민등록번호를 상기 S-TABLE과 S-KEY값에 의거하여 암호화한 최종정보를 제3데이터베이스에 저장하는 단계와, 상기 단말을 통해 상기 서버에 정보 검색을 명령할 경우, 상기 제3데이터베이스에서 전달받은 최종정보를 전달받아 이를 인덱스 서칭하는 단계와, 상기 서칭된 최종정보를 상기 단말에 전달하는 단계를 포함하여 구성되는 것이 바람직하다.
본 발명은 원시자료와 S-KEY를 입력받는 입력장치와 하기 서버에 의해 전달받은 최종정보를 디스플레이하는 디스플레이장치를 포함하는 단말과, 상기 단말과 네트워크 등을 통해 온라인으로 연결되고, G-TABLE을 전달받거나, 상기 G-TABLE에 기초하여 S-TABLE을 저장하거나, 상기 원시자료를 상기 S-TABLE에 의거하여 암호화한 최종정보를 저장하는 서버와, 상기 G-TABLE을 저장하는 제1데이터베이스와, 상기 S-TABLE을 저장하는 제2데이터베이스와, 상기 서버에 의해 생성된 최종정보를 저장하는 제3데이터베이스를 포함하여 구성되는 것이 바람직하다.
본 발명은 가변코드를 사용하여 원시자료를 암호화 하므로 암호화한 상태에서 최종정보에 대한 인덱싱이 가능하며 암호 자료를 신속히 찾을 수 있고, 특히 수 천만건의 고객정보를 관리하고 있는 금융기관이나 통신 회사 및 고객정보를 관리하 여야 하는 회사는 대규모 Hardware 투자 없이도 기존 프로그램을 조금 수정하면 고객의 정보를 안전하게 관리할 수 있다.
본 발명은 주민등록번호와 계좌번호, 카드번호 등 개인정보를 암호화하고 검색 처리하는 데 이상적이며, 내부자가 개인정보DB를 유출하더라도 해당 정보를 해독하지 못하게 막는 보안 효과가 있다.
본 발명은 테이블을 이용하여 암/복호화하므로 암/복호화 작업이 매우 빠르다.
본 발명은 G-TABLE과 S-TABLE을 함께 사용하므로 분포분석에 의한 공격을 방어할 수 있다
본 발명은 숫자 데이타 뿐만 아니라 문자 데이터에 대하여 암호화가 가능하다.
이하 도면을 참조하여 본 발명의 실시를 위한 구체적인 내용을 자세히 설명한다.
이하 본 발명의 실시를 위한 내용에서 설명되는 원시자료는 암호화를 위해 서버에 단말기로 입력되는 문자 또는 숫자 자료로서, 주민등록번호 등이 바람직하다.
또한 이하 설명되는 S-KEY는 일반적인 숫자 데이터이고, 이를 서버에서 단말을 통해 입력받아 S-TABLE의 테이블 크기를 결정한다.
본 발명에 따른 가변코드 테이블을 이용한 데이터 암복호화 장치(200)는 다수의 원시자료를 입력하거나 출력받아 디스플레이하는 단말(100)과 S-TABLE을 설정하고 상기 원시자료를 상기 S-TABLE에 의거하여 암호화하는 서버(210)와 상기 서버(210)에 의해 생산된 최종정보등을 저장하는 3개의 데이터베이스들로 구성된다.
상기 단말(100)은 주로 원시자료를 입력할 때 사용하는 입력장치와 상기 서버(210)에 의해 전달받은 최종정보를 디스플레이하는 디스플레이장치를 포함한다.
상기 서버(210)는 상기 단말(100)과 네트워크 등을 통해 온라인으로 연결되고, 제1데이터베이스에서 G-TABLE을 전달받거나, 상기 G-TABLE에 기초하여 S-TABLE을 설정하고 제2데이터베이스에 저장하거나, 상기 원시자료를 상기 S-TABLE에 의거하여 암호화한 최종정보를 제3데이터베이스에 저장하는 역할을 한다.
상기 3개의 데이터베이스는 각각 G-TABLE을 저장하는 제1데이터베이스와, 상기 서버(210)에 의해 생성된 정보를 저장하는 제2데이터베이스와 제3데이터베이스로 크게 나뉜다.
도2는 본 발명에 따른 가변코드 테이블을 이용한 데이터 암복호화 방법의 테이블들이 사용되는 순서를 보여주는 도면이고, 도3은 본 발명에 따른 가변코드 테이블을 이용한 데이터 암복호화 방법의 순서를 대략적으로 보여주는 도면이고, 도4는 본 발명에 따른 가변코드 테이블을 이용한 데이터 암복호화 방법의 EBCDIC 코드표를 보여주는 도면이고, 도5는 본 발명에 따른 가변코드 테이블을 이용한 데이터 암복호화 방법의 G-TABLE을 보여주는 도면이고, 도6은 본 발명에 따른 가변코드 테 이블을 이용한 데이터 암복호화 방법의 S-KEY에 따른 각 숫자의 암호를 보여주는 S-TABLE을 나타내는 도면이다.
이하 도2 내지 도6을 참조하여 본 발명에 따른 가변코드 테이블을 이용한 데이터 암복호화 방법 중에서 G-TABLE과 S-TABLE과 S-KEY를 생성하는 장치를 이용한 방법에 대해 자세히 설명한다.
일반적으로 컴퓨터가 사용하는 문자나 숫자에는 각 글자에 상응하는 16진수 코드가 배정되어 있는데 IBM계열 컴퓨터는 EBCDIC 코드 체계를 쓰며 Unix 계열의 컴퓨터는 ASCII코드 체계를 사용한다.
이러한 코드체계는 문자와 숫자를 표현할 때 항상 일정한 16진수를 쓰므로 고정된 코드를 사용하는 시스템이라고 할 수 있다.
도2에서 보는 바와 같이 본 발명에 따른 가변코드 테이블을 이용한 데이터 암복호화 방법은 도4의 EBCDIC 코드를 중심으로 설명할 경우 상기 제1데이터베이스에 저장된 도5의 EBCDIC 코드에 따른 G-TABLE이 미리 형성되어 저장된다.
상기 G-TABLE은 각 문자가 원래의 순서대로 형성되는 것이 바람직하며(본 발명에서는 # ~ Z 순서), 도5의 가변코드-FROM과 가변코드-TO에서 보는 바와 같이 그 범위만은 랜덤함수로 자동생성되거나 사람에 의해 수동으로 생성될 수도 있다.
상기 G-TABLE은 문자 하나에 16진수 하나를 배정하는 도4의 EBCDIC코드표와는 달리, 문자 하나에 복수의 16진수를 배정한 가변 코드 테이블이다.
상기 G-TABLE은 외부인이 문자에 배정된 16진수를 유추하지 못하도록 문자에 배정하는 16진수의 갯수를 달리하고 순서에 맞춰 배열한다.
이하 설명하는 S-TABLE은 랜덤하게 배열하지만, S-TABLE의 기준을 설정하는 G-TABLE은 순서에 맞춰 체계적으로 배열한다.
즉 도5에서 보는 바와 같이 특수문자인 #에서 @로, 소문자인 a에서 z로, 대문자인 A에서 Z로 순서에 맞게 배열된다.
상기 # ~ Z는 도5에서 보는 바와 같이 EBCDIC 코드에 따른 16진수에 대응하는 문자이다.
이러한 순서는 변형되면 안되며 미리 단말을 통해 순서대로 입력되는 것이 바람직하다.
이 과정은 마치 기획자의 의도에 맞춰 선거구 경계를 조정한 작업인 Garrymandering과 유사하므로 Garrymandering 이라고 부르고자 하며 이 과정을 거쳐 만든 새로운 “가변 코드” 테이블을 G-TABLE(Garrymandering table)이라고 정의한다.
따라서 서버는 G-TABLE을 이용하여 평문에서 나타나는 임의의 숫자와 문자를 암호화 과정에서 어떤 16진수로 변환하는지를 결정한다.
또한 서버는 16진수를 지정할 때 암호문자의 정열 순서가 원시자료의 정열순서와 동일하게 16진수를 배정하여 암호화 후의 최종자료가 원시자료와 동일한 순서로 정열 되도록 한다.
도6에서 보는 바와 같이 본 발명에 따른 S-TABLE은 상기 G-TABLE에 대응하여 각 숫자에 대한 암호문자를 할당하게 된다.
상기 S-TABLE은 원시 자료(Source data)의 문자를 암호화 할 때 어떤 16진수로 변환할 것인지 결정하는 테이블이다.
즉 상기 S-TABLE은 서버(210)가 각 숫자를 상기 G-TABLE에 대응하도록 열에 맞게 설정하고 이를 S-KEY에 따라 행에 맞게 랜덤하게 배열한 테이블이다.
이 때 G-TABLE을 기초로 특정 문자를 어떤 문자로 일대일 변환(substitution)할 것인지 결정하여야 하며, 이 과정을 통해 만든 테이블을 S-TABLE(Substitution Table) 이라고 정의한다.
즉 도5의 통상문자 0은 문자출력값이 # 에서 h 내에서 할당되는데, 도6에서 0은 1에 #이 할당되고, 13도 상기 도5의 범위 내인 e로 할당된다.
여기에서 암호문을 입수한 외부인이 분포분석 공격을 통해 원문을 해독하려는 시도를 차단하려면 S-TABLE 작성시 평문의 문자에 해당하는 16진수를 다양하게 조합하여야 한다.
상기 분포분석(Frequency Analysis) 공격은 해킹 방법의 일종으로서, 암호문 즉 본 발명에 따른 최종정보에 출현한 문자의 빈도를 이용하여 도수분포표를 만들고 이 표와 이미 알고 있는 알파벳의 출현빈도표를 대조하여 암호문자에 해당하는 평문문자를 알아내는 방법이다.
그런데 본 발명에 따른 데이터 암복호화 방법은 S-TABLE 등에 레코드(record)를 많이 만들어 사용하므로 분포분석을 통한 평문해독이 거의 불가능하도록 조절할 수 있다.
또한 S-TABLE의 레코드 중에서 특정 레코드를 찾을 수 있도록 하는 정보가 S-KEY값이다.
상기 S-KEY는 자료를 암/복호화할 때 원시자료와 함께 시스템이 알 수 있도록 제공하고, 상기 S-KEY값은 이하 설명하는 계산방법에 의해 계산된다.
따라서 동일한 문자라도 S-KEY값이 다르면 암호화 결과가 달라지므로 이 암호화 방법은 분포분석 공격으로부터 안전하다.
이하 본 발명에 따른 가변코드 테이블을 이용한 데이터 암복호화 방법의 일실시예를 설명한다.
본 발명의 가변코드 테이블을 이용한 데이터 암복호화 방법에 따른 일실시예는 숫자 또는 문자로 이루어진 원시자료와 숫자 범위를 나타내는 S-KEY를 단말을 통해 입력받는 단계와, 서버가 제1데이터베이스에서 상기 원시자료의 숫자 또는 문자에 대응하는 16진수를 순서적으로 배열한 G-TABLE을 전달받는 단계와, 상기 서버가 상기 숫자 또는 문자를 상기 G-TABLE에 대응하도록 상기 S-KEY의 범위 내에서 16진수를 랜덤하게 배열한 S-TABLE을 설정하고 제2데이터베이스에 저장하는 단계와, 상기 서버가 상기 원시자료를 상기 S-TABLE과 상기 S-KEY 범위 중 하나의 숫자를 랜덤하게 선택한 S-KEY값에 의거하여 암호화한 최종정보를 제3데이터베이스에 저장하는 단계로 구성된다.
한편 상기 제3데이터베이스에 저장하는 단계 후에는, 상기 단말(100)을 통해 상기 서버(210)에 정보 검색을 명령할 경우, 상기 제3데이터베이스에서 전달받은 최종정보를 전달받아 이를 인덱스 서칭하는 단계와, 상기 서칭된 최종정보를 상기 단말(100)에 전달하는 단계가 더 추가된다.
본 발명에 따른 가변코드 테이블을 이용한 데이터 암복호화 방법의 또 다른 실시예는 아래와 같다.
본 발명은 주민등록번호와 S-KEY를 단말(100)을 통해 입력받는 단계와, 서버(210)가 제1데이터베이스에서 0에서 9까지 숫자에 대응하는 문자를 순서적으로 배열한 G-TABLE을 전달받는 단계와, 상기 서버(210)가 상기 G-TABLE에 대응하도록 S-KEY의 범위 내에서 상기 문자를 랜덤하게 배열한 S-TABLE을 설정하고 제2데이터베이스에 저장하는 단계와, 상기 서버(210)가 상기 주민등록번호의 후단 6자리 숫자를 더하고 상기 S-KEY로 나누어 상기 S-KEY를 초과하는 경우 나머지를 S-KEY값으로 하고, 초과하지 않은 경우 상기 더한 숫자를 S-KEY값으로 상기 제2데이터베이스에 저장하는 단계와, 상기 서버(210)가 상기 주민등록번호를 상기 S-TABLE과 S-KEY값에 의거하여 암호화한 최종정보를 제3데이터베이스에 저장하는 단계와, 상기 단말(100)을 통해 상기 서버(210)에 정보 검색을 명령할 경우, 상기 제3데이터베이스에서 전달받은 최종정보를 전달받아 이를 인덱스 서칭하는 단계와, 상기 서칭된 최종정보를 상기 단말(100)에 전달하는 단계로 구성된다.
구체적으로 예를 들어 본 발명에 따른 가변코드 테이블을 이용한 데이터 암복호화 방법의 일실시예를 설명한다.
예를 들어 원시자료가 123456 1987654(주민등록번호)인 경우 1987654는 정부 부여 시퀀스 번호이다.
이 외에도 원시자료는 아이디(ID)나 패스워드 처럼 문자일 수도 있다.
상기 1987654중 제일 앞의 1은 성별을 표시하고 상기 123456은 생년월일을 표시하므로 해커들의 분포분석 공격에 쉽게 노출될 수 있어 암호화를 하지 않는 것이 바람직하다.
그리고 상기 생년월일과 성별을 표시하는 상기 123456 1은 본 발명에 따른 S-KEY값을 산출할 때 사용되는 것이 바람직하다.
여기에서 상기 S-KEY값은 처음 원시자료와 함께 설정된 S-KEY의 배열 중 해당하는 숫자를 뜻한다.
S-KEY값은 상기 1234561을 각각 더해 나온 수 22를 도6의 키의 갯수 13으로 나눈 나머지이다.
여기에서 13보다 적은 수는 그 수를 나머지로 한다.
따라서 S-KEY값은 9가 되고 도6의 키 9번줄에서 0은 @로 치환되고, 마지막 9는 W로 치환된다.
물론, 상기 S-KEY값은 주민등록번호처럼 원시자료가 숫자가 아닌 문자인 경우에는 서버가 랜덤하게 지정할 수도 있다.
결론적으로 주민등록번호 후단에서 1을 제외한 상기 987654의 암화화대상정보는 WTSRLK로 암호화된다.
이렇게 단순하게 암호화된 정보는 암/복호화 작업이 매우 빠르며, G-TABLE과 S-TABLE을 함께 사용하므로 분포분석에 의한 공격을 방어할 수 있고, 최종 자료가 원시 자료와 동일한 순서를 유지하도록 가변 코드를 조절하여 암호화된 자료를 복호화하지 않고 매우 빠르게 원하는 자료를 찾을 수 있게 된다.
구체적으로 예를 들어 본 발명에 따른 가변코드 테이블을 이용한 데이터 암복호화 방법 중 인덱스 서칭의 일실시예를 설명한다.
Figure 112009001425713-pat00001
상기 표1은 본 발명에 따른 서칭 기능을 용이하게 설명하기 위해 일예로서 테스트용 주민등록번호를 가상으로 설정하였다.
상기 표1 좌측의 입력순서는 상기 단말에서 주민등록번호 등이 입력되는 순서를 말한다.
상기 주민등록번호를 관리하는 서버는 오라클과 같은 일반적인 데이터베이스 프로그램에 존재하는 인덱스 기능과 서칭 기능을 포함하는 것으로 가정한다.
상기 주민등록번호는 그 숫자의 선후에 따라 상기 표1의 정열 순서대로 정열되는 것이 일반적이다.
이하 이러한 표1의 주민등록번호를 이용하여 기존의 암호화 방법과 본 발명에 따른 암호화 방법을 비교 설명한다.
Figure 112009001425713-pat00002
기존의 암호화 방법으로 주민등록번호를 암호화 하면 상기 표2와 같이 원래의 정열순서가 변경이 된다.
즉 인덱스(정열순서)가 암호화 작업 전 35412에서 암호화 작업 후 15423으로 전혀 달라져, 서칭하기 위해서는 다시 복호화 작업을 거쳐 다시 서칭하는 방법 밖에 없다.
본 발명은 이러한 문제를 암호 문자를 순서대로 배열한 G-TABLE 등을 이용하여 방지하고자 한다.
따라서 기존의 암호화 방법은 자료를 암호화한 다음에는 데이터베이스에서 해당 자료를 찾을 때 인덱스 기능을 사용할 수 없으며 이로 인해 암호화된 자료를 다시 찾기가 매우 어렵다.
Figure 112009029625557-pat00015
표3에서 보는 바와 같이 본 발명에 따른 암호 문자를 순서대로 배열한 G-TABLE 등을 이용한 암호화 방법은 암호화 후에도 정열순서가 변경되지 않음을 알 수 있다.
따라서 본 발명에 따른 암호화 방법은 정렬 순서를 바꾸지 않은 채 숫자와 문자를 모두 암호화하여 암호화 상태에서 숫자와 문자의 검색이 가능하다.
또한 검색할 때에는 복호화하지 않고서도 인덱스를 사용하여 검색할 수 있으므로 검색 속도저하가 나타나지 않는다.
따라서 주민등록번호와 계좌번호, 카드번호 등 개인정보를 암호화하고 검색 처리하는 데 이상적이며, 내부자가 개인정보DB를 유출하더라도 해당 정보를 해독하지 못하게 막는 보안성이 높아진다.
도7은 본 발명에 따른 가변코드 테이블을 이용한 데이터 암복호화 방법의 전체적인 순서를 구체적으로 보여주는 도면이고, 도8은 도7의 전체적인 순서 중 S-KEY값을 계산하는 순서를 구체적으로 보여주는 도면이다.
이하 상기 도면을 참조하여 본 발명에 따른 데이터 암복호화 방법의 일실시예를 자세히 설명한다.
먼저 단말을 통해 암호로 변환할 원시 또는 소스 데이터(주민등록번호)와 S-KEY과 가중치값을 입력받는다(S100).
그리고 서버는 연산의 편리성을 위해 상기 소스 데이터를 작업배열로 이송한다(S110).
계속하여 서버는 상기 작업배열에 저장된 소스 데이터를 워크에어리어(WORK AREA;WKRRN)로 전달하고, 이 데이터가 숫자인지 판단한다(S120).
여기에서 서버는 미리 제1데이터베이스에서 0에서 9까지 숫자에 대응하는 문자를 순서적으로 배열한 G-TABLE과 이에 대응하도록 S-KEY의 범위 내에서 상기 문자를 랜덤하게 배열한 S-TABLE을 저장한다.
그리고 상기 서버가 주민등록번호의 생년월일과 성별구분 정보로 S-KEY값을 계산한다(S130).
계속하여 서버가 TOT, SUM, I, J와 같은 변수의 값을 초기화한다(S131).
이러한 변수값은 프로그램 내에서 합계값 또는 배열을 차례대로 읽어나가기 위한 변수값이다.
그리고 생년월일과 성별정보 각 수치와 가중치를 곱한 합계값을 산출한다(S132).
예를 들어 단말을 통해 입력받은 각 생년월일과 성별정보에 대응하는 가중치를 곱하고 이를 합하는 것이 바람직하다.
이 후 산출된 합계값을 S-TABLE 크기로 나누어 나머지(S-KEY값)를 계산한다(S133).
계속하여 서버는 상기 S-KEY값에 해당하는 항목을 도6에서 찾아 새로운 CHAR 배열에 저장한다(S140).
그리고 서버는 상기 작업배열 숫자를 새로 생성된 CHAR 배열과 한자씩 대조하여 변환하고 변환된 작업배열을 상기 워크에어리어에 다시 전달한다.
이 외에 상기 S120에서 워크에어리어의 데이터가 숫자가 아닌 경우 이 데이터에 공백문자를 채워 에러처리한다(S125).
도9 내지 도11을 참조하여 본 발명의 일실시예에 따른 가변코드 테이블을 이용한 데이터 암복호화 방법을 프로그램화하여 구체적으로 설명한다.
여기서 사용하는 프로그램은 IBM에서 생산한 AS400 서버에서 동작시키기 위한 RPG 프로그램으로 작성한 것이다.
상기 RPG 프로그램은 보험회사, 금융기관 및 증권사에서 일반적으로 많이 사용되는 프로그램이므로 이에 대한 자세한 설명은 생략한다.
먼저 상기 프로그램은 S-TABLE과 S-TABLE의 RECORD와, 전달받은 주민등록번호를 분리하는 워크에어리어인 WKRRN과 주민등록번호를 문자로 변환하는 워크에어리어를 정의한다.
상기 프로그램 중 설명부분인 (1)은 호출 PROGRAM이 PARAMETER로 전달하는 주민등록번호를 접수하는 부분이다.
(2)는 주민등록번호를 RRN이라는 작업배열로 이송하는 부분이다.
(3)은 주민등록번호의 숫자가 입력되었는지 점검하는 부분이다.
(4)는 주민등록번호의 생년월일과 성별정보를 이용하여 S-KEY값을 산출하는 부분이다.
(5)는 S-KEY값을 이용하여 S-TABLE에 있는 해당 레코드를 찾아서 변환기준 문자열에 이송하는 부분이다.
(6)은 주민등록번호 중 생년월일과 성별구분을 제외한 나머지 숫자를 암호문자로 변경하는 부분이다.
(7)은 변환이 완료된 값을 이 프로그램을 호출했던 프로그램에 PARAMETER로 반환하기 위해 WKRRN에 이송하는 부분이다.
(8)은 암호화 프로그램 작업을 완료하는 부분이다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것은 아니며, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변경 및 변형이 가능하다는 것은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백하다 할 것이다.
도1은 본 발명에 따른 가변코드 테이블을 이용한 데이터 암복호화 방법의 전체적인 구성을 나타내는 도면.
도2는 본 발명에 따른 가변코드 테이블을 이용한 데이터 암복호화 방법의 테이블들이 사용되는 순서를 보여주는 도면.
도3은 본 발명에 따른 가변코드 테이블을 이용한 데이터 암복호화 방법의 순서를 대략적으로 보여주는 도면.
도4는 본 발명에 따른 가변코드 테이블을 이용한 데이터 암복호화 방법의 EBCDIC 코드표를 보여주는 도면.
도5는 본 발명에 따른 가변코드 테이블을 이용한 데이터 암복호화 방법의 G-TABLE을 보여주는 도면.
도6은 본 발명에 따른 가변코드 테이블을 이용한 데이터 암복호화 방법의 S-KEY에 따른 각 숫자의 암호를 보여주는 S-TABLE을 나타내는 도면.
도7은 본 발명에 따른 가변코드 테이블을 이용한 데이터 암복호화 방법의 전체적인 순서를 구체적으로 보여주는 도면.
도8은 도7의 전체적인 순서 중 S-KEY값을 계산하는 순서를 구체적으로 보여주는 도면.
도9는 보험사 등에서 주로 사용하는 프로그램인 RPG로 작성한 프로그램 중 처음 정의하는 것을 보여주는 도면.
도10은 RPG로 작성한 프로그램 중 S-KEY값을 산출하는 것을 보여주는 도면.
도11은 RPG로 작성한 프로그램 중 암호화하여 최종자료를 산출하는 것을 보여주는 도면.
<도면의 주요부분에 대한 설명>
100 : 단말
200 : 가변코드 테이블을 이용한 데이터 암복호화 장치
210 : 서버
220 : 제1데이터베이스
230 : 제2데이터베이스
240 : 제3데이터베이스

Claims (4)

  1. 서버를 이용하여 암호화하는 방법에 있어서,
    숫자 또는 문자로 이루어진 원시자료와 숫자 범위를 나타내는 S-KEY를 단말을 통해 입력받는 단계와;
    서버가 제1데이터베이스에서 상기 원시자료의 숫자 또는 문자에 대응하는 16진수를 순서적으로 배열한 G-TABLE을 전달받는 단계와;
    상기 서버가 상기 숫자 또는 문자를 상기 G-TABLE에 대응하도록 상기 S-KEY의 범위 내에서 16진수를 랜덤하게 배열한 S-TABLE을 설정하고 제2데이터베이스에 저장하는 단계와;
    상기 서버가 상기 원시자료를 상기 S-TABLE과 상기 S-KEY 범위 중 하나의 숫자인 S-KEY값에 의거하여 암호화한 최종정보를 제3데이터베이스에 저장하는 단계;
    를 포함하여 구성되는 것을 특징으로 하는 가변코드 테이블을 이용한 데이터 암복호화 방법.
  2. 제1항에 있어서,
    상기 제3데이터베이스에 저장하는 단계 후에는,
    상기 단말을 통해 상기 서버에 정보 검색을 명령할 경우,
    상기 제3데이터베이스에서 전달받은 최종정보를 전달받아 이를 인덱스로 서 칭(searching)하는 단계와;
    상기 서칭된 최종정보를 상기 단말에 전달하는 단계;
    를 더 포함하여 구성되는 것을 특징으로 하는 가변코드 테이블을 이용한 데이터 암복호화 방법.
  3. 서버를 이용하여 암호화하는 방법에 있어서,
    주민등록번호와 숫자 범위를 나타내는 S-KEY를 단말을 통해 입력받는 단계와;
    서버가 제1데이터베이스에서 0에서 9까지 숫자에 대응하는 문자를 순서적으로 배열한 G-TABLE을 전달받는 단계와;
    상기 서버가 상기 0에서 9까지의 숫자들을 상기 G-TABLE에 대응하도록 상기 S-KEY의 범위 내에서 상기 문자를 랜덤하게 배열한 S-TABLE을 설정하고 제2데이터베이스에 저장하는 단계와;
    상기 서버가 상기 주민등록번호의 후단 6자리 숫자를 더하고 상기 S-KEY로 나누어 상기 S-KEY를 초과하는 경우 나머지를 S-KEY값으로 하고, 초과하지 않은 경우 상기 더한 숫자를 S-KEY값으로 상기 제2데이터베이스에 저장하는 단계와;
    상기 서버가 상기 주민등록번호를 상기 S-TABLE과 S-KEY값에 의거하여 암호화한 최종정보를 제3데이터베이스에 저장하는 단계와;
    상기 단말을 통해 상기 서버에 정보 검색을 명령할 경우, 상기 제3데이터베 이스에서 전달받은 최종정보를 전달받아 이를 인덱스 서칭하는 단계와;
    상기 서칭된 최종정보를 상기 단말에 전달하는 단계;
    를 포함하여 구성되는 것을 특징으로 하는 가변코드 테이블을 이용한 데이터 암복호화 방법.
  4. 서버를 이용한 암호화 장치에 있어서,
    숫자 또는 문자로 이루어진 원시자료와 숫자 범위를 나타내는 S-KEY를 입력받는 입력장치와 하기 서버에 의해 전달받은 최종정보를 디스플레이하는 디스플레이장치를 포함하는 단말과;
    상기 단말과 네트워크 등을 통해 온라인으로 연결되고, 숫자 또는 문자에 대응하는 16진수를 순서적으로 배열한 G-TABLE을 전달받거나, 상기 G-TABLE에 기초하여 상기 S-KEY의 범위 내에서 16진수를 랜덤하게 배열한 S-TABLE을 저장하거나, 상기 원시자료를 상기 S-TABLE과 상기 S-KEY 범위 중 하나의 숫자인 S-KEY값에 의거하여 암호화한 최종정보를 저장하는 서버와;
    상기 G-TABLE을 저장하는 제1데이터베이스와;
    상기 S-TABLE을 저장하는 제2데이터베이스와;
    상기 서버에 의해 생성된 최종정보를 저장하는 제3데이터베이스;
    를 포함하여 구성되는 것을 특징으로 하는 가변코드 테이블을 이용한 데이터 암복호화 장치.
KR1020090001890A 2009-01-09 2009-01-09 가변코드 테이블을 이용한 데이터 암복호화 장치 및 그 방법 KR100910303B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090001890A KR100910303B1 (ko) 2009-01-09 2009-01-09 가변코드 테이블을 이용한 데이터 암복호화 장치 및 그 방법
PCT/KR2009/005168 WO2010079878A1 (ko) 2009-01-09 2009-09-11 가변코드 테이블을 이용한 데이터 암복호화 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090001890A KR100910303B1 (ko) 2009-01-09 2009-01-09 가변코드 테이블을 이용한 데이터 암복호화 장치 및 그 방법

Publications (1)

Publication Number Publication Date
KR100910303B1 true KR100910303B1 (ko) 2009-08-03

Family

ID=41209401

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090001890A KR100910303B1 (ko) 2009-01-09 2009-01-09 가변코드 테이블을 이용한 데이터 암복호화 장치 및 그 방법

Country Status (2)

Country Link
KR (1) KR100910303B1 (ko)
WO (1) WO2010079878A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102252861B1 (ko) * 2020-07-29 2021-05-14 윤성민 데이터 보안 시스템 및 그 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8810598B2 (en) 2011-04-08 2014-08-19 Nant Holdings Ip, Llc Interference based augmented reality hosting platforms
CN108920131B (zh) * 2018-04-27 2022-03-22 北京奇艺世纪科技有限公司 数据处理方法和装置
CN112260822B (zh) * 2020-09-16 2024-02-27 杜绍森 一种结构化数字水印加密方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005141282A (ja) 2003-11-04 2005-06-02 Fujitsu Ltd 文字データの暗号化プログラム
JP2005322963A (ja) 2004-05-06 2005-11-17 Dainippon Printing Co Ltd 暗号化もしくは復号化処理用のicカードならびにこれを用いた暗号通信システムおよび暗号通信方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001243048A (ja) * 2000-03-01 2001-09-07 Fujitsu Ltd コード変換方法、コード変換装置及び記録媒体
JP5060119B2 (ja) * 2006-12-19 2012-10-31 株式会社富士通ビー・エス・シー 暗号処理プログラム、暗号処理方法および暗号処理装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005141282A (ja) 2003-11-04 2005-06-02 Fujitsu Ltd 文字データの暗号化プログラム
JP2005322963A (ja) 2004-05-06 2005-11-17 Dainippon Printing Co Ltd 暗号化もしくは復号化処理用のicカードならびにこれを用いた暗号通信システムおよび暗号通信方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102252861B1 (ko) * 2020-07-29 2021-05-14 윤성민 데이터 보안 시스템 및 그 방법
WO2022025537A1 (ko) * 2020-07-29 2022-02-03 윤성민 데이터관리컴퓨터, 데이터관리컴퓨터를 포함한 데이터보안시스템 및 데이터보안방법
KR20220014804A (ko) * 2020-07-29 2022-02-07 윤성민 데이터 보안 시스템 및 그 방법
KR102552111B1 (ko) * 2020-07-29 2023-07-06 윤성민 데이터 보안 시스템 및 그 방법

Also Published As

Publication number Publication date
WO2010079878A1 (ko) 2010-07-15

Similar Documents

Publication Publication Date Title
US20210099287A1 (en) Cryptographic key generation for logically sharded data stores
US7864952B2 (en) Data processing systems with format-preserving encryption and decryption engines
CN107209787B (zh) 提高专用加密数据的搜索能力
US8855296B2 (en) Data processing systems with format-preserving encryption and decryption engines
US9208491B2 (en) Format-preserving cryptographic systems
US9489521B2 (en) Format preserving encryption methods for data strings with constraints
US8208627B2 (en) Format-preserving cryptographic systems
US8949625B2 (en) Systems for structured encryption using embedded information in data strings
CN106161006B (zh) 一种数字加密算法
US11488134B2 (en) Format-preserving cryptographic systems
US8600048B1 (en) Format-translating encryption systems
CN106610995B (zh) 一种创建密文索引的方法、装置及系统
KR101805878B1 (ko) 압축을 사용하여 패스워드 공격 방해
KR101476039B1 (ko) 데이터베이스 암호화 방법 및 이의 실시간 검색 방법
CA3065767C (en) Cryptographic key generation for logically sharded data stores
KR100910303B1 (ko) 가변코드 테이블을 이용한 데이터 암복호화 장치 및 그 방법
JP2024508565A (ja) 暗号化の使用を伴わないデータベース、データ伝送、及びファイルの保護
EP2124166A1 (en) Data pseudonymisation.
KR101045222B1 (ko) 개인 정보를 순서 정보와 내용 정보로 분리하여 암호화하고 합성하는 방법, 장치,서버 및 기록 매체
US10853502B1 (en) Systems and methods for reducing computational difficulty of cryptographic operations
EP3582133B1 (en) Method for de-identifying data
US11829512B1 (en) Protecting membership in a secure multi-party computation and/or communication
Schroeder Pad and Chaff: secure approximate string matching in private record linkage
US20230299944A1 (en) Computer-implemented method for inputting and storing patient data
Sah et al. Preserving Data Privacy with Record Retrieval using Visual Cryptography and Encryption Techniques

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120725

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130718

Year of fee payment: 5

R401 Registration of restoration
FPAY Annual fee payment

Payment date: 20150721

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160721

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee