KR102335199B1 - 파일 관리 시스템 및 그 방법 - Google Patents

파일 관리 시스템 및 그 방법 Download PDF

Info

Publication number
KR102335199B1
KR102335199B1 KR1020200064212A KR20200064212A KR102335199B1 KR 102335199 B1 KR102335199 B1 KR 102335199B1 KR 1020200064212 A KR1020200064212 A KR 1020200064212A KR 20200064212 A KR20200064212 A KR 20200064212A KR 102335199 B1 KR102335199 B1 KR 102335199B1
Authority
KR
South Korea
Prior art keywords
terminal
hash value
file
header part
server
Prior art date
Application number
KR1020200064212A
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 KR1020200064212A priority Critical patent/KR102335199B1/ko
Application granted granted Critical
Publication of KR102335199B1 publication Critical patent/KR102335199B1/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/6227Protecting 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 where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • G06F16/152File search processing using file content signatures, e.g. hash values
    • 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/6272Protecting 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 by registering files or documents with a third party
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/453Data distribution

Abstract

본 발명은 파일 관리 시스템 및 그 방법을 개시한다. 즉, 본 발명은 단말에서 관리 중인 파일을 미리 설정된 방식으로 인코딩하고, 인코딩된 파일을 헤더 부분과 바디 부분으로 분할하고, 분할된 헤더 부분을 다른 단말에 전송하고, 분할된 바디 부분, 헤더 부분에 대한 해시값 등을 서버에 업로드하고, 다른 단말에서 서버에 접속하여 단말로부터 전송된 헤더 부분에 대한 해시값을 이용해서 서버에 업로드된 복수의 바디 부분 중에서 단말에서 업로드한 바디 부분을 다운로드하고, 다른 단말에서 단말로부터 전송된 헤더 부분과 서버에서 다운로드한 바디 부분을 해당 다른 단말에 미리 저장된 프라이빗 키를 이용해서 하나의 파일을 생성하고, 생성된 파일을 미리 설정된 방식으로 디코딩함으로써, 파일 자체에 보안을 설정하여 파일을 보호할 수 있다.

Description

