KR20230124272A - 데이터베이스에 저장되어 있는 개인 정보를 마스킹 처리하여 전송할 수 있는 개인 정보 관리 서버 및 그 동작 방법 - Google Patents

데이터베이스에 저장되어 있는 개인 정보를 마스킹 처리하여 전송할 수 있는 개인 정보 관리 서버 및 그 동작 방법 Download PDF

Info

Publication number
KR20230124272A
KR20230124272A KR1020220021363A KR20220021363A KR20230124272A KR 20230124272 A KR20230124272 A KR 20230124272A KR 1020220021363 A KR1020220021363 A KR 1020220021363A KR 20220021363 A KR20220021363 A KR 20220021363A KR 20230124272 A KR20230124272 A KR 20230124272A
Authority
KR
South Korea
Prior art keywords
record
value
masking
personal information
manager terminal
Prior art date
Application number
KR1020220021363A
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 KR1020220021363A priority Critical patent/KR20230124272A/ko
Publication of KR20230124272A publication Critical patent/KR20230124272A/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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • 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
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords

Abstract

개인 정보 관리 서버 및 그 동작 방법이 개시된다. 본 발명은 데이터베이스에 저장되어 있는 개인 정보를 마스킹 처리하여 전송할 수 있는 개인 정보 관리 서버 및 그 동작 방법을 제시함으로써, 상기 데이터베이스에 저장되어 있는 개인 정보가 타인에게 유출되는 것을 방지할 수 있다.

Description