파일 관리 시스템 및 그 방법{System for managing file and method thereof}
본 발명은 파일 관리 시스템 및 그 방법에 관한 것으로서, 특히 단말에서 관리 중인 파일을 미리 설정된 방식으로 인코딩하고, 인코딩된 파일을 헤더 부분과 바디 부분으로 분할하고, 분할된 헤더 부분을 다른 단말에 전송하고, 분할된 바디 부분, 헤더 부분에 대한 해시값 등을 서버에 업로드하고, 다른 단말에서 서버에 접속하여 단말로부터 전송된 헤더 부분에 대한 해시값을 이용해서 서버에 업로드된 복수의 바디 부분 중에서 단말에서 업로드한 바디 부분을 다운로드하고, 다른 단말에서 단말로부터 전송된 헤더 부분과 서버에서 다운로드한 바디 부분을 해당 다른 단말에 미리 저장된 프라이빗 키를 이용해서 하나의 파일을 생성하고, 생성된 파일을 미리 설정된 방식으로 디코딩하여 원본 파일을 복원하는 파일 관리 시스템 및 그 방법에 관한 것이다.
파일 전송 시스템은 송신측에서 파일을 첨부하여 수신측에 전송하는 시스템이다.
이러한 파일 전송 시스템에서는 파일에 대해 암호를 설정하여 송수신되는 파일을 보호하거나, 방화벽이나 IDS(Intrusion Detection System : 침입 탐지 시스템)나 IPS(Intrusion Prevention System : 침입 방지 시스템) 등을 통해서 송신측이나 수신측에서 파일에 대해 보호를 하고 있으나, 다양한 해킹 방식을 통해 파일이 유출되는 경우 그 피해가 발생하고 있다.
한국등록특허 제10-1016615호 [제목: 실행파일 형태의 에이피아이를 이용한 보안파일 전송시스템과 전송방법]
본 발명의 목적은 단말에서 관리 중인 파일을 미리 설정된 방식으로 인코딩하고, 인코딩된 파일을 헤더 부분과 바디 부분으로 분할하고, 분할된 헤더 부분을 다른 단말에 전송하고, 분할된 바디 부분, 헤더 부분에 대한 해시값 등을 서버에 업로드하고, 다른 단말에서 서버에 접속하여 단말로부터 전송된 헤더 부분에 대한 해시값을 이용해서 서버에 업로드된 복수의 바디 부분 중에서 단말에서 업로드한 바디 부분을 다운로드하고, 다른 단말에서 단말로부터 전송된 헤더 부분과 서버에서 다운로드한 바디 부분을 해당 다른 단말에 미리 저장된 프라이빗 키를 이용해서 하나의 파일을 생성하고, 생성된 파일을 미리 설정된 방식으로 디코딩하여 원본 파일을 복원하는 파일 관리 시스템 및 그 방법을 제공하는 데 있다.
본 발명의 다른 목적은 사용 기한, 사용 장소, 국가별 사용 가능 여부, IP 정보, 맥 주소 정보, IP 정보 또는 맥 주소에 대응하는 해시값 등을 저장한 프라이빗 키를 이용해서 수집된 헤더 부분과 바디 부분을 합쳐 하나의 파일을 생성하고, 생성된 파일을 미리 설정된 방식으로 디코딩하여 원본 파일을 복원하는 파일 관리 시스템 및 그 방법을 제공하는 데 있다.
본 발명의 실시예에 따른 파일 관리 시스템은 원본 파일을 미리 설정된 인코딩 방식으로 인코딩하고, 상기 인코딩된 파일을 헤더 부분과 하나 이상의 바디 부분으로 분리하고, 상기 분리된 헤더 부분 및 단말의 식별 정보를 다른 단말에 전송하고, 백그라운드 상태로, 상기 분리된 하나 이상의 바디 부분 및 상기 헤더 부분의 메타데이터에 포함된 해시값을 등록하는 단말; 및 상기 단말로부터 전송되는 헤더 부분을 상기 다른 단말의 미리 설정된 레지스트리에 등록하고, 상기 헤더 부분 내의 메타데이터에 포함된 해시값을 이용해서 상기 서버와 연동하여, 상기 해시값에 대응하는 하나 이상의 바디 부분을 다운로드하고, 상기 단말로부터 제공받은 헤더 부분과 상기 서버로부터 제공받은 하나 이상의 바디 부분을 상기 다른 단말에 미리 저장된 프라이빗 키를 이용해서 결합하여, 하나의 파일을 생성하고, 상기 생성된 파일을 미리 설정된 디코딩 방식으로 디코딩하여 원본 파일을 생성하는 상기 다른 단말을 포함할 수 있다.
본 발명과 관련된 일 예로서 상기 헤더 부분은, 원본 파일의 헤더에, 메타데이터를 추가한 상태이며, 상기 원본 파일의 헤더는, 상기 단말의 사용자와 관련한 사용자 이름, 주민번호, 전화번호, 파일명 및, 파일 생성 일자 및 시각 정보 중 적어도 하나를 포함하고, 상기 메타데이터는, 상기 분리된 바디 부분의 개수 및 해시값을 포함할 수 있다.
본 발명과 관련된 일 예로서 상기 헤더 부분의 메타데이터에 포함된 해시값은, 미리 설정된 해시 함수를 이용해서 상기 단말의 사용자 이름, 주민등록번호, 전화번호, 상기 단말의 IP 정보 및 상기 단말의 MAC 주소를 매핑한 결과로, 상기 단말의 사용자 이름에 대응하는 해시값, 상기 사용자의 주민등록번호에 대응하는 해시값, 상기 전화번호에 대응하는 해시값, 상기 단말의 IP 정보에 대응하는 해시값 및 상기 단말의 MAC 주소에 대응하는 해시값 중 어느 하나를 포함할 수 있다.
본 발명과 관련된 일 예로서 상기 단말과 연동하여, 상기 분리된 하나 이상의 바디 부분 및 상기 헤더 부분의 메타데이터에 포함된 해시값을 등록하는 서버를 더 포함할 수 있다.
본 발명과 관련된 일 예로서 상기 다른 단말은, 상기 헤더 부분 내의 메타데이터에 포함된 해시값, 바디 부분 전송 요청 정보 및 다른 단말의 식별 정보를 상기 서버에 전송하며, 상기 서버는, 상기 서버에 미리 등록된 복수의 해시값별 바디 부분 중에서 상기 해시값에 대응하는 바디 부분을 확인하고, 상기 확인 결과, 상기 복수의 해시값별 바디 부분 중에서 해당 해시값에 대응하는 바디 부분이 확인될 때, 상기 확인된 해시값에 대응하는 하나 이상의 바디 부분을 상기 다른 단말에 전송할 수 있다.
본 발명과 관련된 일 예로서 상기 프라이빗 키는 사용 기한, 사용 장소, 국가별 사용 가능 여부, IP 정보, 맥 주소 정보 및 해시값 중 적어도 하나를 포함할 수 있다.
본 발명과 관련된 일 예로서 상기 다른 단말은, 상기 헤더 부분의 메타데이터에 포함된 해시값이 상기 프라이빗 키에 포함된 해시값과 일치하는지 여부를 판단하고, 상기 판단 결과, 상기 헤더 부분의 메타데이터에 포함된 해시값이 상기 프라이빗 키에 포함된 해시값과 일치할 때, 앞서 상기 단말에서 분리되었던 헤더 부분과 하나 이상의 바디 부분을 결합하여, 하나의 파일을 생성할 수 있다.
본 발명의 실시예에 따른 파일 관리 방법은 단말에 의해, 원본 파일을 미리 설정된 인코딩 방식으로 인코딩하는 단계; 상기 단말에 의해, 상기 인코딩된 파일을 헤더 부분과 하나 이상의 바디 부분으로 분리하는 단계; 상기 단말에 의해, 상기 분리된 헤더 부분 및 단말의 식별 정보를 다른 단말에 전송하는 단계; 상기 단말에 의해, 백그라운드 상태로, 상기 분리된 하나 이상의 바디 부분 및 상기 헤더 부분의 메타데이터에 포함된 해시값을 서버에 등록하는 단계; 상기 다른 단말에 의해, 상기 단말로부터 전송되는 헤더 부분을 상기 다른 단말의 미리 설정된 레지스트리에 등록하는 단계; 상기 다른 단말에 의해, 상기 헤더 부분 내의 메타데이터에 포함된 해시값을 이용해서 상기 서버와 연동하여, 상기 해시값에 대응하는 하나 이상의 바디 부분을 다운로드하는 단계; 상기 다른 단말에 의해, 상기 단말로부터 제공받은 헤더 부분과 상기 서버로부터 제공받은 하나 이상의 바디 부분을 상기 다른 단말에 미리 저장된 프라이빗 키를 이용해서 결합하여, 하나의 파일을 생성하는 단계; 및 상기 다른 단말에 의해, 상기 생성된 파일을 미리 설정된 디코딩 방식으로 디코딩하여 원본 파일을 생성하는 단계를 포함할 수 있다.
본 발명과 관련된 일 예로서 상기 해시값에 대응하는 하나 이상의 바디 부분을 다운로드하는 단계는, 상기 다른 단말에 의해, 상기 헤더 부분 내의 메타데이터에 포함된 해시값, 바디 부분 전송 요청 정보 및 다른 단말의 식별 정보를 상기 서버에 전송하는 과정; 상기 서버에 의해, 상기 서버에 미리 등록된 복수의 해시값별 바디 부분 중에서 상기 해시값에 대응하는 바디 부분을 확인하는 과정; 상기 확인 결과, 상기 복수의 해시값별 바디 부분 중에서 해당 해시값에 대응하는 바디 부분이 확인될 때, 상기 서버에 의해, 상기 확인된 해시값에 대응하는 하나 이상의 바디 부분을 상기 다른 단말에 전송하는 과정; 및 상기 다른 단말에 의해, 앞서 전송된 바디 부분 전송 요청 정보에 응답하여 상기 서버로부터 전송되는 상기 해시값에 대응하는 하나 이상의 바디 부분을 수신하는 과정을 포함할 수 있다.
본 발명과 관련된 일 예로서 상기 헤더 부분과 상기 하나 이상의 바디 부분을 상기 프라이빗 키를 이용해서 결합하여 하나의 파일을 생성하는 단계는, 상기 헤더 부분의 메타데이터에 포함된 해시값이 상기 프라이빗 키에 포함된 해시값과 일치하는지 여부를 판단하는 과정; 및 상기 판단 결과, 상기 헤더 부분의 메타데이터에 포함된 해시값이 상기 프라이빗 키에 포함된 해시값과 일치할 때, 앞서 상기 단말에서 분리되었던 헤더 부분과 하나 이상의 바디 부분을 결합하여, 하나의 파일을 생성하는 과정을 포함할 수 있다.
본 발명은 단말에서 관리 중인 파일을 미리 설정된 방식으로 인코딩하고, 인코딩된 파일을 헤더 부분과 바디 부분으로 분할하고, 분할된 헤더 부분을 다른 단말에 전송하고, 분할된 바디 부분, 헤더 부분에 대한 해시값 등을 서버에 업로드하고, 다른 단말에서 서버에 접속하여 단말로부터 전송된 헤더 부분에 대한 해시값을 이용해서 서버에 업로드된 복수의 바디 부분 중에서 단말에서 업로드한 바디 부분을 다운로드하고, 다른 단말에서 단말로부터 전송된 헤더 부분과 서버에서 다운로드한 바디 부분을 해당 다른 단말에 미리 저장된 프라이빗 키를 이용해서 하나의 파일을 생성하고, 생성된 파일을 미리 설정된 방식으로 디코딩함으로써, 파일 자체에 보안을 설정하여 파일을 보호할 수 있는 효과가 있다.
또한, 본 발명은 사용 기한, 사용 장소, 국가별 사용 가능 여부, IP 정보, 맥 주소 정보, IP 정보 또는 맥 주소에 대응하는 해시값 등을 저장한 프라이빗 키를 이용해서 수집된 헤더 부분과 바디 부분을 합쳐 하나의 파일을 생성하고, 생성된 파일을 미리 설정된 방식으로 디코딩하여 원본 파일을 복원함으로써, 허가된 프라이빗 키가 없으면 원래 파일을 열 수가 없어, 파일 관리의 효율성을 높이고, 양자 합의의 확인이 필요한 계약서나 에스크로 서비스(escrow service) 등에 적용할 수 있는 효과가 있다.
도 1은 본 발명의 실시예에 따른 파일 관리 시스템(10)의 구성을 나타낸 블록도이다.
도 2는 본 발명의 실시예에 따른 파일 관리 방법을 나타낸 흐름도이다.
본 발명에서 사용되는 기술적 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 발명에서 사용되는 기술적 용어는 본 발명에서 특별히 다른 의미로 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 발명에서 사용되는 기술적인 용어가 본 발명의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 발명에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.
또한, 본 발명에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함한다. 본 발명에서 "구성된다" 또는 "포함한다" 등의 용어는 발명에 기재된 여러 구성 요소들 또는 여러 단계를 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
또한, 본 발명에서 사용되는 제 1, 제 2 등과 같이 서수를 포함하는 용어는 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성 요소는 제 2 구성 요소로 명명될 수 있고, 유사하게 제 2 구성 요소도 제 1 구성 요소로 명명될 수 있다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
또한, 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 발명의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 발명의 사상이 제한되는 것으로 해석되어서는 아니 됨을 유의해야 한다.
도 1은 본 발명의 실시예에 따른 파일 관리 시스템(10)의 구성을 나타낸 블록도이다.
도 1에 도시한 바와 같이, 파일 관리 시스템(10)은 단말(100), 다른 단말(200) 및 서버(300)로 구성된다. 도 1에 도시된 파일 관리 시스템(10)의 구성 요소 모두가 필수 구성 요소인 것은 아니며, 도 1에 도시된 구성 요소보다 많은 구성 요소에 의해 파일 관리 시스템(10)이 구현될 수도 있고, 그보다 적은 구성 요소에 의해서도 파일 관리 시스템(10)이 구현될 수도 있다.
상기 단말(100) 및 상기 다른 단말(200)은 스마트폰(Smart Phone), 휴대 단말기(Portable Terminal), 이동 단말기(Mobile Terminal), 폴더블 단말기(Foldable Terminal), 개인 정보 단말기(Personal Digital Assistant: PDA), PMP(Portable Multimedia Player) 단말기, 텔레매틱스(Telematics) 단말기, 내비게이션(Navigation) 단말기, 개인용 컴퓨터(Personal Computer), 노트북 컴퓨터, 슬레이트 PC(Slate PC), 태블릿 PC(Tablet PC), 울트라북(ultrabook), 웨어러블 디바이스(Wearable Device, 예를 들어, 워치형 단말기(Smartwatch), 글래스형 단말기(Smart Glass), HMD(Head Mounted Display) 등 포함), 와이브로(Wibro) 단말기, IPTV(Internet Protocol Television) 단말기, 스마트 TV, 디지털방송용 단말기, AVN(Audio Video Navigation) 단말기, A/V(Audio/Video) 시스템, 플렉시블 단말기(Flexible Terminal), 디지털 사이니지 장치 등과 같은 다양한 단말기에 적용될 수 있다.
상기 단말(100), 상기 다른 단말(200) 및 상기 서버(300) 각각은 다른 단말들과의 통신 기능을 수행하기 위한 통신부(미도시), 다양한 정보 및 프로그램(또는 애플리케이션)을 저장하기 위한 저장부(미도시), 다양한 정보 및 프로그램 실행 결과를 표시하기 위한 표시부(미도시), 상기 다양한 정보 및 프로그램 실행 결과에 대응하는 음성 정보를 출력하기 위한 음성 출력부(미도시), 각 단말의 다양한 구성 요소 및 기능을 제어하기 위한 제어부(미도시) 등을 포함할 수 있다.
상기 단말(100)은 상기 다른 단말(200), 상기 서버(300) 등과 통신한다.
또한, 상기 단말(100)은 해당 단말(100)에서 관리하는(또는 저장 중인) 파일(또는 원본 파일/데이터)을 미리 설정된 인코딩 방식을 이용해서 인코딩한다. 여기서, 상기 미리 설정된 인코딩 방식은 Base64, ASCII(American Standard Code for Information Interchange), 유니코드(Unicode) 등을 포함한다. 이때, 상기 단말(100)은 상기 파일을 미리 설정된 기본 크기(또는 사이즈)의 복수의 서브 파일로 분할한 후, 상기 분할된 복수의 서브 파일을 각각 인코딩할 수도 있다.
또한, 상기 단말(100)은 상기 인코딩된 파일을 헤더(header) 부분(또는 헤더 영역/파일)과 하나 이상의 바디(body) 부분(또는 바디 영역/파일/페이로드(payload))으로 분리한다. 이때, 상기 헤더 부분은 원본 파일의 헤더에, 메타데이터를 추가한 상태일 수 있다. 여기서, 상기 원본 파일의 헤더는 해당 단말(100)의 사용자와 관련한 사용자 이름, 주민번호, 전화번호, 파일명, 파일 생성 일자 및 시각 정보 등을 포함한다. 또한, 상기 메타데이터는 분리된 바디 부분의 개수, 해시값 등을 포함한다. 또한, 상기 해시값(hash value, hash result)은 미리 설정된 해시 함수를 이용해서 해당 단말(100)의 사용자 이름, 주민등록번호, 전화번호, 해당 단말(100)의 IP 정보, 해당 단말(100)의 MAC 주소(MAC address) 등을 매핑한 결과로, 해당 단말(100)의 사용자 이름에 대응하는 해시값, 사용자의 주민등록번호에 대응하는 해시값, 전화번호에 대응하는 해시값, 해당 단말(100)의 IP 정보에 대응하는 해시값, 해당 단말(100)의 MAC 주소에 대응하는 해시값 등을 포함한다.
본 발명의 실시예에서는 상기 단말(100)에서 상기 원본 파일을 인코딩한 후, 헤더 부분과 바디 부분으로 분리하는 것을 설명하고 있으나, 이에 한정되는 것은 아니며, 상기 단말(100)은 상기 원본 파일을 헤더와 바디로 분리하고, 상기 분리된 헤더와 바디를 각각 인코딩할 수도 있다.
또한, 상기 단말(100)은 상기 분리된 헤더 부분(또는 상기 인코딩된 파일 내의 헤더 부분), 단말(100)의 식별 정보 등을 다른 단말(200)에 전송한다. 여기서, 상기 단말(100)의 식별 정보는 MDN(Mobile Directory Number), 모바일 IP, 모바일 MAC, Sim(subscriber identity module: 가입자 식별 모듈) 카드 고유정보, 시리얼번호 등을 포함한다. 이때, 상기 다른 단말(200)로부터의 상기 파일의 전송 요청이 있는 경우 또는 미리 설정된 조건(또는 요청)에 해당하는 경우, 상기 단말(100)은 상기 분리된 헤더 부분, 단말(100)의 식별 정보 등을 상기 다른 단말(200)에 전송할 수도 있다.
또한, 상기 단말(100)은 백그라운드 상태로(또는 상기 분리된 헤더 파일을 전송하는 동안에/상기 분리된 헤더 파일을 전송하는 시점에), 상기 분리된 하나 이상의 바디 부분, 상기 헤더 부분의 메타데이터에 포함된 해시값 등을 상기 서버(300)에 등록(또는 업로드/전송)한다.
본 발명의 실시예에서는, 상기 단말(100)과 상기 다른 단말(200) 간의 파일 전송 시에, 인코딩된 파일을 헤더 부분과 바디 부분으로 분리하여 관리하는 것을 설명하고 있으나, 이에 한정되는 것은 아니며, 해당 단말(100) 자체에서 상기 인코딩된 파일을 헤더 부분과 바디 부분으로 분리하고(또는 원본 파일을 헤더 부분과 바디 부분)으로 분리하고, 상기 분리된 헤더 부분과 바디 부분을 저장하고 있는 상태에서, 원본 파일을 사용하고자 하는 경우, 해당 단말(100)에서 미리 저장된 프라이빗 키를 이용해서 상기 저장 중인 헤더 부분과 바디 부분을 결합하여 하나의 파일을 생성하고, 상기 생성된 하나의 파일을 상기 미리 설정된 디코딩 방식으로 디코딩하여 원본 파일을 생성(또는 복원)할 수도 있다.
이와 같이, 상기 단말(100)은 다른 단말(200)과의 파일 전송뿐만 아니라, 해당 단말(100) 자체에 보관 중인 원본 파일을 헤더 부분과 바디 부분으로 분리하여 불완전성을 이용해서 관리하고, 해당 원본 파일이 필요한 경우 상기 프라이빗 키를 이용해서 하나의 파일로 결합하여 사용할 수 있다.
상기 다른 단말(200)은 상기 단말(100), 상기 서버(300) 등과 통신한다.
또한, 상기 다른 단말(200)은 상기 단말(100)로부터 전송되는 헤더 부분, 상기 단말(100)의 식별 정보 등을 수신한다.
또한, 상기 다른 단말(200)은 상기 수신된 헤더 부분이 보안이 적용된 파일임을 확인할 수 있도록 상기 헤더 부분을 해당 다른 단말(200)의 미리 설정된 레지스트리(registry)에 등록(또는 저장)한다.
또한, 상기 다른 단말(200)은 상기 수신된 헤더 부분 내의 메타데이터에 포함된 해시값을 이용해서 상기 서버(300)와 연동하여, 상기 해시값에 대응하는 하나 이상의 바디 부분을 다운로드한다.
즉, 상기 다른 단말(200)은 상기 헤더 부분 내의 메타데이터에 포함된 해시값, 바디 부분 전송 요청 정보, 다른 단말(200)의 식별 정보 등을 상기 서버(300)에 전송한다.
또한, 상기 다른 단말(200)은 앞서 전송된 해시값, 바디 부분 전송 요청 정보 등에 응답하여 상기 서버(300)로부터 전송되는 해당 해시값에 대응하는 바디 부분이 존재하지 않음을 나타내는 정보를 수신하고, 상기 수신된 해당 해시값에 대응하는 바디 부분이 존재하지 않음을 나타내는 정보를 표시한다.
또한, 상기 다른 단말(200)은 앞서 전송된 해시값, 바디 부분 전송 요청 정보 등에 응답하여 상기 서버(300)로부터 전송되는 해당 해시값에 대응하는 하나 이상의 바디 부분을 수신한다.
또한, 상기 다른 단말(200)은 상기 수신된 해당 해시값에 대응하는 하나 이상의 바디 부분이 보안이 적용된 파일임을 확인할 수 있도록 상기 바디 부분을 해당 다른 단말(200)의 미리 설정된 레지스트리에 등록(또는 저장)한다.
또한, 상기 다른 단말(200)은 상기 단말(100)로부터 제공받은(또는 전송된) 헤더 부분과 상기 서버(300)로부터 제공받은(또는 다운로드된) 하나 이상의 바디 부분을 해당 다른 단말(200)에 미리 저장된 프라이빗 키를 이용해서 결합(또는 병합)하여, 하나의 파일을 생성한다. 이때, 상기 프라이빗 키는 사용 기한, 사용 장소, 국가별 사용 가능 여부, IP 정보, 맥 주소 정보, 해시값 등을 포함한다. 여기서, 상기 해시값(또는 다른 해시값)은 유일성을 확인해주는 정보로서, 미리 설정된 해시 함수를 이용해서 특정 단말(예를 들어 상기 단말(100))의 사용자 이름, 주민등록번호, 전화번호, 해당 특정 단말의 MAC 주소 등을 매핑한 결과로, 해당 특정 단말의 사용자 이름에 대응하는 해시값, 사용자의 주민등록번호에 대응하는 해시값, 전화번호에 대응하는 해시값, 해당 특정 단말의 IP 정보에 대응하는 해시값, 해당 특정 단말의 MAC 주소에 대응하는 해시값 등을 포함한다. 또한, 상기 단말(100)에서 메타데이터에 포함된 해시값과 상기 다른 단말(200)에서의 프라이빗 키에 포함된 해시값은 단말들(100, 200)에서 미리 설정된 입력값을 해시 함수를 이용해서 매핑한 경우, 동일한 값을 가질 수 있으며, 서로 다른 입력값 또는 서로 다른 해시 함수를 이용해서 입력값을 매핑한 경우 다른 값을 가질 수 있다.
이에 따라, 해시값을 이용하여 분리된 헤더 부분 및 바디 부분에 대한 보완을 유지할 있다.
즉, 상기 다른 단말(200)은 상기 헤더 부분의 메타데이터에 포함된 해시값이 상기 프라이빗 키에 포함된 해시값과 일치하는지 여부를 판단(또는 확인)한다.
이때, 상기 다른 단말(200)은 상기 프라이빗 키에 포함된 사용 기한, 사용 장소, 국가별 사용 가능 여부, IP 정보 및 맥 주소 정보 중 미리 설정된 적어도 하나가 모두 유효한 상태인지 여부를 먼저 판단하고, 상기 프라이빗 키에 포함된 사용 기한, 사용 장소, 국가별 사용 가능 여부, IP 정보 및 맥 주소 정보 중 적어도 하나가 모두 유효한 상태일 때, 상기 헤더 부분의 메타데이터에 포함된 해시값이 상기 프라이빗 키에 포함된 해시값과 일치하는지 여부를 판단할 수도 있다.
이와 같이, 상기 다른 단말(200)은 해시값 간의 비교뿐만 아니라, 상기 프라이빗 키의 유효성, 헤더 부분과 바디 부분을 결합하고자 하는 상기 다른 단말(200)의 위치 등을 함께 고려할 수 있다.
상기 판단 결과(또는 상기 확인 결과), 상기 헤더 부분의 메타데이터에 포함된 해시값이 상기 프라이빗 키에 포함된 해시값과 일치하지 않은 경우, 상기 다른 단말(200)은 파일 복원이 실패하였음을 나타내는 정보(또는 해시값이 일치하지 않음을 나타내는 정보)를 출력한다.
또한, 상기 판단 결과(또는 상기 확인 결과), 상기 헤더 부분의 메타데이터에 포함된 해시값이 상기 프라이빗 키에 포함된 해시값과 일치하는 경우, 상기 다른 단말(200)은 앞서 단말(100)에서 분리되었던 헤더 부분과 하나 이상의 바디 부분을 결합하여, 하나의 파일(또는 앞서 인코딩된 파일/인코딩된 상태의 파일)을 생성한다.
또한, 상기 다른 단말(200)은 상기 생성된 파일(또는 상기 인코딩된 파일)을 미리 설정된 디코딩 방식을 이용해서 디코딩하여, 원본 파일을 생성(또는 복원)한다. 여기서, 상기 미리 설정된 디코딩 방식은 Base64, ASCII, 유니코드 등을 포함한다.
또한, 상기 다른 단말(200)은 상기 복원된 파일(또는 원본 파일)을 출력하거나 또는, 상기 복원된 파일을 근거로 다른 기능을 수행할 수 있다.
본 발명의 실시예에서는, 상기 단말(100)에서 분리된 헤더 부분과 하나 이상의 바디 부분에 대해서, 상기 헤더 부분을 상기 다른 단말(200)에 전송할 때 백그라운드 상태로 상기 하나 이상의 바디 부분을 상기 서버(300)에 업로드하는 것을 설명하고 있으나, 이에 한정되는 것은 아니며, 상기 단말(100)이 상기 분리된 헤더 부분과 상기 하나 이상의 바디 부분을 함께 상기 다른 단말(300)에 전송할 수도 있다. 이에 따라, 상기 다른 단말(300)은 상기 단말(100)로부터 전송되는 헤더 부분과 하나 이상의 바디 부분을 해당 다른 단말(300)에 미리 저장된 프라이빗 키를 이용해서 하나의 파일을 생성하고, 상기 생성된 하나의 파일을 미리 설정된 디코딩 방식으로 디코딩하여, 원본 파일을 생성(또는 복원)할 수도 있다.
상기 서버(300)는 상기 단말(100), 상기 다른 단말(200) 등과 통신한다.
또한, 상기 서버(300)는 웹 서버, 데이터베이스 서버, 프록시 서버 등의 형태로 구현될 수 있다. 또한, 상기 서버(300)에는 네트워크 부하 분산 메커니즘, 내지 클라우드 스트리밍 서버가 인터넷 또는 다른 네트워크상에서 동작할 수 있도록 하는 다양한 소프트웨어 중 하나 이상이 설치될 수 있으며, 이를 통해 컴퓨터화된 시스템으로 구현될 수 있다. 또한, 네트워크는 http 네트워크일 수 있으며, 전용 회선(private line), 인트라넷 또는 임의의 다른 네트워크일 수 있다. 나아가, 상기 서버(300) 및, 상기 단말(100) 또는 상기 다른 단말(200)의 연결은 데이터가 임의의 해커 또는 다른 제3자에 의한 공격을 받지 않도록 보안 네트워크로 연결될 수 있다. 또한, 상기 서버(300)는 복수의 데이터베이스 서버를 포함할 수 있으며, 이러한 데이터베이스 서버가 분산 데이터베이스 서버 아키텍처를 비롯한 임의의 유형의 네트워크 연결을 통해 서버(300)와 별도로 연결되는 방식으로 구현될 수 있다.
또한, 상기 서버(300)는 상기 단말(100)로부터 전송되는 하나의 파일에서 분리된 바디 부분, 헤더 파일에 포함된 해시값 등을 등록(또는 저장)한다.
또한, 상기 서버(300)는 상기 다른 단말(200)로부터 전송되는 상기 헤더 부분 내의 메타데이터에 포함된 해시값, 바디 부분 전송 요청 정보, 다른 단말(200)의 식별 정보 등을 수신한다.
또한, 상기 서버(300)는 해당 서버(300)에 미리 등록된(또는 저장된/업로드된) 복수의 해시값별 바디 부분 중에서 상기 수신된 해시값에 대응하는 바디 부분을 확인(또는 검색)한다.
상기 확인 결과(또는 상기 검색 결과), 상기 복수의 해시값별 바디 부분 중에서 해당 해시값에 대응하는 바디 부분이 확인되지 않은 경우, 상기 서버(300)는 해당 해시값에 대응하는 바디 부분이 존재하지 않음을 나타내는 정보를 상기 다른 단말(200)에 전송한다.
또한, 상기 확인 결과(또는 상기 검색 결과), 상기 복수의 해시값별 바디 부분 중에서 해당 해시값에 대응하는 바디 부분이 확인되는 경우, 상기 서버(300)는 상기 확인된(또는 검색된) 해당 해시값에 대응하는 하나 이상의 바디 부분을 상기 다른 단말(200)에 전송한다.
이와 같이, 상기 서버(300)는 상기 다른 단말(200)로부터의 바디 부분에 대한 전송 요청에 따라 상기 다른 단말(200)로부터 전송되는 해시값을 이용해서, 해당 서버(300)에서 관리 중인 복수의 해시값별 바디 부분 중에서 상기 다른 단말(200)로부터 전송되는 해시값에 대응하는 바디 부분을 검색하여, 상기 검색된 바디 부분을 해당 다른 단말(200)에 제공할 수 있다.
이와 같이, 단말에서 관리 중인 파일을 미리 설정된 방식으로 인코딩하고, 인코딩된 파일을 헤더 부분과 바디 부분으로 분할하고, 분할된 헤더 부분을 다른 단말에 전송하고, 분할된 바디 부분, 헤더 부분에 대한 해시값 등을 서버에 업로드하고, 다른 단말에서 서버에 접속하여 단말로부터 전송된 헤더 부분에 대한 해시값을 이용해서 서버에 업로드된 복수의 바디 부분 중에서 단말에서 업로드한 바디 부분을 다운로드하고, 다른 단말에서 단말로부터 전송된 헤더 부분과 서버에서 다운로드한 바디 부분을 해당 다른 단말에 미리 저장된 프라이빗 키를 이용해서 하나의 파일을 생성하고, 생성된 파일을 미리 설정된 방식으로 디코딩할 수 있다.
또한, 이와 같이, 사용 기한, 사용 장소, 국가별 사용 가능 여부, IP 정보, 맥 주소 정보, IP 정보 또는 맥 주소에 대응하는 해시값 등을 저장한 프라이빗 키를 이용해서 수집된 헤더 부분과 바디 부분을 합쳐 하나의 파일을 생성하고, 생성된 파일을 미리 설정된 방식으로 디코딩하여 원본 파일을 복원할 수 있다.
이하에서는, 본 발명에 따른 파일 관리 방법을 도 1 내지 도 2를 참조하여 상세히 설명한다.
도 2는 본 발명의 실시예에 따른 파일 관리 방법을 나타낸 흐름도이다.
먼저, 단말(100)은 해당 단말(100)에서 관리하는(또는 저장 중인) 파일(또는 원본 파일/데이터)을 미리 설정된 인코딩 방식을 이용해서 인코딩한다. 여기서, 상기 미리 설정된 인코딩 방식은 Base64, ASCII, 유니코드 등을 포함한다. 이때, 상기 단말(100)은 상기 파일을 미리 설정된 기본 크기(또는 사이즈)의 복수의 서브 파일로 분할한 후, 상기 분할된 복수의 서브 파일을 각각 인코딩할 수도 있다.
일 예로, 제 1 단말(100)은 상기 제 1 단말에 저장 중인 제 1 파일을 Base 64 방식으로 인코딩한다(S210).
이후, 상기 단말(100)은 상기 인코딩된 파일을 헤더 부분(또는 헤더 영역/파일)과 하나 이상의 바디 부분(또는 바디 영역/파일/페이로드(payload))으로 분리한다. 이때, 상기 헤더 부분은 원본 파일의 헤더에, 메타데이터를 추가한 상태일 수 있다. 여기서, 상기 원본 파일의 헤더는 해당 단말(100)의 사용자와 관련한 사용자 이름, 주민번호, 전화번호, 파일명, 파일 생성 일자 및 시각 정보 등을 포함한다. 또한, 상기 메타데이터는 분리된 바디 부분의 개수, 해시값 등을 포함한다. 또한, 상기 해시값은 미리 설정된 해시 함수를 이용해서 해당 단말(100)의 사용자 이름, 주민등록번호, 전화번호, 해당 단말(100)의 IP 정보, 해당 단말(100)의 MAC 주소(MAC address) 등을 매핑한 결과로, 해당 단말(100)의 사용자 이름에 대응하는 해시값, 사용자의 주민등록번호에 대응하는 해시값, 전화번호에 대응하는 해시값, 해당 단말(100)의 IP 정보에 대응하는 해시값, 해당 단말(100)의 MAC 주소에 대응하는 해시값 등을 포함한다.
일 예로, 상기 제 1 단말은 상기 Base64 방식으로 인코딩된 제 1 파일을 제 1 헤더 부분과 제 1 바디 부분으로 분리한다. 이때, 상기 제 1 헤더 부분은 제 1 사용자 이름(예를 들어 gildong-hong), 제 1 파일명(예를 들어 lifevideo-0001.mp4) 등을 포함하는 원본 파일인 상기 제 1 파일의 헤더와, 제 1 분리된 바디 부분의 개수(예를 들어 1개), 제 1 해시값(예를 들어 상기 제 1 단말의 MAC 주소를 입력값으로 하여 미리 설정된 SHA-1(Secure Hash Algorithm) 해시 함수에 따라 해싱한 값인 '2fd4e1c67a2d28fced849ee1bb76e7391b93eb23') 등을 포함하는 제 1 메타데이터를 포함한다(S220).
이후, 상기 단말(100)은 상기 분리된 헤더 부분(또는 상기 인코딩된 파일 내의 헤더 부분), 단말(100)의 식별 정보 등을 다른 단말(200)에 전송한다. 여기서, 상기 단말(100)의 식별 정보는 MDN, 모바일 IP, 모바일 MAC, Sim(가입자 식별 모듈) 카드 고유정보, 시리얼번호 등을 포함한다. 이때, 상기 다른 단말(200)로부터의 상기 파일의 전송 요청이 있는 경우 또는 미리 설정된 조건(또는 요청)에 해당하는 경우, 상기 단말(100)은 상기 분리된 헤더 부분, 단말(100)의 식별 정보 등을 상기 다른 단말(200)에 전송할 수도 있다.
또한, 상기 단말(100)은 백그라운드 상태로(또는 상기 분리된 헤더 파일을 전송하는 동안에/상기 분리된 헤더 파일을 전송하는 시점에), 상기 분리된 하나 이상의 바디 부분, 상기 헤더 부분의 메타데이터에 포함된 해시값 등을 서버(300)에 등록(또는 업로드/전송)한다.
일 예로, 상기 제 1 단말은 해당 제 1 파일을 요청한 제 2 단말(200)에 상기 제 1 헤더 부분, 상기 제 1 단말의 식별 정보 등을 전송한다.
또한, 상기 제 1 단말은 상기 제 1 헤더 부분 등이 전송되는 도중에, 백그라운드 상태로 상기 서버(300)에 상기 제 1 바디 부분, 상기 제 1 해시값 등을 전송한다.
또한, 상기 서버(300)는 상기 제 1 단말로부터 전송되는 상기 제 1 바디 부분, 상기 제 1 해시값 등을 수신하고, 상기 수신된 상기 제 1 바디 부분, 상기 제 1 해시값 등을 저장(또는 등록)한다(S230).
이후, 상기 다른 단말(200)은 상기 단말(100)로부터 전송되는 헤더 부분, 상기 단말(100)의 식별 정보 등을 수신한다.
또한, 상기 다른 단말(200)은 상기 수신된 헤더 부분이 보안이 적용된 파일임을 확인할 수 있도록 상기 헤더 부분을 해당 다른 단말(200)의 미리 설정된 레지스트리에 등록(또는 저장)한다.
또한, 상기 다른 단말(200)은 상기 수신된 헤더 부분 내의 메타데이터에 포함된 해시값을 이용해서 상기 서버(300)와 연동하여, 상기 해시값에 대응하는 하나 이상의 바디 부분을 다운로드한다.
즉, 상기 다른 단말(200)은 상기 헤더 부분 내의 메타데이터에 포함된 해시값, 바디 부분 전송 요청 정보, 다른 단말(200)의 식별 정보 등을 상기 서버(300)에 전송한다.
또한, 상기 서버(300)는 상기 다른 단말(200)로부터 전송되는 상기 헤더 부분 내의 메타데이터에 포함된 해시값, 바디 부분 전송 요청 정보, 다른 단말(200)의 식별 정보 등을 수신한다.
또한, 상기 서버(300)는 해당 서버(300)에 미리 등록된(또는 저장된/업로드된) 복수의 해시값별 바디 부분 중에서 상기 수신된 해시값에 대응하는 바디 부분을 확인(또는 검색)한다.
상기 확인 결과(또는 상기 검색 결과), 상기 복수의 해시값별 바디 부분 중에서 해당 해시값에 대응하는 바디 부분이 확인되지 않은 경우, 상기 서버(300)는 해당 해시값에 대응하는 바디 부분이 존재하지 않음을 나타내는 정보를 상기 다른 단말(200)에 전송한다.
또한, 상기 다른 단말(200)은 앞서 전송된 해시값, 바디 부분 전송 요청 정보 등에 응답하여 상기 서버(300)로부터 전송되는 해당 해시값에 대응하는 바디 부분이 존재하지 않음을 나타내는 정보를 수신하고, 상기 수신된 해당 해시값에 대응하는 바디 부분이 존재하지 않음을 나타내는 정보를 표시한다.
또한, 상기 확인 결과(또는 상기 검색 결과), 상기 복수의 해시값별 바디 부분 중에서 해당 해시값에 대응하는 바디 부분이 확인되는 경우, 상기 서버(300)는 상기 확인된(또는 검색된) 해당 해시값에 대응하는 하나 이상의 바디 부분을 상기 다른 단말(200)에 전송한다.
또한, 상기 다른 단말(200)은 앞서 전송된 해시값, 바디 부분 전송 요청 정보 등에 응답하여 상기 서버(300)로부터 전송되는 해당 해시값에 대응하는 하나 이상의 바디 부분을 수신한다.
또한, 상기 다른 단말(200)은 상기 수신된 해당 해시값에 대응하는 하나 이상의 바디 부분이 보안이 적용된 파일임을 확인할 수 있도록 상기 바디 부분을 해당 다른 단말(200)의 미리 설정된 레지스트리에 등록(또는 저장)한다.
이와 같이, 상기 서버(300)는 상기 다른 단말(200)로부터의 바디 부분에 대한 전송 요청에 따라 상기 다른 단말(200)로부터 전송되는 해시값을 이용해서, 해당 서버(300)에서 관리 중인 복수의 해시값별 바디 부분 중에서 상기 다른 단말(200)로부터 전송되는 해시값에 대응하는 바디 부분을 검색하여, 상기 검색된 바디 부분을 해당 다른 단말(200)에 제공할 수 있다.
일 예로, 상기 제 2 단말은 상기 제 1 단말로부터 전송되는 상기 제 1 헤더 부분, 상기 제 1 단말의 식별 정보 등을 수신한다.
또한, 상기 제 2 단말은 상기 수신된 제 1 헤더 부분을 상기 제 2 단말의 미리 설정된 레지스트리 영역에 등록한다.
또한, 상기 제 2 단말은 상기 제 1 헤더 부분에 대응하는 바디 부분을 획득하기 위해서, 상기 제 1 헤더 부분의 제 1 메타데이터에 포함된 제 1 해시값(예를 들어 2fd4e1c67a2d28fced849ee1bb76e7391b93eb23), 제 1 바디 부분 전송 요청 정보, 상기 제 2 단말의 식별 정보 등을 상기 서버(300)에 전송한다.
또한, 상기 서버(300)는 상기 제 2 단말로부터 전송되는 제 1 해시값(예를 들어 2fd4e1c67a2d28fced849ee1bb76e7391b93eb23), 제 1 바디 부분 전송 요청 정보, 상기 제 2 단말의 식별 정보 등을 수신한다.
또한, 상기 서버(300)는 해당 서버(300)에 미리 등록된 복수의 해시값별 바디 부분 중에서 상기 수신된 제 1 해시값에 대응하는 바디 부분을 확인한다.
상기 확인 결과, 상기 복수의 해시값별 바디 부분 중에서 상기 제 1 해시값에 대응하는 하나의 제 1 바디 부분이 확인될 때, 상기 서버(300)는 상기 확인된 제 1 바디 부분(또는 상기 제 1 헤더 부분에 대응하는 제 1 바디 부분)을 상기 제 2 단말에 전송한다.
또한, 상기 제 2 단말은 상기 서버(300)로부터 전송되는 제 1 바디 부분(또는 상기 제 1 헤더 부분에 대응하는 제 1 바디 부분)을 수신한다.
또한, 상기 제 2 단말은 상기 수신된 제 1 바디 부을 상기 제 2 단말의 미리 설정된 레지스트리 영역에 등록한다(S240).
이후, 상기 다른 단말(200)은 상기 단말(100)로부터 제공받은(또는 전송된) 헤더 부분과 상기 서버(300)로부터 제공받은(또는 다운로드된) 하나 이상의 바디 부분을 해당 다른 단말(200)에 미리 저장된 프라이빗 키를 이용해서 결합(또는 병합)하여, 하나의 파일을 생성한다. 이때, 상기 프라이빗 키는 사용 기한, 사용 장소, 국가별 사용 가능 여부, IP 정보, 맥 주소 정보, 해시값 등을 포함한다. 여기서, 상기 해시값은 유일성을 확인해주는 정보로서, 미리 설정된 해시 함수를 이용해서 특정 단말(예를 들어 상기 단말(100))의 사용자 이름, 주민등록번호, 전화번호, 해당 특정 단말의 MAC 주소 등을 매핑한 결과로, 해당 특정 단말의 사용자 이름에 대응하는 해시값, 사용자의 주민등록번호에 대응하는 해시값, 전화번호에 대응하는 해시값, 해당 특정 단말의 IP 정보에 대응하는 해시값, 해당 특정 단말의 MAC 주소에 대응하는 해시값 등을 포함한다.
즉, 상기 다른 단말(200)은 상기 헤더 부분의 메타데이터에 포함된 해시값이 상기 프라이빗 키에 포함된 해시값과 일치하는지 여부를 판단(또는 확인)한다.
이때, 상기 다른 단말(200)은 상기 프라이빗 키에 포함된 사용 기한, 사용 장소, 국가별 사용 가능 여부, IP 정보 및 맥 주소 정보 중 미리 설정된 적어도 하나가 모두 유효한 상태인지 여부를 먼저 판단하고, 상기 프라이빗 키에 포함된 사용 기한, 사용 장소, 국가별 사용 가능 여부, IP 정보 및 맥 주소 정보 중 적어도 하나가 모두 유효한 상태일 때, 상기 헤더 부분의 메타데이터에 포함된 해시값이 상기 프라이빗 키에 포함된 해시값과 일치하는지 여부를 판단할 수도 있다.
이와 같이, 상기 다른 단말(200)은 해시값 간의 비교뿐만 아니라, 상기 프라이빗 키의 유효성, 헤더 부분과 바디 부분을 결합하고자 하는 상기 다른 단말(200)의 위치 등을 함께 고려할 수 있다.
상기 판단 결과(또는 상기 확인 결과), 상기 헤더 부분의 메타데이터에 포함된 해시값이 상기 프라이빗 키에 포함된 해시값과 일치하지 않은 경우, 상기 다른 단말(200)은 파일 복원이 실패하였음을 나타내는 정보(또는 해시값이 일치하지 않음을 나타내는 정보)를 출력한다.
또한, 상기 판단 결과(또는 상기 확인 결과), 상기 헤더 부분의 메타데이터에 포함된 해시값이 상기 프라이빗 키에 포함된 해시값과 일치하는 경우, 상기 다른 단말(200)은 앞서 단말(100)에서 분리되었던 헤더 부분과 하나 이상의 바디 부분을 결합하여, 하나의 파일(또는 앞서 인코딩된 파일/인코딩된 상태의 파일)을 생성한다.
일 예로, 상기 제 2 단말은 상기 제 1 단말로부터 제공받은 제 1 헤더 부분의 제 1 메타데이터에 포함된 제 1 해시값(예를 들어 2fd4e1c67a2d28fced849ee1bb76e7391b93eb23)과 상기 제 2 단말에 미리 저장된 제 2 프라이빗 키에 포함된 제 2 해시값이 일치하는지 여부를 판단한다.
상기 판단 결과, 상기 제 1 해시값이 상기 제 2 해시값과 일치할 때, 상기 제 2 단말은 상기 제 1 헤더 부분과 상기 제 1 바디 부분을 결합하여 제 2 파일을 생성한다. 이때, 상기 생성된 제 2 파일은 앞서 상기 제 1 단말에서 인코딩된 제 1 파일에 해당할 수 있다(S250).
이후, 상기 다른 단말(200)은 상기 생성된 파일(또는 상기 인코딩된 파일)을 미리 설정된 디코딩 방식을 이용해서 디코딩하여, 원본 파일을 생성(또는 복원)한다. 여기서, 상기 미리 설정된 디코딩 방식은 Base64, ASCII, 유니코드 등을 포함한다.
일 예로, 상기 제 2 단말은 상기 생성된 제 2 파일을 Base64 방식으로 인코딩하여, 원본 파일인 상기 1 파일을 생성한다(S260).
본 발명의 실시예는 앞서 설명된 바와 같이, 단말에서 관리 중인 파일을 미리 설정된 방식으로 인코딩하고, 인코딩된 파일을 헤더 부분과 바디 부분으로 분할하고, 분할된 헤더 부분을 다른 단말에 전송하고, 분할된 바디 부분, 헤더 부분에 대한 해시값 등을 서버에 업로드하고, 다른 단말에서 서버에 접속하여 단말로부터 전송된 헤더 부분에 대한 해시값을 이용해서 서버에 업로드된 복수의 바디 부분 중에서 단말에서 업로드한 바디 부분을 다운로드하고, 다른 단말에서 단말로부터 전송된 헤더 부분과 서버에서 다운로드한 바디 부분을 해당 다른 단말에 미리 저장된 프라이빗 키를 이용해서 하나의 파일을 생성하고, 생성된 파일을 미리 설정된 방식으로 디코딩하여, 파일 자체에 보안을 설정하여 파일을 보호할 수 있다.
또한, 본 발명의 실시예는 앞서 설명된 바와 같이, 사용 기한, 사용 장소, 국가별 사용 가능 여부, IP 정보, 맥 주소 정보, IP 정보 또는 맥 주소에 대응하는 해시값 등을 저장한 프라이빗 키를 이용해서 수집된 헤더 부분과 바디 부분을 합쳐 하나의 파일을 생성하고, 생성된 파일을 미리 설정된 방식으로 디코딩하여 원본 파일을 복원하여, 허가된 프라이빗 키가 없으면 원래 파일을 열 수가 없어, 파일 관리의 효율성을 높이고, 양자 합의의 확인이 필요한 계약서나 에스크로 서비스 등에 적용할 수 있다.
전술된 내용은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
10: 파일 관리 시스템 100: 단말
200: 다른 단말 300: 서버

Claims (10)

  1. 원본 파일을 미리 설정된 인코딩 방식으로 인코딩하고, 상기 인코딩된 파일을 헤더 부분과 하나 이상의 바디 부분으로 분리하고, 상기 분리된 헤더 부분 및 단말의 식별 정보를 다른 단말에 전송하고, 백그라운드 상태로, 상기 분리된 하나 이상의 바디 부분 및 상기 헤더 부분의 메타데이터에 포함된 해시값을 등록하는 단말;
    상기 단말로부터 전송되는 헤더 부분을 상기 다른 단말의 미리 설정된 레지스트리에 등록하고, 상기 헤더 부분 내의 메타데이터에 포함된 해시값을 이용해서 서버와 연동하여, 상기 해시값에 대응하는 하나 이상의 바디 부분을 다운로드하고, 상기 단말로부터 제공받은 헤더 부분과 상기 서버로부터 제공받은 하나 이상의 바디 부분을 상기 다른 단말에 미리 저장된 프라이빗 키를 이용해서 결합하여, 하나의 파일을 생성하고, 상기 생성된 파일을 미리 설정된 디코딩 방식으로 디코딩하여 원본 파일을 생성하는 상기 다른 단말; 및
    상기 단말과 연동하여, 상기 분리된 하나 이상의 바디 부분 및 상기 헤더 부분의 메타데이터에 포함된 해시값을 등록하는 상기 서버를 포함하며,
    상기 다른 단말은,
    상기 헤더 부분 내의 메타데이터에 포함된 해시값, 바디 부분 전송 요청 정보 및 다른 단말의 식별 정보를 상기 서버에 전송하며,
    상기 서버는,
    상기 서버에 미리 등록된 복수의 해시값별 바디 부분 중에서 상기 해시값에 대응하는 바디 부분을 확인하고, 상기 확인 결과, 상기 복수의 해시값별 바디 부분 중에서 해당 해시값에 대응하는 바디 부분이 확인될 때, 상기 확인된 해시값에 대응하는 하나 이상의 바디 부분을 상기 다른 단말에 전송하는 것을 특징으로 하는 파일 관리 시스템.
  2. 제 1 항에 있어서,
    상기 헤더 부분은,
    원본 파일의 헤더에, 메타데이터를 추가한 상태이며,
    상기 원본 파일의 헤더는,
    상기 단말의 사용자와 관련한 사용자 이름, 주민번호, 전화번호, 파일명 및, 파일 생성 일자 및 시각 정보 중 적어도 하나를 포함하고,
    상기 메타데이터는,
    상기 분리된 바디 부분의 개수 및 해시값을 포함하는 것을 특징으로 하는 파일 관리 시스템.
  3. 제 1 항에 있어서,
    상기 헤더 부분의 메타데이터에 포함된 해시값은,
    미리 설정된 해시 함수를 이용해서 상기 단말의 사용자 이름, 주민등록번호, 전화번호, 상기 단말의 IP 정보 및 상기 단말의 MAC 주소를 매핑한 결과로, 상기 단말의 사용자 이름에 대응하는 해시값, 상기 사용자의 주민등록번호에 대응하는 해시값, 상기 전화번호에 대응하는 해시값, 상기 단말의 IP 정보에 대응하는 해시값 및 상기 단말의 MAC 주소에 대응하는 해시값 중 어느 하나를 포함하는 것을 특징으로 하는 파일 관리 시스템.
  4. 삭제
  5. 삭제
  6. 제 1 항에 있어서,
    상기 프라이빗 키는
    사용 기한, 사용 장소, 국가별 사용 가능 여부, IP 정보, 맥 주소 정보 및 해시값 중 적어도 하나를 포함하는 것을 특징으로 하는 파일 관리 시스템.
  7. 제 1 항에 있어서,
    상기 다른 단말은,
    상기 헤더 부분의 메타데이터에 포함된 해시값이 상기 프라이빗 키에 포함된 해시값과 일치하는지 여부를 판단하고, 상기 판단 결과, 상기 헤더 부분의 메타데이터에 포함된 해시값이 상기 프라이빗 키에 포함된 해시값과 일치할 때, 앞서 상기 단말에서 분리되었던 헤더 부분과 하나 이상의 바디 부분을 결합하여, 하나의 파일을 생성하는 것을 특징으로 하는 파일 관리 시스템.
  8. 단말에 의해, 원본 파일을 미리 설정된 인코딩 방식으로 인코딩하는 단계;
    상기 단말에 의해, 상기 인코딩된 파일을 헤더 부분과 하나 이상의 바디 부분으로 분리하는 단계;
    상기 단말에 의해, 상기 분리된 헤더 부분 및 단말의 식별 정보를 다른 단말에 전송하는 단계;
    상기 단말에 의해, 백그라운드 상태로, 상기 분리된 하나 이상의 바디 부분 및 상기 헤더 부분의 메타데이터에 포함된 해시값을 서버에 등록하는 단계;
    상기 다른 단말에 의해, 상기 단말로부터 전송되는 헤더 부분을 상기 다른 단말의 미리 설정된 레지스트리에 등록하는 단계;
    상기 다른 단말에 의해, 상기 헤더 부분 내의 메타데이터에 포함된 해시값을 이용해서 상기 서버와 연동하여, 상기 해시값에 대응하는 하나 이상의 바디 부분을 다운로드하는 단계;
    상기 다른 단말에 의해, 상기 단말로부터 제공받은 헤더 부분과 상기 서버로부터 제공받은 하나 이상의 바디 부분을 상기 다른 단말에 미리 저장된 프라이빗 키를 이용해서 결합하여, 하나의 파일을 생성하는 단계; 및
    상기 다른 단말에 의해, 상기 생성된 파일을 미리 설정된 디코딩 방식으로 디코딩하여 원본 파일을 생성하는 단계를 포함하며,
    상기 헤더 부분과 상기 하나 이상의 바디 부분을 상기 프라이빗 키를 이용해서 결합하여 하나의 파일을 생성하는 단계는,
    상기 헤더 부분의 메타데이터에 포함된 해시값이 상기 프라이빗 키에 포함된 해시값과 일치하는지 여부를 판단하는 과정; 및
    상기 판단 결과, 상기 헤더 부분의 메타데이터에 포함된 해시값이 상기 프라이빗 키에 포함된 해시값과 일치할 때, 앞서 상기 단말에서 분리되었던 헤더 부분과 하나 이상의 바디 부분을 결합하여, 하나의 파일을 생성하는 과정을 포함하는 것을 특징으로 하는 파일 관리 방법.
  9. 제 8 항에 있어서,
    상기 해시값에 대응하는 하나 이상의 바디 부분을 다운로드하는 단계는,
    상기 다른 단말에 의해, 상기 헤더 부분 내의 메타데이터에 포함된 해시값, 바디 부분 전송 요청 정보 및 다른 단말의 식별 정보를 상기 서버에 전송하는 과정;
    상기 서버에 의해, 상기 서버에 미리 등록된 복수의 해시값별 바디 부분 중에서 상기 해시값에 대응하는 바디 부분을 확인하는 과정;
    상기 확인 결과, 상기 복수의 해시값별 바디 부분 중에서 해당 해시값에 대응하는 바디 부분이 확인될 때, 상기 서버에 의해, 상기 확인된 해시값에 대응하는 하나 이상의 바디 부분을 상기 다른 단말에 전송하는 과정; 및
    상기 다른 단말에 의해, 앞서 전송된 바디 부분 전송 요청 정보에 응답하여 상기 서버로부터 전송되는 상기 해시값에 대응하는 하나 이상의 바디 부분을 수신하는 과정을 포함하는 것을 특징으로 하는 파일 관리 방법.
  10. 삭제