데이터베이스에 저장되어 있는 개인 정보를 마스킹 처리하여 전송할 수 있는 개인 정보 관리 서버 및 그 동작 방법{THE PERSONAL INFORMATION MANAGEMENT SERVER WHICH IS ABLE TO MASK AND TRANSMIT THE PERSONAL INFORMATION STORED IN A DATABASE, AND THE OPERATING METHOD THEREOF}
본 발명은 데이터베이스에 저장되어 있는 개인 정보를 마스킹 처리하여 전송할 수 있는 개인 정보 관리 서버 및 그 동작 방법에 대한 것이다.
개인 정보란, 주민등록번호나 전화번호 등과 같이, 특정 개인을 식별할 수 있는 정보를 의미한다.
최근에는, 고객 맞춤형 마케팅이나 사적 모임 활동 등에서, 이러한 개인 정보를 활용하는 경우가 증가하면서, 복수의 사용자들에 대한 개인 정보를 사전 수집하여 데이터베이스에 저장해 두는 경우가 많다. 이를 통해, 관리자는 개인 정보를 보다 효율적으로 관리할 수 있고, 자신이 원하는 목적에 따라, 데이터베이스에 저장되어 있는 개인 정보를 활용할 수 있다.
하지만, 개인 정보가 무분별하게 타인에게 유출된다면 범죄에 악용될 수 있다는 점에서, 데이터베이스에 저장되어 있는 개인 정보가 타인에게 유출되지 않도록 주의해야 한다.
이와 관련해서, 데이터베이스에 저장되어 있는 개인 정보를 추출하여 관리자에게 전송할 때, 개인 정보를 마스킹 처리하여 전송하고, 검증된 관리자만이 마스킹이 해제된 개인 정보를 획득할 수 있도록 한다면, 데이터베이스에 저장되어 있는 개인 정보가 타인에게 유출되는 것을 방지할 수 있을 것이다.
따라서, 데이터베이스에 저장되어 있는 개인 정보를 마스킹 처리하여 전송할 수 있는 기술에 대한 연구가 필요하다.
본 발명은 데이터베이스에 저장되어 있는 개인 정보를 마스킹 처리하여 전송할 수 있는 개인 정보 관리 서버 및 그 동작 방법을 제시함으로써, 상기 데이터베이스에 저장되어 있는 개인 정보가 타인에게 유출되는 것을 방지하고자 한다.
본 발명의 일실시예에 따른 데이터베이스에 저장되어 있는 개인 정보를 마스킹 처리하여 전송할 수 있는 개인 정보 관리 서버는 사전 설정된 n(n은 2 이상의 자연수임)가지 종류의 개인 정보들 각각에 대응되는 것으로 사전 설정된 마스킹(masking) 위치 정보 - 상기 n가지 종류의 개인 정보들 각각에 대응되는 마스킹 위치 정보는, 각 개인 정보를 표현하는 문자열에서, 사전 설정된 마스킹 기호로 마스킹 처리를 수행할 대상 문자열의 위치를 지시하는 정보를 의미함 - 가 기록된 마스킹 위치 테이블을 저장하여 유지하는 마스킹 위치 테이블 유지부, 복수의 사용자들 각각에 대한, 상기 n가지 종류의 개인 정보들로 구성된 레코드(record)가 저장되어 있는 개인 정보 데이터베이스, 관리자 단말로부터, 상기 복수의 사용자들 중 어느 한 명인 제1 사용자에 대한 레코드의 제공 요청이 수신되면, 상기 개인 정보 데이터베이스로부터 상기 제1 사용자에 대한 제1 레코드를 추출한 후, 상기 마스킹 위치 테이블을 참조하여, 상기 제1 레코드를 구성하는 상기 n가지 종류의 개인 정보들 각각에 대한 문자열에서, 각 개인 정보에 대응되는 마스킹 위치 정보에 따른 대상 문자열을, 상기 마스킹 기호로 마스킹 처리함으로써, 제1 마스킹 레코드를 생성하는 마스킹 레코드 생성부 및 상기 제1 마스킹 레코드가 생성되면, 상기 제1 마스킹 레코드를 상기 관리자 단말로 전송하는 마스킹 레코드 전송부를 포함한다.
또한, 본 발명의 일실시예에 따른 데이터베이스에 저장되어 있는 개인 정보를 마스킹 처리하여 전송할 수 있는 개인 정보 관리 서버의 동작 방법은 사전 설정된 n(n은 2 이상의 자연수임)가지 종류의 개인 정보들 각각에 대응되는 것으로 사전 설정된 마스킹 위치 정보 - 상기 n가지 종류의 개인 정보들 각각에 대응되는 마스킹 위치 정보는, 각 개인 정보를 표현하는 문자열에서, 사전 설정된 마스킹 기호로 마스킹 처리를 수행할 대상 문자열의 위치를 지시하는 정보를 의미함 - 가 기록된 마스킹 위치 테이블을 저장하여 유지하는 단계, 복수의 사용자들 각각에 대한, 상기 n가지 종류의 개인 정보들로 구성된 레코드가 저장되어 있는 개인 정보 데이터베이스를 유지하는 단계, 관리자 단말로부터, 상기 복수의 사용자들 중 어느 한 명인 제1 사용자에 대한 레코드의 제공 요청이 수신되면, 상기 개인 정보 데이터베이스로부터 상기 제1 사용자에 대한 제1 레코드를 추출한 후, 상기 마스킹 위치 테이블을 참조하여, 상기 제1 레코드를 구성하는 상기 n가지 종류의 개인 정보들 각각에 대한 문자열에서, 각 개인 정보에 대응되는 마스킹 위치 정보에 따른 대상 문자열을, 상기 마스킹 기호로 마스킹 처리함으로써, 제1 마스킹 레코드를 생성하는 단계 및 상기 제1 마스킹 레코드가 생성되면, 상기 제1 마스킹 레코드를 상기 관리자 단말로 전송하는 단계를 포함한다.
본 발명은 데이터베이스에 저장되어 있는 개인 정보를 마스킹 처리하여 전송할 수 있는 개인 정보 관리 서버 및 그 동작 방법을 제시함으로써, 상기 데이터베이스에 저장되어 있는 개인 정보가 타인에게 유출되는 것을 방지할 수 있다.
도 1은 본 발명의 일실시예에 따른 데이터베이스에 저장되어 있는 개인 정보를 마스킹 처리하여 전송할 수 있는 개인 정보 관리 서버의 구조를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 데이터베이스에 저장되어 있는 개인 정보를 마스킹 처리하여 전송할 수 있는 개인 정보 관리 서버의 동작 방법을 도시한 순서도이다.
이하에서는 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명하기로 한다. 이러한 설명은 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였으며, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 본 명세서 상에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.
본 문서에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다. 또한, 본 발명의 다양한 실시예들에 있어서, 각 구성요소들, 기능 블록들 또는 수단들은 하나 또는 그 이상의 하부 구성요소로 구성될 수 있고, 각 구성요소들이 수행하는 전기, 전자, 기계적 기능들은 전자회로, 집적회로, ASIC(Application Specific Integrated Circuit) 등 공지된 다양한 소자들 또는 기계적 요소들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수도 있다.
한편, 첨부된 블록도의 블록들이나 흐름도의 단계들은 범용 컴퓨터, 특수용 컴퓨터, 휴대용 노트북 컴퓨터, 네트워크 컴퓨터 등 데이터 프로세싱이 가능한 장비의 프로세서나 메모리에 탑재되어 지정된 기능들을 수행하는 컴퓨터 프로그램 명령들(instructions)을 의미하는 것으로 해석될 수 있다. 이들 컴퓨터 프로그램 명령들은 컴퓨터 장치에 구비된 메모리 또는 컴퓨터에서 판독 가능한 메모리에 저장될 수 있기 때문에, 블록도의 블록들 또는 흐름도의 단계들에서 설명된 기능들은 이를 수행하는 명령 수단을 내포하는 제조물로 생산될 수도 있다. 아울러, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 명령들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 가능한 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 정해진 순서와 달리 실행되는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 실질적으로 동시에 수행되거나, 역순으로 수행될 수 있으며, 경우에 따라 일부 블록들 또는 단계들이 생략된 채로 수행될 수도 있다.
도 1은 본 발명의 일실시예에 따른 데이터베이스에 저장되어 있는 개인 정보를 마스킹 처리하여 전송할 수 있는 개인 정보 관리 서버의 구조를 도시한 도면이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 개인 정보 관리 서버(110)은 마스킹 위치 테이블 유지부(111), 개인 정보 데이터베이스(112), 마스킹 레코드 생성부(113) 및 마스킹 레코드 전송부(114)를 포함한다.
마스킹 위치 테이블 유지부(111)는 사전 설정된 n(n은 2 이상의 자연수임)가지 종류의 개인 정보들 각각에 대응되는 것으로 사전 설정된 마스킹(masking) 위치 정보가 기록된 마스킹 위치 테이블을 저장하여 유지한다.
여기서, 상기 n가지 종류의 개인 정보들 각각에 대응되는 마스킹 위치 정보는, 각 개인 정보를 표현하는 문자열에서, 사전 설정된 마스킹 기호로 마스킹 처리를 수행할 대상 문자열의 위치를 지시하는 정보를 의미한다.
예컨대, n을 '4'라고 하고, 사전 설정된 마스킹 기호를 '*'라고 하는 경우, 마스킹 위치 테이블 유지부(111)는 하기의 표 1과 같은, 사전 설정된 '4'가지 종류의 개인 정보들 각각에 대응되는 것으로 사전 설정된 마스킹 위치 정보가 기록된 마스킹 위치 테이블을 저장하여 유지할 수 있다.
'4'가지 종류의 개인 정보들 마스킹 위치 정보
이름 이름을 표현하는 문자열에서,
첫 번째 문자를 제외한 나머지 문자들
생년월일 생년월일을 표현하는 문자열에서, 숫자에 해당되는 문자들
휴대폰 번호 휴대폰 번호를 표현하는 문자열에서, 숫자에 해당되는 문자들
주소 주소를 표현하는 문자열에서, 숫자에 해당되는 문자들
개인 정보 데이터베이스(112)에는 복수의 사용자들 각각에 대한, 상기 n가지 종류의 개인 정보들로 구성된 레코드(record)가 저장되어 있다.
예컨대, 전술한 예와 같이, n을 '4'라고 하는 경우, 개인 정보 데이터베이스(112)에는 하기의 표 2와 같은 복수의 사용자들 각각에 대한, '4'가지 종류의 개인 정보들로 구성된 레코드가 저장되어 있을 수 있다.
복수의 사용자들 레코드 이름 생년월일 휴대폰 번호 주소
사용자 1 레코드 1 홍길동 1985.09.01 010-2356-9812 서울시 영등포구
의사당대로 1
사용자 2 레코드 2 김특허 1992.12.30 010-1234-5678 서울시 강남구
영동대로 513
사용자 3 레코드 3 이상표 2013.03.09 010-7890-4321 경기도 인천시 중구
운서동 2851
사용자 4 레코드 4 박실용 1989.01.01 010-5319-6420 제주도 제주시
공항로 2
... ... ... ... ... ...
마스킹 레코드 생성부(113)는 관리자 단말(130)로부터, 상기 복수의 사용자들 중 어느 한 명인 제1 사용자에 대한 레코드의 제공 요청이 수신되면, 개인 정보 데이터베이스(112)로부터 상기 제1 사용자에 대한 제1 레코드를 추출한 후, 상기 마스킹 위치 테이블을 참조하여, 상기 제1 레코드를 구성하는 상기 n가지 종류의 개인 정보들 각각에 대한 문자열에서, 각 개인 정보에 대응되는 마스킹 위치 정보에 따른 대상 문자열을, 상기 마스킹 기호로 마스킹 처리함으로써, 제1 마스킹 레코드를 생성한다.
이때, 본 발명의 일실시예에 따르면, 마스킹 레코드 생성부(113)는 관리자 단말(130)로부터, 상기 제1 사용자에 대한 레코드의 제공 요청이 수신되면, 개인 정보 데이터베이스(112)로부터 상기 제1 레코드를 추출한 후, 상기 마스킹 위치 테이블을 참조하여, 상기 제1 레코드를 구성하는 상기 n가지 종류의 개인 정보들 각각에 대한 문자열에서, 각 개인 정보에 대응되는 마스킹 위치 정보에 따른 대상 문자열을 상기 마스킹 기호로 마스킹 처리한 후, 상기 제1 레코드를 구성하는 상기 n가지 종류의 개인 정보들 각각에 대한 문자열에서, 마스킹 처리되지 않은 문자열의 글자 서식과, 상기 마스킹 기호의 글자 서식을, 서로 다른 글자 서식으로 적용함으로써, 상기 제1 마스킹 레코드를 생성할 수 있다.
마스킹 레코드 전송부(114)는 마스킹 레코드 생성부(113)에 의해 상기 제1 마스킹 레코드가 생성되면, 상기 제1 마스킹 레코드를 관리자 단말(130)로 전송한다.
이하에서는, 마스킹 레코드 생성부(113) 및 마스킹 레코드 전송부(114)의 동작을 예를 들어, 상세히 설명하기로 한다.
먼저, 전술한 예와 같이, 사전 설정된 개인 정보 관리 서버(110)에 관리자 단말(130)로부터, 상기 복수의 사용자들 중 어느 한 명인 '사용자 1'에 대한 레코드의 제공 요청이 수신되었다고 가정하자.
그러면, 마스킹 레코드 생성부(113)는 상기 표 2와 같은 개인 정보 데이터베이스(112)로부터, 하기의 표 3과 같은 '사용자 1'에 대한 '레코드 1'을 추출할 수 있다.
홍길동 1985.09.01 010-2356-9812 서울시 영등포구 의사당대로 1
그러고 나서, 마스킹 레코드 생성부(113)는 상기 표 1과 같은 마스킹 위치 테이블을 참조하여, '레코드 1'을 구성하는 '4'가지 종류의 개인 정보들 각각에 대한 문자열에서, 각 개인 정보에 대응되는 마스킹 위치 정보에 따른 대상 문자열을, 하기의 표 4와 같이, 상기 마스킹 기호인 '*'로 마스킹 처리할 수 있다.
홍** ****.**.** ***-****-**** 서울시 영등포구 의사당대로 *
그 이후, 마스킹 레코드 생성부(113)는 상기 표 4와 같은 제1 레코드를 구성하는 '4'가지 종류의 개인 정보들 각각에 대한 문자열에서, 마스킹 처리되지 않은 문자열의 글자 서식과, 상기 마스킹 기호인 '*'의 글자 서식을, 서로 다른 글자 서식으로 적용할 수 있다. 이와 관련해서, 마스킹 레코드 생성부(113)는 상기 표 4와 같은 '마스킹 레코드 1'에서, 마스킹 처리되지 않은 문자열의 글자 서식을 '글꼴: 궁서체, 색상: 검은색, 굵기: 보통'으로 적용할 수 있고, 상기 마스킹 기호인 '*'의 글자 서식을 '글꼴: 바탕체, 색상: 빨간색, 굵기: 굵게'로 적용할 수 있다.
이렇게, 마스킹 레코드 생성부(113)에 의해 '마스킹 레코드 1'이 생성되면, 마스킹 레코드 전송부(114)는 '마스킹 레코드 1'을 관리자 단말(130)로 전송할 수 있다.
본 발명의 일실시예에 따르면, 개인 정보 관리 서버(110)는 부분 데이터 생성부(115), 전자 서명 요청부(116), 전자 서명 검증부(117) 및 레코드 전송부(118)를 더 포함할 수 있다.
부분 데이터 생성부(115)는 마스킹 레코드 전송부(114)에 의해 상기 제1 마스킹 레코드가 관리자 단말(130)로 전송된 이후, 관리자 단말(130)로부터, 상기 제1 마스킹 레코드에 대한 마스킹 해제 요청이 수신되면, 상기 제1 마스킹 레코드를 구성하는 데이터를 2개로 분할함으로써, 제1 부분 데이터와 제2 부분 데이터를 생성한다.
전자 서명 요청부(116)는 상기 제1 부분 데이터를 사전 설정된 공개키(상기 공개키와 키쌍을 이루는 개인키는, 관리자 단말(130)에 사전 저장되어 있음)로 암호화함으로써, 암호화 데이터를 생성한 후, 관리자 단말(130)로, 상기 암호화 데이터를 전송하면서, 상기 제1 마스킹 레코드에 대한 마스킹 해제를 진행하기 위한 전자 서명을 요청한다.
전자 서명 검증부(117)는 상기 전자 서명 요청에 대응하여, 관리자 단말(130)이 상기 암호화 데이터를 관리자 단말(130)에 사전 저장되어 있는 상기 개인키로 복호화함으로써 상기 제1 부분 데이터를 복원하고, 상기 제1 부분 데이터를 기초로, 상기 제1 마스킹 레코드를 구성하는 데이터로부터 상기 제2 부분 데이터를 추출한 후, 상기 제2 부분 데이터를 상기 개인키로 암호화하여 전자 서명 값을 생성함에 따라, 관리자 단말(130)로부터, 관리자 단말(130)에서 생성된 상기 전자 서명 값이 수신되면, 상기 전자 서명 값을 상기 공개키로 복호화함으로써, 복원 데이터를 생성하고, 상기 복원 데이터가 상기 제2 부분 데이터와 일치하는 것으로 확인되면, 상기 전자 서명 값에 대한 검증을 완료한다.
레코드 전송부(118)는 상기 전자 서명 값에 대한 검증이 완료되면, 개인 정보 데이터베이스(112)로부터 상기 제1 레코드를 추출하고, 상기 제1 레코드를 암호화한 후, 암호화된 상기 제1 레코드를 관리자 단말(130)로 전송한다.
이하에서는, 부분 데이터 생성부(115), 전자 서명 요청부(116), 전자 서명 검증부(117) 및 레코드 전송부(118)의 동작을 예를 들어, 상세히 설명하기로 한다.
먼저, 전술한 예와 같이, 마스킹 레코드 전송부(114)에 의해, 상기 표 4와 같은 '마스킹 레코드 1'이 관리자 단말(130)로 전송되었다고 하고, 그 이후, 개인 정보 관리 서버(110)에 관리자 단말(130)로부터, 상기 표 4와 같은 '마스킹 레코드 1'에 대한 마스킹 해제 요청이 수신되었다고 가정하자.
그러면, 부분 데이터 생성부(115)는 '마스킹 레코드 1'을 구성하는 데이터를, 2개로 분할함으로써, '부분 데이터 1'과 '부분 데이터 2'를 생성할 수 있다.
그 이후, 전자 서명 요청부(116)는 '부분 데이터 1'을 사전 설정된 공개키로 암호화함으로써, 암호화 데이터를 생성한 후, 관리자 단말(130)로, 상기 암호화 데이터를 전송하면서, '마스킹 레코드 1'에 대한 마스킹 해제를 진행하기 위한 전자 서명을 요청할 수 있다.
이때, 관리자 단말(130)의 메모리 상에는, 상기 공개키와 키쌍을 이루는 개인키가 저장되어 있을 수 있고, 개인 정보 관리 서버(110)로부터 상기 암호화 데이터와 상기 전자 서명 요청이 수신되면, 상기 암호화 데이터를 관리자 단말(130)에 사전 저장되어 있는 상기 개인키로 복호화함으로써 '부분 데이터 1'을 복원할 수 있다.
그러고 나서, 관리자 단말(130)은 '부분 데이터 1'을 기초로, '마스킹 레코드 1'을 구성하는 데이터로부터 '부분 데이터 2'를 추출한 후, '부분 데이터 2'를 상기 개인키로 암호화하여 전자 서명 값을 생성하여 개인 정보 관리 서버(110)로 전송할 수 있다.
이에 따라, 개인 정보 관리 서버(110)에 관리자 단말(130)로부터, 관리자 단말(130)에서 생성된 상기 전자 서명 값이 수신되면, 전자 서명 검증부(117)는 상기 전자 서명 값을 상기 공개키로 복호화함으로써, 복원 데이터를 생성할 수 있다.
이때, 상기 전자 서명 값은, '부분 데이터 2'가 상기 개인키로 암호화되어 생성된 값이므로, 전자 서명 검증부(117)는 상기 복원 데이터가 '부분 데이터 2'와 일치하는 것으로 확인한 후, 상기 전자 서명 값에 대한 검증을 완료할 수 있다.
이렇게, 전자 서명 검증부(117)에 의해 상기 전자 서명 값에 대한 검증이 완료되면, 레코드 전송부(118)는 개인 정보 데이터베이스(112)로부터 상기 표 3과 같은 '레코드 1'을 추출하고, '레코드 1'을 암호화한 후, 암호화된 '레코드 1'을 관리자 단말(130)로 전송할 수 있다.
이때, 본 발명의 일실시예에 따르면, 레코드 전송부(118)는 상기 제1 레코드를 암호화하여 관리자 단말(130)로 전송하기 위한 구체적인 구성으로, 시드 코드 테이블 유지부(119), 암호화 이벤트 발생부(120), 날짜 값 생성부(121), 부분 값 생성부(122), 연산 값 산출부(123), 시드 코드 추출부(124), 암호화키 생성부(125) 및 암호화 전송부(126)를 포함할 수 있다.
시드 코드 테이블 유지부(119)는 사전 설정된 k(k는 3 이상의 자연수임)개의 시드(seed) 코드들이 기록된 시드 코드 테이블(상기 시드 코드 테이블은 관리자 단말(130)에도 사전 저장되어 있음)을 저장하여 유지한다.
여기서, 상기 k개의 시드 코드들 각각은 t(t는 2 이상의 자연수임)비트로 구성되어 있는 코드이고, 상기 k개의 시드 코드들 각각에는, 0 이상 k-1 이하의 서로 다른 정수로 구성된 고유 번호가 사전 할당되어 있다.
예컨대, k를 '5'라고 하고, t를 '6'이라고 하는 경우, 시드 코드 테이블 유지부(119)는 하기의 표 5와 같은 사전 설정된 '5'개의 시드 코드들이 기록된 시드 코드 테이블을 저장하여 유지할 수 있다.
'5'개의 시드 코드들 고유 번호
101011 0
011001 1
100100 2
110011 3
001110 4
암호화 이벤트 발생부(120)는 전자 서명 검증부(117)에 의해 상기 전자 서명 값에 대한 검증이 완료되면, 개인 정보 데이터베이스(112)로부터 상기 제1 레코드를 추출한 후, 상기 제1 레코드를 암호화하여 관리자 단말(130)로 전송하기 위한 암호화 이벤트를 발생시킨다.
날짜 값 생성부(121)는 암호화 이벤트 발생부(120)에 의해 상기 암호화 이벤트가 발생되면, 현재 시점에 대한 날짜 값을 생성한다. 여기서, 상기 날짜 값은, 현재 시점에 대한 연, 월, 일 각각에 대응되는 정수 값의 배열로 구성된 값으로서, 2p(p는 3 또는 4임)개의 정수들로 구성된 값이다.
부분 값 생성부(122)는 상기 날짜 값이 생성되면, 상기 날짜 값을 상기 날짜 값의 중심축을 기준으로 분할함으로써, 상기 중심축을 기준으로, 좌측 p개의 정수들로 구성되어 있는 제1 부분 값과, 우측의 p개의 정수들로 구성되어 있는 제2 부분 값을 생성한다.
연산 값 산출부(123)는 상기 제1 부분 값과 상기 제2 부분 값이 생성되면, 상기 제1 부분 값에 대해 k를 제수로 하는 모듈로(modulo) 연산을 수행함으로써, 제1 연산 값을 산출하고, 상기 제2 부분 값에 대해 k를 제수로 하는 모듈로 연산을 수행함으로써, 제2 연산 값을 산출한다.
여기서, 모듈로 연산은 피제수를 제수로 나누는 나눗셈을 수행하여 그에 대한 나머지(remainder)를 산출하는 연산을 의미한다.
시드 코드 추출부(124)는 연산 값 산출부(123)에 의해 상기 제1 연산 값과 상기 제2 연산 값이 산출되면, 상기 시드 코드 테이블로부터, 상기 제1 연산 값이 고유 번호로 할당되어 있는 제1 시드 코드를 추출하고, 상기 제2 연산 값이 고유 번호로 할당되어 있는 제2 시드 코드를 추출한다.
암호화키 생성부(125)는 시드 코드 추출부(124)에 의해 상기 제1 시드 코드와 상기 제2 시드 코드가 추출되면, 상기 제1 시드 코드와 상기 제2 시드 코드 간의 배타적 논리합 연산을 수행함으로써, t비트의 연산 코드를 생성한 후, 상기 연산 코드를 사전 설정된 암호화키 생성 함수(상기 암호화키 생성 함수는 관리자 단말(130)에도 사전 저장되어 있음)에 입력으로 인가하여, 제1 암호화키를 생성한다.
암호화 전송부(126)는 암호화키 생성부(125)에 의해 상기 제1 암호화키가 생성되면, 상기 제1 레코드를 상기 제1 암호화키로 암호화한 후, 암호화된 상기 제1 레코드를 관리자 단말(130)로 전송한다.
이하에서는, 암호화 이벤트 발생부(120), 날짜 값 생성부(121), 부분 값 생성부(122), 연산 값 산출부(123), 시드 코드 추출부(124), 암호화키 생성부(125) 및 암호화 전송부(126)의 동작을 예를 들어, 상세히 설명하기로 한다.
먼저, k를 '5', t를 '6', p를 '4'라고 하고, 전술한 예에 따라, 전자 서명 검증부(117)에 의해 상기 전자 서명 값에 대한 검증이 완료되었다고 하는 경우, 암호화 이벤트 발생부(120)는 상기 표 2와 같은 정보 데이터베이스(112)로부터, 상기 표 3과 같은 '레코드 1'을 추출한 후, 상기 표 3과 같은 '레코드 1'을 암호화하여 관리자 단말(130)로 전송하기 위한 암호화 이벤트를 발생시킬 수 있다.
그러면, 날짜 값 생성부(121)는 현재 시점에 대한 날짜 값을 생성할 수 있다.
그 결과, 상기 날짜 값이 '20220211'과 같이 생성되었다고 하는 경우, 부분 값 생성부(122)는 상기 날짜 값인 '20220211'을 상기 날짜 값의 중심축을 기준으로 분할함으로써, 상기 중심축을 기준으로, 좌측 '4'개의 정수들로 구성되어 있는 '2022'를 제1 부분 값으로 생성할 수 있고, 우측의 '4'개의 정수들로 구성되어 있는 '0211'을 제2 부분 값으로 생성할 수 있다.
그러면, 연산 값 산출부(123)는 상기 제1 부분 값인 '2022'에 대해 '5'를 제수로 하는 모듈로 연산을 수행함으로써, 제1 연산 값을 '2'로 산출할 수 있고, 상기 제2 부분 값인 '0211'에 대해 '5'를 제수로 하는 모듈로 연산을 수행함으로써, 제2 연산 값을 '1'로 산출할 수 있다.
그러면, 시드 코드 추출부(124)는 상기 표 5와 같은 시드 코드 테이블로부터, 상기 제1 연산 값인 '2'가 고유 번호로 할당되어 있는 '100100'을 제1 시드 코드로 추출할 수 있고, 상기 제2 연산 값인 '1'이 고유 번호로 할당되어 있는 '011001'을 제2 시드 코드로 추출할 수 있다.
그러고 나서, 암호화키 생성부(125)는 상기 제1 시드 코드인 '100100'과 상기 제2 시드 코드인 '011001' 간의 배타적 논리합 연산을 수행함으로써, '6'비트의 연산 코드를 '111101'과 같이 생성한 후, 상기 연산 코드인 '111101'을 사전 설정된 암호화키 생성 함수에 입력으로 인가하여, '암호화키 1'을 생성할 수 있다.
그러면, 암호화 전송부(126)는 상기 표 3과 같은 '레코드 1'을 '암호화키 1'로 암호화한 후, 암호화된 '레코드 1'을 관리자 단말(130)로 전송할 수 있다.
이때, 본 발명의 일실시예에 따르면, 관리자 단말(130)은 메모리 상에 상기 시드 코드 테이블과 상기 암호화키 생성 함수를 사전 저장하고 있고, 개인 정보 관리 서버(110)로부터 암호화된 상기 제1 레코드가 수신되면, 현재 시점에 대한 상기 날짜 값을 생성하고, 상기 날짜 값을 상기 중심축을 기준으로 분할함으로써, 상기 제1 부분 값과 상기 제2 부분 값을 생성한 후, 상기 제1 부분 값에 대해 k를 제수로 하는 모듈로 연산을 수행함으로써, 상기 제1 연산 값을 산출하고, 상기 제2 부분 값에 대해 k를 제수로 하는 모듈로 연산을 수행함으로써, 상기 제2 연산 값을 산출한 후, 상기 시드 코드 테이블로부터, 상기 제1 연산 값이 고유 번호로 할당되어 있는 상기 제1 시드 코드를 추출하고, 상기 제2 연산 값이 고유 번호로 할당되어 있는 상기 제2 시드 코드를 추출한 후, 상기 제1 시드 코드와 상기 제2 시드 코드가 추출되면, 상기 제1 시드 코드와 상기 제2 시드 코드 간의 배타적 논리합 연산을 수행함으로써, 상기 연산 코드를 생성하고, 상기 연산 코드를 상기 암호화키 생성 함수에 입력으로 인가하여, 상기 제1 암호화키를 생성한 후, 암호화된 상기 제1 레코드를 상기 제1 암호화키로 복호화함으로써, 상기 제1 레코드를 복원한다.
예컨대, 전술한 예와 같이, k를 '5', t를 '6', p를 '4'라고 하고, 관리자 단말(130)의 메모리 상에는 상기 표 5와 같은 시드 코드 테이블과 상기 암호화키 생성 함수가 사전 저장되어 있다고 하며, 암호화 전송부(126)가 암호화된 '레코드 1'을 관리자 단말(130)로 전송함에 따라, 관리자 단말(130)에 암호화된 '레코드 1'이 수신되었다고 가정하자.
그러면, 관리자 단말(130)은 현재 시점에 대한 상기 날짜 값을 '20220211'과 같이 생성할 수 있고, 상기 날짜 값인 '20220211'을 상기 중심축을 기준으로 분할함으로써, 상기 제1 부분 값인 '2022'와 상기 제2 부분 값인 '0211'을 생성할 수 있다.
그러고 나서, 관리자 단말(130)은 상기 제1 부분 값인 '2022'에 대해 '5'를 제수로 하는 모듈로 연산을 수행함으로써, 상기 제1 연산 값인 '2'를 산출할 수 있고, 상기 제2 부분 값인 '0211'에 대해 '5'를 제수로 하는 모듈로 연산을 수행함으로써, 상기 제2 연산 값인 '1'을 산출할 수 있다.
그 이후, 관리자 단말(130)은 상기 표 5와 같은 시드 코드 테이블로부터, 상기 제1 연산 값인 '2'가 고유 번호로 할당되어 있는 '100100'을 제1 시드 코드로 추출할 수 있고, 상기 제2 연산 값인 '1'이 고유 번호로 할당되어 있는 '011001'을 제2 시드 코드로 추출할 수 있다.
그러고 나서, 관리자 단말(130)은 상기 제1 시드 코드인 '100100'과 상기 제2 시드 코드인 '011001' 간의 배타적 논리합 연산을 수행함으로써, '6'비트의 연산 코드를 '111101'과 같이 생성한 후, 상기 연산 코드인 '111101'을 상기 암호화키 생성 함수에 입력으로 인가하여, '암호화키 1'을 생성할 수 있다.
이때, 전술한 예에 따르면, 암호화된 '레코드 1'은 상기 표 3과 같은 '레코드 1'이 '암호화키 1'로 암호화됨으로써 생성된 것이므로, 관리자 단말(130)은 암호화된 '레코드 1'을 '암호화키 1'로 복호화함으로써, 상기 표 3과 같은 '레코드 1'을 정상적으로 복원할 수 있다.
본 발명의 일실시예에 따르면, 개인 정보 관리 서버(110)는 전송 이력 정보 생성부(127) 및 등록 요청부(128)를 더 포함할 수 있다.
전송 이력 정보 생성부(127)는 레코드 전송부(118)에 의해 암호화된 상기 제1 레코드가 관리자 단말(130)로 전송 완료되면, 상기 제1 레코드를 사전 설정된 해시 함수에 입력으로 인가하여 제1 해시 값을 생성한 후, 상기 제1 레코드가 관리자 단말(130)로 전송 완료된 제1 시점의 날짜에 대한 정보, 상기 제1 시점의 시간에 대한 정보 및 상기 제1 해시 값으로 구성된 전송 이력 정보를 생성한다.
등록 요청부(128)는 전송 이력 정보 생성부(127)에 의해 상기 전송 이력 정보가 생성되면, 상기 전송 이력 정보가 포함된 트랜잭션을 생성한 후, 블록체인 네트워크(100)를 구성하고 있는 복수의 노드 장치들(101, 102, 103, 104, 105, 106) 중 어느 하나인 제1 노드 장치를 랜덤하게 선택하여, 상기 제1 노드 장치로, 상기 트랜잭션을 전송하면서, 상기 트랜잭션의 블록체인 네트워크(100)로의 등록 요청을 전송한다.
이하에서는, 전송 이력 정보 생성부(127) 및 등록 요청부(128)의 동작을 예를 들어, 상세히 설명하기로 한다.
먼저, 전술한 예에 따라, 레코드 전송부(118)에 의해 암호화된 '레코드 1'이 관리자 단말(130)로 전송 완료되었다고 가정하자.
이때, 전송 이력 정보 생성부(127)는 '레코드 1'을 사전 설정된 해시 함수에 입력으로 인가하여 '해시 값 1'을 생성한 후, '해시 값 1'이 관리자 단말(130)로 전송 완료된 제1 시점의 날짜에 대한 정보, 상기 제1 시점의 시간에 대한 정보 및 '해시 값 1'로 구성된 전송 이력 정보를 생성할 수 있다.
그러면, 등록 요청부(128)는 상기 전송 이력 정보가 포함된 트랜잭션을 생성한 후, 블록체인 네트워크(100)를 구성하고 있는 복수의 노드 장치들(101, 102, 103, 104, 105, 106) 중 어느 하나인 제1 노드 장치를 랜덤하게 선택할 수 있다.
이때, 상기 제1 노드 장치를 노드 장치(101)라고 하는 경우, 등록 요청부(128)는 노드 장치(101)로, 상기 트랜잭션을 전송하면서, 상기 트랜잭션의 블록체인 네트워크(100)로의 등록 요청을 전송할 수 있다.
이때, 상기 제1 노드 장치는 개인 정보 관리 서버(110)로부터 상기 트랜잭션과 상기 등록 요청이 수신되면, 상기 제1 노드 장치의 메모리 상에 저장되어 있는 블록체인 데이터에 체인으로 연결된 이전 블록을 기초로, 상기 트랜잭션이 포함된 제1 블록을 생성하고, 상기 제1 블록을 상기 블록체인 데이터에 체인으로 연결함으로써, 상기 제1 블록에 대한 저장을 완료한 후, 블록체인 네트워크(100)를 통해 상기 제1 블록을, 복수의 노드 장치들(101, 102, 103, 104, 105, 106) 중 상기 제1 노드 장치를 제외한 나머지 노드 장치들로 전파한다.
예컨대, 전술한 예와 같이, 상기 제1 노드 장치를 노드 장치(101)라고 하고, 등록 요청부(128)가 노드 장치(101)로 상기 트랜잭션을 전송하면서, 상기 트랜잭션의 블록체인 네트워크(100)로의 등록 요청을 전송함에 따라, 노드 장치(101)에, 상기 트랜잭션과 상기 등록 요청이 수신되었다고 하는 경우, 노드 장치(101)는 노드 장치(101)의 메모리 상에 저장되어 있는 블록체인 데이터에 체인으로 연결된 이전 블록을 기초로, 상기 트랜잭션이 포함된 제1 블록을 생성하고, 상기 제1 블록을 상기 블록체인 데이터에 체인으로 연결함으로써, 상기 제1 블록에 대한 저장을 완료한 후, 블록체인 네트워크(100)를 통해 상기 제1 블록을, 복수의 노드 장치들(101, 102, 103, 104, 105, 106) 중 노드 장치(101)를 제외한 나머지 노드 장치들(102, 103, 104, 105, 106)로 전파할 수 있다.
구체적으로, 노드 장치(101)는 개인 정보 관리 서버(110)로부터 상기 트랜잭션과 상기 등록 요청이 수신되면, 상기 블록체인 데이터에 체인으로 연결되어 있는 이전 블록의 블록 헤더를 참조하여 상기 트랜잭션이 포함된 새로운 블록인 상기 제1 블록을 생성할 수 있다. 그러고 나서, 노드 장치(101)는 상기 제1 블록을 상기 블록체인 데이터에 체인으로 연결함으로써, 상기 제1 블록에 대한 저장을 완료한 후 블록체인 네트워크(100)를 통해 상기 제1 블록을 나머지 노드 장치들(102, 103, 104, 105, 106)로 전파할 수 있다.
이렇게, 본 발명에 따른 개인 정보 관리 서버(110)는 암호화된 상기 제1 레코드가 관리자 단말(130)로 전송 완료되면, 상기 전송 이력 정보를 생성하여 블록체인 네트워크(100)에 등록해 둠으로써, 상기 복수의 사용자들에 대한 개인 정보를 관리하는 관리자가, 상기 전송 이력 정보를 확인하여, 상기 암호화된 상기 제1 레코드가 관리자 단말(130)로 전송된 시점의 날짜와 시간에 대한 정보를 확인할 수 있도록 지원할 수 있다.
도 2는 본 발명의 일실시예에 따른 데이터베이스에 저장되어 있는 개인 정보를 마스킹 처리하여 전송할 수 있는 개인 정보 관리 서버의 동작 방법을 도시한 순서도이다.
단계(S210)에서는 사전 설정된 n(n은 2 이상의 자연수임)가지 종류의 개인 정보들 각각에 대응되는 것으로 사전 설정된 마스킹 위치 정보(상기 n가지 종류의 개인 정보들 각각에 대응되는 마스킹 위치 정보는, 각 개인 정보를 표현하는 문자열에서, 사전 설정된 마스킹 기호로 마스킹 처리를 수행할 대상 문자열의 위치를 지시하는 정보를 의미함)가 기록된 마스킹 위치 테이블을 저장하여 유지한다.
단계(S220)에서는 복수의 사용자들 각각에 대한, 상기 n가지 종류의 개인 정보들로 구성된 레코드가 저장되어 있는 개인 정보 데이터베이스를 유지한다.
단계(S230)에서는 관리자 단말로부터, 상기 복수의 사용자들 중 어느 한 명인 제1 사용자에 대한 레코드의 제공 요청이 수신되면, 상기 개인 정보 데이터베이스로부터 상기 제1 사용자에 대한 제1 레코드를 추출한 후, 상기 마스킹 위치 테이블을 참조하여, 상기 제1 레코드를 구성하는 상기 n가지 종류의 개인 정보들 각각에 대한 문자열에서, 각 개인 정보에 대응되는 마스킹 위치 정보에 따른 대상 문자열을, 상기 마스킹 기호로 마스킹 처리함으로써, 제1 마스킹 레코드를 생성한다.
단계(S240)에서는 상기 제1 마스킹 레코드가 생성되면, 상기 제1 마스킹 레코드를 상기 관리자 단말로 전송한다.
이때, 본 발명의 일실시예에 따르면, 단계(S230)에서는 상기 관리자 단말로부터, 상기 제1 사용자에 대한 레코드의 제공 요청이 수신되면, 상기 개인 정보 데이터베이스로부터 상기 제1 레코드를 추출한 후, 상기 마스킹 위치 테이블을 참조하여, 상기 제1 레코드를 구성하는 상기 n가지 종류의 개인 정보들 각각에 대한 문자열에서, 각 개인 정보에 대응되는 마스킹 위치 정보에 따른 대상 문자열을 상기 마스킹 기호로 마스킹 처리한 후, 상기 제1 레코드를 구성하는 상기 n가지 종류의 개인 정보들 각각에 대한 문자열에서, 마스킹 처리되지 않은 문자열의 글자 서식과, 상기 마스킹 기호의 글자 서식을, 서로 다른 글자 서식으로 적용함으로써, 상기 제1 마스킹 레코드를 생성할 수 있다.
또한, 본 발명의 일실시예에 따르면, 상기 개인 정보 관리 서버의 동작 방법은 상기 제1 마스킹 레코드가 상기 관리자 단말로 전송된 이후, 상기 관리자 단말로부터, 상기 제1 마스킹 레코드에 대한 마스킹 해제 요청이 수신되면, 상기 제1 마스킹 레코드를 구성하는 데이터를 2개로 분할함으로써, 제1 부분 데이터와 제2 부분 데이터를 생성하는 단계, 상기 제1 부분 데이터를 사전 설정된 공개키(상기 공개키와 키쌍을 이루는 개인키는, 상기 관리자 단말에 사전 저장되어 있음)로 암호화함으로써, 암호화 데이터를 생성한 후, 상기 관리자 단말로, 상기 암호화 데이터를 전송하면서, 상기 제1 마스킹 레코드에 대한 마스킹 해제를 진행하기 위한 전자 서명을 요청하는 단계, 상기 전자 서명 요청에 대응하여, 상기 관리자 단말이 상기 암호화 데이터를 상기 관리자 단말에 사전 저장되어 있는 상기 개인키로 복호화함으로써 상기 제1 부분 데이터를 복원하고, 상기 제1 부분 데이터를 기초로, 상기 제1 마스킹 레코드를 구성하는 데이터로부터 상기 제2 부분 데이터를 추출한 후, 상기 제2 부분 데이터를 상기 개인키로 암호화하여 전자 서명 값을 생성함에 따라, 상기 관리자 단말로부터, 상기 관리자 단말에서 생성된 상기 전자 서명 값이 수신되면, 상기 전자 서명 값을 상기 공개키로 복호화함으로써, 복원 데이터를 생성하고, 상기 복원 데이터가 상기 제2 부분 데이터와 일치하는 것으로 확인되면, 상기 전자 서명 값에 대한 검증을 완료하는 단계 및 상기 전자 서명 값에 대한 검증이 완료되면, 상기 개인 정보 데이터베이스로부터 상기 제1 레코드를 추출하고, 상기 제1 레코드를 암호화한 후, 암호화된 상기 제1 레코드를 상기 관리자 단말로 전송하는 단계를 더 포함할 수 있다.
이때, 본 발명의 일실시예에 따르면, 상기 암호화된 상기 제1 레코드를 상기 관리자 단말로 전송하는 단계는 사전 설정된 k(k는 3 이상의 자연수임)개의 시드 코드들(상기 k개의 시드 코드들 각각은 t(t는 2 이상의 자연수임)비트로 구성되어 있는 코드이고, 상기 k개의 시드 코드들 각각에는, 0 이상 k-1 이하의 서로 다른 정수로 구성된 고유 번호가 사전 할당되어 있음)이 기록된 시드 코드 테이블(상기 시드 코드 테이블은 상기 관리자 단말에도 사전 저장되어 있음)을 저장하여 유지하는 단계, 상기 전자 서명 값에 대한 검증이 완료되면, 상기 개인 정보 데이터베이스로부터 상기 제1 레코드를 추출한 후, 상기 제1 레코드를 암호화하여 상기 관리자 단말로 전송하기 위한 암호화 이벤트를 발생시키는 단계, 상기 암호화 이벤트가 발생되면, 현재 시점에 대한 날짜 값(상기 날짜 값은, 현재 시점에 대한 연, 월, 일 각각에 대응되는 정수 값의 배열로 구성된 값으로서, 2p(p는 3 또는 4임)개의 정수들로 구성된 값임)을 생성하는 단계, 상기 날짜 값이 생성되면, 상기 날짜 값을 상기 날짜 값의 중심축을 기준으로 분할함으로써, 상기 중심축을 기준으로, 좌측 p개의 정수들로 구성되어 있는 제1 부분 값과, 우측의 p개의 정수들로 구성되어 있는 제2 부분 값을 생성하는 단계, 상기 제1 부분 값과 상기 제2 부분 값이 생성되면, 상기 제1 부분 값에 대해 k를 제수로 하는 모듈로 연산을 수행함으로써, 제1 연산 값을 산출하고, 상기 제2 부분 값에 대해 k를 제수로 하는 모듈로 연산을 수행함으로써, 제2 연산 값을 산출하는 단계, 상기 제1 연산 값과 상기 제2 연산 값이 산출되면, 상기 시드 코드 테이블로부터, 상기 제1 연산 값이 고유 번호로 할당되어 있는 제1 시드 코드를 추출하고, 상기 제2 연산 값이 고유 번호로 할당되어 있는 제2 시드 코드를 추출하는 단계, 상기 제1 시드 코드와 상기 제2 시드 코드가 추출되면, 상기 제1 시드 코드와 상기 제2 시드 코드 간의 배타적 논리합 연산을 수행함으로써, t비트의 연산 코드를 생성한 후, 상기 연산 코드를 사전 설정된 암호화키 생성 함수(상기 암호화키 생성 함수는 상기 관리자 단말에도 사전 저장되어 있음)에 입력으로 인가하여, 제1 암호화키를 생성하는 단계 및 상기 제1 암호화키가 생성되면, 상기 제1 레코드를 상기 제1 암호화키로 암호화한 후, 암호화된 상기 제1 레코드를 상기 관리자 단말로 전송하는 단계를 포함할 수 있다.
이때, 상기 관리자 단말은 메모리 상에 상기 시드 코드 테이블과 상기 암호화키 생성 함수를 사전 저장하고 있고, 상기 개인 정보 관리 서버로부터 암호화된 상기 제1 레코드가 수신되면, 현재 시점에 대한 상기 날짜 값을 생성하고, 상기 날짜 값을 상기 중심축을 기준으로 분할함으로써, 상기 제1 부분 값과 상기 제2 부분 값을 생성한 후, 상기 제1 부분 값에 대해 k를 제수로 하는 모듈로 연산을 수행함으로써, 상기 제1 연산 값을 산출하고, 상기 제2 부분 값에 대해 k를 제수로 하는 모듈로 연산을 수행함으로써, 상기 제2 연산 값을 산출한 후, 상기 시드 코드 테이블로부터, 상기 제1 연산 값이 고유 번호로 할당되어 있는 상기 제1 시드 코드를 추출하고, 상기 제2 연산 값이 고유 번호로 할당되어 있는 상기 제2 시드 코드를 추출한 후, 상기 제1 시드 코드와 상기 제2 시드 코드가 추출되면, 상기 제1 시드 코드와 상기 제2 시드 코드 간의 배타적 논리합 연산을 수행함으로써, 상기 연산 코드를 생성하고, 상기 연산 코드를 상기 암호화키 생성 함수에 입력으로 인가하여, 상기 제1 암호화키를 생성한 후, 암호화된 상기 제1 레코드를 상기 제1 암호화키로 복호화함으로써, 상기 제1 레코드를 복원할 수 있다.
또한, 본 발명의 일실시예에 따르면, 상기 개인 정보 관리 서버의 동작 방법은 암호화된 상기 제1 레코드가 상기 관리자 단말로 전송 완료되면, 상기 제1 레코드를 사전 설정된 해시 함수에 입력으로 인가하여 제1 해시 값을 생성한 후, 상기 제1 레코드가 상기 관리자 단말로 전송 완료된 제1 시점의 날짜에 대한 정보, 상기 제1 시점의 시간에 대한 정보 및 상기 제1 해시 값으로 구성된 전송 이력 정보를 생성하는 단계 및 상기 전송 이력 정보가 생성되면, 상기 전송 이력 정보가 포함된 트랜잭션을 생성한 후, 블록체인 네트워크를 구성하고 있는 복수의 노드 장치들 중 어느 하나인 제1 노드 장치를 랜덤하게 선택하여, 상기 제1 노드 장치로, 상기 트랜잭션을 전송하면서, 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송하는 단계를 더 포함할 수 있다.
이때, 상기 제1 노드 장치는 상기 개인 정보 관리 서버로부터 상기 트랜잭션과 상기 등록 요청이 수신되면, 상기 제1 노드 장치의 메모리 상에 저장되어 있는 블록체인 데이터에 체인으로 연결된 이전 블록을 기초로, 상기 트랜잭션이 포함된 제1 블록을 생성하고, 상기 제1 블록을 상기 블록체인 데이터에 체인으로 연결함으로써, 상기 제1 블록에 대한 저장을 완료한 후, 상기 블록체인 네트워크를 통해 상기 제1 블록을, 상기 복수의 노드 장치들 중 상기 제1 노드 장치를 제외한 나머지 노드 장치들로 전파할 수 있다.
이상, 도 2를 참조하여 본 발명의 일실시예에 따른 데이터베이스에 저장되어 있는 개인 정보를 마스킹 처리하여 전송할 수 있는 개인 정보 관리 서버의 동작 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 개인 정보 관리 서버의 동작 방법은 도 1을 이용하여 설명한 개인 정보 관리 서버(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.
본 발명의 일실시예에 따른 개인 정보 관리 서버의 동작 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.
또한, 본 발명의 일실시예에 따른 개인 정보 관리 서버의 동작 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 컴퓨터 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
110: 데이터베이스에 저장되어 있는 개인 정보를 마스킹 처리하여 전송할 수 있는 개인 정보 관리 서버
111: 마스킹 위치 테이블 유지부 112: 개인 정보 데이터베이스
113: 마스킹 레코드 생성부 114: 마스킹 레코드 전송부
115: 부분 데이터 생성부 116: 전자 서명 요청부
117: 전자 서명 검증부 118: 레코드 전송부
119: 시드 코드 테이블 유지부 120: 암호화 이벤트 발생부
121: 날짜 값 생성부 122: 부분 값 생성부
123: 연산 값 산출부 124: 시드 코드 추출부
125: 암호화키 생성부 126: 암호화 전송부
100: 블록체인 네트워크
101, 102, 103, 104, 105, 106: 복수의 노드 장치들
130: 관리자 단말

Claims (12)

  1. 데이터베이스에 저장되어 있는 개인 정보를 마스킹 처리하여 전송할 수 있는 개인 정보 관리 서버에 있어서,
    사전 설정된 n(n은 2 이상의 자연수임)가지 종류의 개인 정보들 각각에 대응되는 것으로 사전 설정된 마스킹(masking) 위치 정보 - 상기 n가지 종류의 개인 정보들 각각에 대응되는 마스킹 위치 정보는, 각 개인 정보를 표현하는 문자열에서, 사전 설정된 마스킹 기호로 마스킹 처리를 수행할 대상 문자열의 위치를 지시하는 정보를 의미함 - 가 기록된 마스킹 위치 테이블을 저장하여 유지하는 마스킹 위치 테이블 유지부;
    복수의 사용자들 각각에 대한, 상기 n가지 종류의 개인 정보들로 구성된 레코드(record)가 저장되어 있는 개인 정보 데이터베이스;
    관리자 단말로부터, 상기 복수의 사용자들 중 어느 한 명인 제1 사용자에 대한 레코드의 제공 요청이 수신되면, 상기 개인 정보 데이터베이스로부터 상기 제1 사용자에 대한 제1 레코드를 추출한 후, 상기 마스킹 위치 테이블을 참조하여, 상기 제1 레코드를 구성하는 상기 n가지 종류의 개인 정보들 각각에 대한 문자열에서, 각 개인 정보에 대응되는 마스킹 위치 정보에 따른 대상 문자열을, 상기 마스킹 기호로 마스킹 처리함으로써, 제1 마스킹 레코드를 생성하는 마스킹 레코드 생성부; 및
    상기 제1 마스킹 레코드가 생성되면, 상기 제1 마스킹 레코드를 상기 관리자 단말로 전송하는 마스킹 레코드 전송부
    를 포함하는 개인 정보 관리 서버.
  2. 제1항에 있어서,
    상기 마스킹 레코드 생성부는
    상기 관리자 단말로부터, 상기 제1 사용자에 대한 레코드의 제공 요청이 수신되면, 상기 개인 정보 데이터베이스로부터 상기 제1 레코드를 추출한 후, 상기 마스킹 위치 테이블을 참조하여, 상기 제1 레코드를 구성하는 상기 n가지 종류의 개인 정보들 각각에 대한 문자열에서, 각 개인 정보에 대응되는 마스킹 위치 정보에 따른 대상 문자열을 상기 마스킹 기호로 마스킹 처리한 후, 상기 제1 레코드를 구성하는 상기 n가지 종류의 개인 정보들 각각에 대한 문자열에서, 마스킹 처리되지 않은 문자열의 글자 서식과, 상기 마스킹 기호의 글자 서식을, 서로 다른 글자 서식으로 적용함으로써, 상기 제1 마스킹 레코드를 생성하는 것을 특징으로 하는 개인 정보 관리 서버.
  3. 제1항에 있어서,
    상기 제1 마스킹 레코드가 상기 관리자 단말로 전송된 이후, 상기 관리자 단말로부터, 상기 제1 마스킹 레코드에 대한 마스킹 해제 요청이 수신되면, 상기 제1 마스킹 레코드를 구성하는 데이터를 2개로 분할함으로써, 제1 부분 데이터와 제2 부분 데이터를 생성하는 부분 데이터 생성부;
    상기 제1 부분 데이터를 사전 설정된 공개키 - 상기 공개키와 키쌍을 이루는 개인키는, 상기 관리자 단말에 사전 저장되어 있음 - 로 암호화함으로써, 암호화 데이터를 생성한 후, 상기 관리자 단말로, 상기 암호화 데이터를 전송하면서, 상기 제1 마스킹 레코드에 대한 마스킹 해제를 진행하기 위한 전자 서명을 요청하는 전자 서명 요청부;
    상기 전자 서명 요청에 대응하여, 상기 관리자 단말이 상기 암호화 데이터를 상기 관리자 단말에 사전 저장되어 있는 상기 개인키로 복호화함으로써 상기 제1 부분 데이터를 복원하고, 상기 제1 부분 데이터를 기초로, 상기 제1 마스킹 레코드를 구성하는 데이터로부터 상기 제2 부분 데이터를 추출한 후, 상기 제2 부분 데이터를 상기 개인키로 암호화하여 전자 서명 값을 생성함에 따라, 상기 관리자 단말로부터, 상기 관리자 단말에서 생성된 상기 전자 서명 값이 수신되면, 상기 전자 서명 값을 상기 공개키로 복호화함으로써, 복원 데이터를 생성하고, 상기 복원 데이터가 상기 제2 부분 데이터와 일치하는 것으로 확인되면, 상기 전자 서명 값에 대한 검증을 완료하는 전자 서명 검증부; 및
    상기 전자 서명 값에 대한 검증이 완료되면, 상기 개인 정보 데이터베이스로부터 상기 제1 레코드를 추출하고, 상기 제1 레코드를 암호화한 후, 암호화된 상기 제1 레코드를 상기 관리자 단말로 전송하는 레코드 전송부
    를 더 포함하는 개인 정보 관리 서버.
  4. 제3항에 있어서,
    상기 레코드 전송부는
    사전 설정된 k(k는 3 이상의 자연수임)개의 시드(seed) 코드들 - 상기 k개의 시드 코드들 각각은 t(t는 2 이상의 자연수임)비트로 구성되어 있는 코드이고, 상기 k개의 시드 코드들 각각에는, 0 이상 k-1 이하의 서로 다른 정수로 구성된 고유 번호가 사전 할당되어 있음 - 이 기록된 시드 코드 테이블 - 상기 시드 코드 테이블은 상기 관리자 단말에도 사전 저장되어 있음 - 을 저장하여 유지하는 시드 코드 테이블 유지부;
    상기 전자 서명 값에 대한 검증이 완료되면, 상기 개인 정보 데이터베이스로부터 상기 제1 레코드를 추출한 후, 상기 제1 레코드를 암호화하여 상기 관리자 단말로 전송하기 위한 암호화 이벤트를 발생시키는 암호화 이벤트 발생부;
    상기 암호화 이벤트가 발생되면, 현재 시점에 대한 날짜 값 - 상기 날짜 값은, 현재 시점에 대한 연, 월, 일 각각에 대응되는 정수 값의 배열로 구성된 값으로서, 2p(p는 3 또는 4임)개의 정수들로 구성된 값임 - 을 생성하는 날짜 값 생성부;
    상기 날짜 값이 생성되면, 상기 날짜 값을 상기 날짜 값의 중심축을 기준으로 분할함으로써, 상기 중심축을 기준으로, 좌측 p개의 정수들로 구성되어 있는 제1 부분 값과, 우측의 p개의 정수들로 구성되어 있는 제2 부분 값을 생성하는 부분 값 생성부;
    상기 제1 부분 값과 상기 제2 부분 값이 생성되면, 상기 제1 부분 값에 대해 k를 제수로 하는 모듈로(modulo) 연산을 수행함으로써, 제1 연산 값을 산출하고, 상기 제2 부분 값에 대해 k를 제수로 하는 모듈로 연산을 수행함으로써, 제2 연산 값을 산출하는 연산 값 산출부;
    상기 제1 연산 값과 상기 제2 연산 값이 산출되면, 상기 시드 코드 테이블로부터, 상기 제1 연산 값이 고유 번호로 할당되어 있는 제1 시드 코드를 추출하고, 상기 제2 연산 값이 고유 번호로 할당되어 있는 제2 시드 코드를 추출하는 시드 코드 추출부;
    상기 제1 시드 코드와 상기 제2 시드 코드가 추출되면, 상기 제1 시드 코드와 상기 제2 시드 코드 간의 배타적 논리합(XOR) 연산을 수행함으로써, t비트의 연산 코드를 생성한 후, 상기 연산 코드를 사전 설정된 암호화키 생성 함수 - 상기 암호화키 생성 함수는 상기 관리자 단말에도 사전 저장되어 있음 - 에 입력으로 인가하여, 제1 암호화키를 생성하는 암호화키 생성부; 및
    상기 제1 암호화키가 생성되면, 상기 제1 레코드를 상기 제1 암호화키로 암호화한 후, 암호화된 상기 제1 레코드를 상기 관리자 단말로 전송하는 암호화 전송부
    를 포함하고,
    상기 관리자 단말은
    메모리 상에 상기 시드 코드 테이블과 상기 암호화키 생성 함수를 사전 저장하고 있고, 상기 개인 정보 관리 서버로부터 암호화된 상기 제1 레코드가 수신되면, 현재 시점에 대한 상기 날짜 값을 생성하고, 상기 날짜 값을 상기 중심축을 기준으로 분할함으로써, 상기 제1 부분 값과 상기 제2 부분 값을 생성한 후, 상기 제1 부분 값에 대해 k를 제수로 하는 모듈로 연산을 수행함으로써, 상기 제1 연산 값을 산출하고, 상기 제2 부분 값에 대해 k를 제수로 하는 모듈로 연산을 수행함으로써, 상기 제2 연산 값을 산출한 후, 상기 시드 코드 테이블로부터, 상기 제1 연산 값이 고유 번호로 할당되어 있는 상기 제1 시드 코드를 추출하고, 상기 제2 연산 값이 고유 번호로 할당되어 있는 상기 제2 시드 코드를 추출한 후, 상기 제1 시드 코드와 상기 제2 시드 코드가 추출되면, 상기 제1 시드 코드와 상기 제2 시드 코드 간의 배타적 논리합 연산을 수행함으로써, 상기 연산 코드를 생성하고, 상기 연산 코드를 상기 암호화키 생성 함수에 입력으로 인가하여, 상기 제1 암호화키를 생성한 후, 암호화된 상기 제1 레코드를 상기 제1 암호화키로 복호화함으로써, 상기 제1 레코드를 복원하는 것을 특징으로 하는 개인 정보 관리 서버.
  5. 제3항에 있어서,
    암호화된 상기 제1 레코드가 상기 관리자 단말로 전송 완료되면, 상기 제1 레코드를 사전 설정된 해시 함수에 입력으로 인가하여 제1 해시 값을 생성한 후, 상기 제1 레코드가 상기 관리자 단말로 전송 완료된 제1 시점의 날짜에 대한 정보, 상기 제1 시점의 시간에 대한 정보 및 상기 제1 해시 값으로 구성된 전송 이력 정보를 생성하는 전송 이력 정보 생성부; 및
    상기 전송 이력 정보가 생성되면, 상기 전송 이력 정보가 포함된 트랜잭션을 생성한 후, 블록체인 네트워크를 구성하고 있는 복수의 노드 장치들 중 어느 하나인 제1 노드 장치를 랜덤하게 선택하여, 상기 제1 노드 장치로, 상기 트랜잭션을 전송하면서, 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송하는 등록 요청부
    를 더 포함하고,
    상기 제1 노드 장치는
    상기 개인 정보 관리 서버로부터 상기 트랜잭션과 상기 등록 요청이 수신되면, 상기 제1 노드 장치의 메모리 상에 저장되어 있는 블록체인 데이터에 체인으로 연결된 이전 블록을 기초로, 상기 트랜잭션이 포함된 제1 블록을 생성하고, 상기 제1 블록을 상기 블록체인 데이터에 체인으로 연결함으로써, 상기 제1 블록에 대한 저장을 완료한 후, 상기 블록체인 네트워크를 통해 상기 제1 블록을, 상기 복수의 노드 장치들 중 상기 제1 노드 장치를 제외한 나머지 노드 장치들로 전파하는 것을 특징으로 하는 개인 정보 관리 서버.
  6. 데이터베이스에 저장되어 있는 개인 정보를 마스킹 처리하여 전송할 수 있는 개인 정보 관리 서버의 동작 방법에 있어서,
    사전 설정된 n(n은 2 이상의 자연수임)가지 종류의 개인 정보들 각각에 대응되는 것으로 사전 설정된 마스킹(masking) 위치 정보 - 상기 n가지 종류의 개인 정보들 각각에 대응되는 마스킹 위치 정보는, 각 개인 정보를 표현하는 문자열에서, 사전 설정된 마스킹 기호로 마스킹 처리를 수행할 대상 문자열의 위치를 지시하는 정보를 의미함 - 가 기록된 마스킹 위치 테이블을 저장하여 유지하는 단계;
    복수의 사용자들 각각에 대한, 상기 n가지 종류의 개인 정보들로 구성된 레코드(record)가 저장되어 있는 개인 정보 데이터베이스를 유지하는 단계;
    관리자 단말로부터, 상기 복수의 사용자들 중 어느 한 명인 제1 사용자에 대한 레코드의 제공 요청이 수신되면, 상기 개인 정보 데이터베이스로부터 상기 제1 사용자에 대한 제1 레코드를 추출한 후, 상기 마스킹 위치 테이블을 참조하여, 상기 제1 레코드를 구성하는 상기 n가지 종류의 개인 정보들 각각에 대한 문자열에서, 각 개인 정보에 대응되는 마스킹 위치 정보에 따른 대상 문자열을, 상기 마스킹 기호로 마스킹 처리함으로써, 제1 마스킹 레코드를 생성하는 단계; 및
    상기 제1 마스킹 레코드가 생성되면, 상기 제1 마스킹 레코드를 상기 관리자 단말로 전송하는 단계
    를 포함하는 개인 정보 관리 서버의 동작 방법.
  7. 제6항에 있어서,
    상기 제1 마스킹 레코드를 생성하는 단계는
    상기 관리자 단말로부터, 상기 제1 사용자에 대한 레코드의 제공 요청이 수신되면, 상기 개인 정보 데이터베이스로부터 상기 제1 레코드를 추출한 후, 상기 마스킹 위치 테이블을 참조하여, 상기 제1 레코드를 구성하는 상기 n가지 종류의 개인 정보들 각각에 대한 문자열에서, 각 개인 정보에 대응되는 마스킹 위치 정보에 따른 대상 문자열을 상기 마스킹 기호로 마스킹 처리한 후, 상기 제1 레코드를 구성하는 상기 n가지 종류의 개인 정보들 각각에 대한 문자열에서, 마스킹 처리되지 않은 문자열의 글자 서식과, 상기 마스킹 기호의 글자 서식을, 서로 다른 글자 서식으로 적용함으로써, 상기 제1 마스킹 레코드를 생성하는 것을 특징으로 하는 개인 정보 관리 서버의 동작 방법.
  8. 제6항에 있어서,
    상기 제1 마스킹 레코드가 상기 관리자 단말로 전송된 이후, 상기 관리자 단말로부터, 상기 제1 마스킹 레코드에 대한 마스킹 해제 요청이 수신되면, 상기 제1 마스킹 레코드를 구성하는 데이터를 2개로 분할함으로써, 제1 부분 데이터와 제2 부분 데이터를 생성하는 단계;
    상기 제1 부분 데이터를 사전 설정된 공개키 - 상기 공개키와 키쌍을 이루는 개인키는, 상기 관리자 단말에 사전 저장되어 있음 - 로 암호화함으로써, 암호화 데이터를 생성한 후, 상기 관리자 단말로, 상기 암호화 데이터를 전송하면서, 상기 제1 마스킹 레코드에 대한 마스킹 해제를 진행하기 위한 전자 서명을 요청하는 단계;
    상기 전자 서명 요청에 대응하여, 상기 관리자 단말이 상기 암호화 데이터를 상기 관리자 단말에 사전 저장되어 있는 상기 개인키로 복호화함으로써 상기 제1 부분 데이터를 복원하고, 상기 제1 부분 데이터를 기초로, 상기 제1 마스킹 레코드를 구성하는 데이터로부터 상기 제2 부분 데이터를 추출한 후, 상기 제2 부분 데이터를 상기 개인키로 암호화하여 전자 서명 값을 생성함에 따라, 상기 관리자 단말로부터, 상기 관리자 단말에서 생성된 상기 전자 서명 값이 수신되면, 상기 전자 서명 값을 상기 공개키로 복호화함으로써, 복원 데이터를 생성하고, 상기 복원 데이터가 상기 제2 부분 데이터와 일치하는 것으로 확인되면, 상기 전자 서명 값에 대한 검증을 완료하는 단계; 및
    상기 전자 서명 값에 대한 검증이 완료되면, 상기 개인 정보 데이터베이스로부터 상기 제1 레코드를 추출하고, 상기 제1 레코드를 암호화한 후, 암호화된 상기 제1 레코드를 상기 관리자 단말로 전송하는 단계
    를 더 포함하는 개인 정보 관리 서버의 동작 방법.
  9. 제8항에 있어서,
    상기 암호화된 상기 제1 레코드를 상기 관리자 단말로 전송하는 단계는
    사전 설정된 k(k는 3 이상의 자연수임)개의 시드(seed) 코드들 - 상기 k개의 시드 코드들 각각은 t(t는 2 이상의 자연수임)비트로 구성되어 있는 코드이고, 상기 k개의 시드 코드들 각각에는, 0 이상 k-1 이하의 서로 다른 정수로 구성된 고유 번호가 사전 할당되어 있음 - 이 기록된 시드 코드 테이블 - 상기 시드 코드 테이블은 상기 관리자 단말에도 사전 저장되어 있음 - 을 저장하여 유지하는 단계;
    상기 전자 서명 값에 대한 검증이 완료되면, 상기 개인 정보 데이터베이스로부터 상기 제1 레코드를 추출한 후, 상기 제1 레코드를 암호화하여 상기 관리자 단말로 전송하기 위한 암호화 이벤트를 발생시키는 단계;
    상기 암호화 이벤트가 발생되면, 현재 시점에 대한 날짜 값 - 상기 날짜 값은, 현재 시점에 대한 연, 월, 일 각각에 대응되는 정수 값의 배열로 구성된 값으로서, 2p(p는 3 또는 4임)개의 정수들로 구성된 값임 - 을 생성하는 단계;
    상기 날짜 값이 생성되면, 상기 날짜 값을 상기 날짜 값의 중심축을 기준으로 분할함으로써, 상기 중심축을 기준으로, 좌측 p개의 정수들로 구성되어 있는 제1 부분 값과, 우측의 p개의 정수들로 구성되어 있는 제2 부분 값을 생성하는 단계;
    상기 제1 부분 값과 상기 제2 부분 값이 생성되면, 상기 제1 부분 값에 대해 k를 제수로 하는 모듈로(modulo) 연산을 수행함으로써, 제1 연산 값을 산출하고, 상기 제2 부분 값에 대해 k를 제수로 하는 모듈로 연산을 수행함으로써, 제2 연산 값을 산출하는 단계;
    상기 제1 연산 값과 상기 제2 연산 값이 산출되면, 상기 시드 코드 테이블로부터, 상기 제1 연산 값이 고유 번호로 할당되어 있는 제1 시드 코드를 추출하고, 상기 제2 연산 값이 고유 번호로 할당되어 있는 제2 시드 코드를 추출하는 단계;
    상기 제1 시드 코드와 상기 제2 시드 코드가 추출되면, 상기 제1 시드 코드와 상기 제2 시드 코드 간의 배타적 논리합(XOR) 연산을 수행함으로써, t비트의 연산 코드를 생성한 후, 상기 연산 코드를 사전 설정된 암호화키 생성 함수 - 상기 암호화키 생성 함수는 상기 관리자 단말에도 사전 저장되어 있음 - 에 입력으로 인가하여, 제1 암호화키를 생성하는 단계; 및
    상기 제1 암호화키가 생성되면, 상기 제1 레코드를 상기 제1 암호화키로 암호화한 후, 암호화된 상기 제1 레코드를 상기 관리자 단말로 전송하는 단계
    를 포함하고,
    상기 관리자 단말은
    메모리 상에 상기 시드 코드 테이블과 상기 암호화키 생성 함수를 사전 저장하고 있고, 상기 개인 정보 관리 서버로부터 암호화된 상기 제1 레코드가 수신되면, 현재 시점에 대한 상기 날짜 값을 생성하고, 상기 날짜 값을 상기 중심축을 기준으로 분할함으로써, 상기 제1 부분 값과 상기 제2 부분 값을 생성한 후, 상기 제1 부분 값에 대해 k를 제수로 하는 모듈로 연산을 수행함으로써, 상기 제1 연산 값을 산출하고, 상기 제2 부분 값에 대해 k를 제수로 하는 모듈로 연산을 수행함으로써, 상기 제2 연산 값을 산출한 후, 상기 시드 코드 테이블로부터, 상기 제1 연산 값이 고유 번호로 할당되어 있는 상기 제1 시드 코드를 추출하고, 상기 제2 연산 값이 고유 번호로 할당되어 있는 상기 제2 시드 코드를 추출한 후, 상기 제1 시드 코드와 상기 제2 시드 코드가 추출되면, 상기 제1 시드 코드와 상기 제2 시드 코드 간의 배타적 논리합 연산을 수행함으로써, 상기 연산 코드를 생성하고, 상기 연산 코드를 상기 암호화키 생성 함수에 입력으로 인가하여, 상기 제1 암호화키를 생성한 후, 암호화된 상기 제1 레코드를 상기 제1 암호화키로 복호화함으로써, 상기 제1 레코드를 복원하는 것을 특징으로 하는 개인 정보 관리 서버의 동작 방법.
  10. 제8항에 있어서,
    암호화된 상기 제1 레코드가 상기 관리자 단말로 전송 완료되면, 상기 제1 레코드를 사전 설정된 해시 함수에 입력으로 인가하여 제1 해시 값을 생성한 후, 상기 제1 레코드가 상기 관리자 단말로 전송 완료된 제1 시점의 날짜에 대한 정보, 상기 제1 시점의 시간에 대한 정보 및 상기 제1 해시 값으로 구성된 전송 이력 정보를 생성하는 단계; 및
    상기 전송 이력 정보가 생성되면, 상기 전송 이력 정보가 포함된 트랜잭션을 생성한 후, 블록체인 네트워크를 구성하고 있는 복수의 노드 장치들 중 어느 하나인 제1 노드 장치를 랜덤하게 선택하여, 상기 제1 노드 장치로, 상기 트랜잭션을 전송하면서, 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송하는 단계
    를 더 포함하고,
    상기 제1 노드 장치는
    상기 개인 정보 관리 서버로부터 상기 트랜잭션과 상기 등록 요청이 수신되면, 상기 제1 노드 장치의 메모리 상에 저장되어 있는 블록체인 데이터에 체인으로 연결된 이전 블록을 기초로, 상기 트랜잭션이 포함된 제1 블록을 생성하고, 상기 제1 블록을 상기 블록체인 데이터에 체인으로 연결함으로써, 상기 제1 블록에 대한 저장을 완료한 후, 상기 블록체인 네트워크를 통해 상기 제1 블록을, 상기 복수의 노드 장치들 중 상기 제1 노드 장치를 제외한 나머지 노드 장치들로 전파하는 것을 특징으로 하는 개인 정보 관리 서버의 동작 방법.
  11. 제6항 내지 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
  12. 제6항 내지 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램.
KR1020220021363A 2022-02-18 2022-02-18 데이터베이스에 저장되어 있는 개인 정보를 마스킹 처리하여 전송할 수 있는 개인 정보 관리 서버 및 그 동작 방법 KR20230124272A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220021363A KR20230124272A (ko) 2022-02-18 2022-02-18 데이터베이스에 저장되어 있는 개인 정보를 마스킹 처리하여 전송할 수 있는 개인 정보 관리 서버 및 그 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220021363A KR20230124272A (ko) 2022-02-18 2022-02-18 데이터베이스에 저장되어 있는 개인 정보를 마스킹 처리하여 전송할 수 있는 개인 정보 관리 서버 및 그 동작 방법

Publications (1)

Publication Number Publication Date
KR20230124272A true KR20230124272A (ko) 2023-08-25

Family

ID=87847244

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220021363A KR20230124272A (ko) 2022-02-18 2022-02-18 데이터베이스에 저장되어 있는 개인 정보를 마스킹 처리하여 전송할 수 있는 개인 정보 관리 서버 및 그 동작 방법

Country Status (1)

Country Link
KR (1) KR20230124272A (ko)

Similar Documents

Publication Publication Date Title
US8208627B2 (en) Format-preserving cryptographic systems
CN111314069B (zh) 基于区块链的摇号系统、方法、电子设备及存储介质
US20130339252A1 (en) Format-preserving cryptographic systems
US20130028419A1 (en) System and a method for use in a symmetric key cryptographic communications
US11227037B2 (en) Computer system, verification method of confidential information, and computer
WO2010010430A2 (en) Methods and systems to create big memorizable secrets and their applications in information engineering
US20220303114A9 (en) Format-preserving encryption method based on stream cipher
CN108829899B (zh) 数据表储存、修改、查询和统计方法
CN112184444B (zh) 基于信息的特征进行信息处理的方法、装置、设备及介质
CN113225297B (zh) 数据混合加密方法、装置及设备
KR102295263B1 (ko) 블록체인을 기반으로 데이터의 분산 암호화 관리를 가능하게 하는 데이터 관리 장치 및 그 동작 방법
EP3134994A1 (en) Method of obfuscating data
CN111241596B (zh) 一种区块链资产账户恢复的方法及装置
KR102303431B1 (ko) 당사자 간의 전자 계약을 지원하는 블록체인 기반의 전자 계약 관리 시스템 장치 및 그 동작 방법
KR20230124272A (ko) 데이터베이스에 저장되어 있는 개인 정보를 마스킹 처리하여 전송할 수 있는 개인 정보 관리 서버 및 그 동작 방법
KR102442674B1 (ko) 사설 클라우드 서버에 대한 액세스를 관리하는 액세스 관리 서버 및 그 동작 방법
JP2005227331A (ja) 機密情報管理システム、機密情報管理方法、および機密情報管理プログラム
CN113901437A (zh) 密码生成方法、装置、计算机设备和存储介质
KR102602189B1 (ko) 클라우드 기반의 문서 공유 서비스를 운영하기 위한 문서 공유 서비스 서버 및 그 동작 방법
KR102391952B1 (ko) 암호화 분산 처리 시스템, 장치 또는 이를 위한 방법
KR102417811B1 (ko) 개인 정보 보호 기능을 갖는 문서 번역 서비스를 제공하는 문서 번역 서비스 서버 및 그 동작 방법
US11886617B1 (en) Protecting membership and data in a secure multi-party computation and/or communication
KR102326527B1 (ko) 비대칭 암호화 기반의 보안 통신을 수행하는 데이터 전송 장치 및 그 동작 방법
KR20230124271A (ko) 클라우드 기반의 문서 공유 서비스에서, 허가되지 않은 글꼴이 적용된 문서 파일에 대한 저장 및 공유 처리를 수행하기 위한 문서 공유 서비스 서버 및 그 동작 방법
Sruthi et al. Secure data transmission using MS-extended 8-bit ASCII character set

Legal Events

Date Code Title Description
E902 Notification of reason for refusal