KR1020200064212A 2020-05-28 2020-05-28 파일 관리 시스템 및 그 방법 KR102335199B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200064212A KR102335199B1 (ko) 2020-05-28 2020-05-28 파일 관리 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200064212A KR102335199B1 (ko) 2020-05-28 2020-05-28 파일 관리 시스템 및 그 방법

Publications (1)

Publication Number Publication Date
KR102335199B1 true KR102335199B1 (ko) 2021-12-07

Family

ID=78868070

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200064212A KR102335199B1 (ko) 2020-05-28 2020-05-28 파일 관리 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR102335199B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101016615B1 (ko) 2008-09-10 2011-02-22 소프트캠프(주) 실행파일 형태의 에이피아이를 이용한 보안파일 전송시스템과 전송방법
KR20160146623A (ko) * 2016-12-12 2016-12-21 킹스정보통신(주) 휴대용 단말에서 컨텐츠를 보호하는 방법, 상기 방법을 컴퓨터 프로그램으로 기록하기 위한 기록매체, 및 휴대단말 보안 시스템
KR101889062B1 (ko) * 2018-02-28 2018-08-17 (주)케이포스트 보안파일 생성서버 및 생성방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101016615B1 (ko) 2008-09-10 2011-02-22 소프트캠프(주) 실행파일 형태의 에이피아이를 이용한 보안파일 전송시스템과 전송방법
KR20160146623A (ko) * 2016-12-12 2016-12-21 킹스정보통신(주) 휴대용 단말에서 컨텐츠를 보호하는 방법, 상기 방법을 컴퓨터 프로그램으로 기록하기 위한 기록매체, 및 휴대단말 보안 시스템
KR101889062B1 (ko) * 2018-02-28 2018-08-17 (주)케이포스트 보안파일 생성서버 및 생성방법

Similar Documents

Publication Publication Date Title
US11501533B2 (en) Media authentication using distributed ledger
US8763101B2 (en) Multi-factor authentication using a unique identification header (UIDH)
US10715502B2 (en) Systems and methods for automating client-side synchronization of public keys of external contacts
CN110224999B (zh) 信息交互方法、装置及存储介质
CN113347206A (zh) 一种网络访问方法和装置
CN110263579B (zh) 一种数据处理方法、系统及相关设备
KR20160123069A (ko) 단말의 통합 인증 방법 및 그 장치
CN104348870A (zh) 基于可信时间戳的云存储系统的数据管理方法和系统
CN113055188A (zh) 一种数据处理方法、装置、设备及存储介质
CN111177801A (zh) 电子文档的签章方法、装置、存储介质和电子设备
CN112839003A (zh) 数据校验方法及系统
US20170155712A1 (en) Method and device for updating cache data
KR20060113352A (ko) 이름 분해를 위한 시스템 및 방법
CN113094334A (zh) 基于分布式存储的数字服务方法、装置、设备及储存介质
CN116383867A (zh) 一种数据查询方法、装置、电子设备及计算机可读介质
CN113507483B (zh) 即时通讯方法、装置、服务器及存储介质
CN105592083A (zh) 终端利用令牌访问服务器的方法和装置
CN114239072A (zh) 区块链节点管理方法及区块链网络
KR102367052B1 (ko) 관계성 탈중앙화 아이디 서비스를 제공하는 방법 및 이를 이용한 블록체인 노드
US9503534B2 (en) Information distribution system
KR102335199B1 (ko) 파일 관리 시스템 및 그 방법
CN114428661A (zh) 一种镜像管理方法及装置
CN113378147A (zh) 一种用户登录业务平台的方法
CN110392083B (zh) 文件秒传的控制方法、装置及终端设备
CN115361376A (zh) 政务文件上传方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
GRNT Written decision to grant