KR102617447B1 - 파일 암호화 기능을 제공하는 파일 관리 시스템 및 그 방법 - Google Patents

파일 암호화 기능을 제공하는 파일 관리 시스템 및 그 방법 Download PDF

Info

Publication number
KR102617447B1
KR102617447B1 KR1020230012204A KR20230012204A KR102617447B1 KR 102617447 B1 KR102617447 B1 KR 102617447B1 KR 1020230012204 A KR1020230012204 A KR 1020230012204A KR 20230012204 A KR20230012204 A KR 20230012204A KR 102617447 B1 KR102617447 B1 KR 102617447B1
Authority
KR
South Korea
Prior art keywords
token
file
request message
server
decoding
Prior art date
Application number
KR1020230012204A
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 KR1020230012204A priority Critical patent/KR102617447B1/ko
Application granted granted Critical
Publication of KR102617447B1 publication Critical patent/KR102617447B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • 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/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • 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
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Abstract

파일 암호화 기능을 제공하는 파일 관리 시스템 및 그 방법이 개시된다. 파일 암호화 기능을 제공하는 파일 관리 시스템은 클라이언트로부터 파일의 업로드를 요청하는 업로드 요청 메시지를 수신하고, 업로드 요청 메시지의 수신에 대응하여 토큰을 요청하는 토큰 요청 메시지를 전송하고, 토큰 요청 메시지에 대한 응답으로 수신된 토큰을 포함하는 인코딩 정보 요청 메시지를 전송하는 파일저장서버, 및 토큰 요청 메시지를 수신하고, 토큰 요청 메시지의 수신에 대응하여 토큰을 발행하고, 발행된 토큰을 상기 파일저장서버로 전송하고, 인코딩 정보 요청 메시지를 수신하고, 수신된 인코딩 정보 요청 메시지에 포함된 토큰이 전송된 토큰과 일치하는 경우에는, 인코딩을 수행하기 위한 인코딩 정보를 파일저장서버로 전송하는 토큰서버를 포함할 수 있다.

Description

파일 암호화 기능을 제공하는 파일 관리 시스템 및 그 방법{File management system providing file encryption function and method of the same}
본 발명은 파일 암호화 기능을 제공하는 파일 관리 시스템 및 그 방법에 관한 것으로, 보다 상세하게는, 업로드되는 파일을 암호화하는 파일 암호화 기능을 제공하는 파일 관리 시스템 및 그 방법에 관한 것이다.
국내외를 막론하고 현존하는 거의 모든 상업 업종들은 웹을 통한 업무시스템을 구축하여 PC와 모바일 등으로 다양한 서비스를 제공하고 있다. 개개인의 민감한 데이터 보관을 대행하는 Microsoft, Apple, Google 등의 각각의 클라우드 서비스 이외에도, AWS 등의 서버 자체를 클라우드 서비스하는 종류도 있다. 이런 클라우드 서비스 또는 개별적인 방법으로 주민등록번호, 주소 등 개인의 민감한 정보관리를 대행하는 다양한 ASP(Application Service Provide) 및 IoT 장비 들도 존재한다.
흔히 우리가 알고 있는 ERP (Enterprise resource planning) 시스템들을 사용함에 있어, 의도하는 만큼의 충분한 시스템을 운영할 수 있는 금전적 능력을 가진 업체가 아닌 경우에는 월 비용을 지불하면서 ASP업체들이 제공하는 ERP 시스템을 사용한다. ERP서비스의 경우 통상적으로 사원관리/급여관리/고객관리/거래처 관리 등 다양한 인적정보가 시스템에 저장이 되며, 상당수가 민감한 개인정보로써 보안이 매우 중요하다.
또한 IoT 장비의 경우 이미지, 영상 등 상당량의 데이터들이 개별장비를 통해 보관되거나 전송된다. 이를 위해 IoT 장비등의 보안을 위한 문서도 다양한 형태로 작성되고 있다.
데이터베이스에 직접적으로 저장되는 Text 데이터들은 기본적으로 암호화하여 저장하는 방식이 주로 사용되고 있고, 이 경우 Text 자체의 용량이 크지 않기 때문에 각 업체마다 다양한 방식으로 암호화된 정보를 데이터베이스에 저장한다. 따라서 통상 Text 기반의 개인정보들은 데이터베이스의 암호 및 별다른 규칙이 없는 인코딩 방식에 따른 암호화로 사용자가 데이터베이스와 서버를 해킹했다 하더라도, 서버측 프로그램에서 리버스엔지니어링을 하기 전에는 그 데이터를 확인하기가 쉽지 않다.
그러나 하드디스크에 업로드 되는 파일의 경우 그 자체의 저장방식에 대한 엄격한 법적 기준이 없다. 한국인터넷진흥원 등에서는 웹서버의 파일보안을 위하여 몇 가지 권장사항을 제시하지만, 서버자체의 보안을 강화하거나, 방화벽구축, 파일전송 과정에서의 보안강화 등에 그치고 있다. 이런 방법들은 가장 최전방의 보안으로는 권장할 수 있으나, 파일이 업로드 된 서버의 권한 자체를 탈취당했을 경우에는, 서버에 저장된 모든 파일들이 정보가 그대로 해커에게 노출될 수 있다.
그런 이유로 업로드 되는 파일 중 용량이 큰 파일의 경우 파일전체를 암호화하는데 속도상의 문제가 되어 헤더만 변조하거나, 파일의 확장자를 없애 버리기도 하고(Windows의 경우), 파일의 권한제거(Unix계열의 시스템)를 통해 디스크에 저장하기도 한다. 그 외 업로드 되는 파일을 암호화하고, 당시 암호화했던 키 값을 데이터베이스에 저장하는 방식을 이용하기도 하지만, 이 역시 클라우드에 백업된 데이터마저 삭제된다면 복구할 방법이 없다. 또는 파일용량이 큰 경우 암호화에 걸리는 성능상의 오버헤드를 보완하기 위하여 부분암호화를 지원하는 방식도 있으나, 동영상 같은 경우 부분 암호화로는 전체 데이터의 기밀성을 보호하기에는 어려운 한계가 있다.
본 발명이 해결하고자 하는 과제는 암호화 정보를 수신하여 업로드된 파일을 암호화하여 저장할 수 있고 저장된 암호화된 파일을 복호화 할 수 있으면서 불법 접속을 차단하여 비인가자에 의한 암호화 정보의 획들을 차단할 수 있는 파일 암호화 기능을 제공하는 파일 관리 시스템 및 그 방법을 제공하는데 있다.
본 발명이 해결하고자 하는 다른 과제는 토큰을 이용하여 이상상황을 감지함으로써 불법 접속을 차단할 수 있고, 해커가 파일 관리 시스템 내의 데이타베이스와 파일모두를 해킹하는데 성공하였다 하더라도, 암호의 해독을 위해 현 운영되고 있는 파일 관리 시스템에 암호화 방식의 프로그램 코드까지 역어셈블링 하지 않으면 암호파일을 해독할 수 없도록 하는 파일 암호화 기능을 제공하는 파일 관리 시스템 및 그 방법을 제공하는데 있다.
본 발명이 해결하고자 하는 또 다른 과제는 웹서비스 등 빠른 피드백이 필요한 서비스에 경량 암호화 방식으로 적합한 파일 암호화 기능을 제공하는 파일 관리 시스템 및 그 방법을 제공하는데 있다.
본 발명이 해결하고자 하는 또 다른 과제는 하드디스크 상에 암호화 저장 및 복호화 시에 발생되는 성능상의 오버헤더를 보완하면서도 전체 파일을 암호화할 수 있는 파일 암호화 기능을 제공하는 파일 관리 시스템 및 그 방법을 제공하는데 있다.
본 발명이 해결하고자 하는 또 다른 과제는 같은 암호키를 기반으로 각각의 시스템에 따라 서로 다른 구조의 암호화 방식으로 변형될 수 있는 파일 암호화 기능을 제공하는 파일 관리 시스템 및 그 방법을 제공하는데 있다.
본 발명이 해결하고자 하는 또 다른 과제는 비밀번호 분실 또는 손실에 대한 방지, 해킹으로 인한 파일 탈취 시 최대한 파일을 보호할 수 있는 파일 암호화 기능을 제공하는 파일 관리 시스템 및 그 방법을 제공하는데 있다.
본 발명에 따른 파일 암호화 기능을 제공하는 파일 관리 시스템은, 클라이언트로부터 파일의 업로드를 요청하는 업로드 요청 메시지를 수신하고, 상기 업로드 요청 메시지의 수신에 대응하여 토큰을 요청하는 토큰 요청 메시지를 전송하고, 상기 토큰 요청 메시지에 대한 응답으로 수신된 토큰을 포함하는 인코딩 정보 요청 메시지를 전송하는 파일저장서버, 및 상기 토큰 요청 메시지를 수신하고, 상기 토큰 요청 메시지의 수신에 대응하여 토큰을 발행하고, 상기 발행된 토큰을 상기 파일저장서버로 전송하고, 상기 인코딩 정보 요청 메시지를 수신하고, 상기 수신된 인코딩 정보 요청 메시지에 포함된 토큰이 상기 전송된 토큰과 일치하는 경우에는, 인코딩을 수행하기 위한 인코딩 정보를 상기 파일저장서버로 전송하는 토큰서버를 포함할 수 있다.
상기 파일저장서버는, 상기 인코딩 정보를 수신하고, 상기 수신된 인코딩 정보를 기초로 상기 파일을 암호화할 수 있다. 상기 파일저장서버는, 상기 파일이 수신되는 동안에, 상기 파일의 암호화를 블록 단위로 진행할 수 있다. 상기 인코딩 정보는, 암호키 및 상기 암호키와 연관된 고유키를 포함할 수 있다. 상기 파일의 암호화가 완료된 경우에는, 상기 암호키가 삭제되며, 상기 고유키는 상기 암호화된 파일에 기록될 수 있다.
상기 토큰서버는, 상기 발행된 토큰의 토큰발행시간이 경과한 경우에는, 상기 토큰을 폐기하고, 상기 인코딩 정보 요청 메시지에 포함된 토큰이 상기 폐기된 토큰과 일치하는 경우에는, 이상상황으로 확인하고 이상상황 조치를 수행할 수 있다.
상기 토큰서버는, 상기 인코딩 정보 요청 메시지를 전송한 전자 장치가 상기 인코딩 정보 요청 메시지에 포함된 토큰을 요청한 파일저장서버와 다른 경우에는, 이상상황으로 확인하고 이상상황 조치를 수행할 수 있다.
상기 이상상황 조치는, 상기 인코딩 정보를 제공하지 않는 조치, 상기 저장된 인코딩 정보를 폐기하는 조치, 전자 장치의 요청을 차단하는 조치 및 이상상황임을 관리자에게 통지하는 조치 중 적어도 하나를 포함할 수 있다.
상기 파일저장서버는, 상기 파일을 암호화하는 인코딩 모듈 및 상기 암호화된 파일의 복호화하는 디코딩 모듈의 프로그램 코드는 바이너리화 하여 저장되고, 상기 프로그램 코드는 사전에 설정된 고유 정보와 실행되는 전자 장치가 갖는 고유 정보와 일치하는 경우에 실행되도록 프로그램 된 것일 수 있다. 여기서, 상기 고유 정보는, 맥 주소(MAC address), CPU ID, IP 주소 및 운영체제 라이센스 제품키 중 적어도 하나를 포함할 수 있다.
상기 파일저장서버는, 암호화된 파일을 디코딩을 위한 토큰을 요청하는 디코딩 요청 메시지를 전송하고, 상기 디코딩 요청 메시지에 대한 응답으로 수신된 토큰 및 상기 암호화된 파일에 기록된 고유키를 포함하는 디코딩 정보 요청 메시지를 전송하고, 상기 토큰서버는, 상기 디코딩 요청 메시지를 수신하고, 상기 디코딩 요청 메시지의 수신에 대응하여 토큰을 발행하고, 상기 발행된 토큰을 상기 파일저장서버로 전송하고, 상기 디코딩 정보 요청 메시지를 수신하고, 상기 수신된 디코딩 정보 요청 메시지에 포함된 토큰이 상기 전송된 토큰과 일치하는 경우에는, 상기 고유키와 연관된 디코딩 정보를 상기 파일저장서버로 전송하고, 상기 파일저장서버는, 상기 디코딩 정보를 수신하고, 상기 수신된 디코딩 정보를 기초로 상기 암호화된 파일을 복호화 할 수 있다.
상기 토큰서버는, 상기 발행된 토큰의 토큰발행시간이 경과한 경우에는, 상기 토큰을 폐기하고, 상기 디코딩 정보 요청 메시지에 포함된 토큰이 상기 폐기된 토큰과 일치하는 경우에는, 이상상황으로 확인하고 이상상황 조치를 수행할 수 있다.
상기 토큰서버는, 상기 디코딩 정보 요청 메시지를 전송한 전자 장치가 상기 디코딩 정보 요청 메시지에 포함된 토큰을 요청한 파일저장서버와 다른 경우에는, 이상상황으로 확인하고 이상상황 조치를 수행할 수 있다. 상기 이상상황 조치는, 상기 디코딩 정보를 제공하지 않는 조치, 상기 저장된 인코딩 정보를 폐기하는 조치, 전자 장치의 요청을 차단하는 조치 및 이상상황임을 관리자에게 통지하는 조치 중 적어도 하나를 포함할 수 있다.
본 발명에 따른 토큰을 이용한 파일 암호화 기능을 제공하는 파일 관리 방법은, 파일저장서버가 클라이언트로부터 파일의 업로드를 요청하는 업로드 요청 메시지를 수신하는 단계, 상기 업로드 요청 메시지의 수신에 대응하여, 상기 파일저장서버가 토큰을 요청하는 토큰 요청 메시지를 토큰서버로 전송하는 단계, 상기 전송된 토큰 요청 메시지의 수신에 대응하여, 상기 토큰서버가 토큰을 발행하는 단계, 상기 토큰서버가 상기 발행된 토큰을 상기 파일저장서버로 전송하는 단계, 상기 파일저장서버가 상기 전송된 토큰을 포함하는 인코딩 정보 요청 메시지를 상기 토큰서버로 전송하는 단계, 상기 토큰서버가, 상기 전송된 인코딩 정보 요청 메시지가 유효한 메시지인지를 확인하는 단계, 상기 확인결과 유효한 메시지인 경우에는, 상기 토큰서버가 인코딩을 수행하기 위한 인코딩 정보를 상기 파일저장서버로 전송하는 단계, 및 상기 파일저장서버가, 상기 전송된 인코딩 정보를 기초로 상기 파일을 암호화하는 단계를 포함하고, 상기 유효한 메시지인지를 확인하는 단계는, 상기 인코딩 정보 요청 메시지에 포함된 토큰이 상기 전송된 토큰과 일치하는지 여부를 확인하는 단계, 및 상기 인코딩 정보 요청 메시지에 포함된 토큰이 상기 전송된 토큰과 일치하는 경우에는, 상기 인코딩 정보 요청 메시지가 유효한 메시지로 확인하는 단계를 포함할 수 있다. 여기서, 상기 인코딩 정보는, 암호키 및 상기 암호키와 연관된 고유키를 포함할 수 있다. 상기 파일의 암호화가 완료된 경우에는, 상기 암호키가 삭제되며, 상기 고유키는 상기 암호화된 파일에 기록될 수 있다.
상기 토큰을 이용한 파일 암호화 기능을 제공하는 파일 관리 방법은, 상기 토큰서버가 상기 발행된 토큰의 토큰발행시간이 경과하였는지 여부를 확인하는 단계, 상기 토큰서버가 상기 발행된 토큰의 토큰발행시간이 경과한 경우에는, 상기 토큰을 폐기하는 단계, 및 이상상황인 경우에는, 상기 토큰서버가 이상상황 조치를 수행하는 단계를 더 포함할 수 있다.
상기 유효한 메시지인지를 확인하는 단계는, 상기 토큰서버가 상기 인코딩 정보 요청 메시지에 포함된 토큰이 상기 폐기된 토큰과 일치하는지 여부를 확인하는 단계, 및 상기 인코딩 정보 요청 메시지에 포함된 토큰이 상기 폐기된 토큰과 일치하는 경우에는, 상기 토큰서버가 이상상황으로 확인하는 단계를 더 포함할 수 있다. 여기서, 상기 이상상황 조치는, 상기 인코딩 정보를 제공하지 않는 조치, 상기 저장된 인코딩 정보를 폐기하는 조치, 전자 장치의 요청을 차단하는 조치 및 이상상황임을 관리자에게 통지하는 조치 중 적어도 하나를 포함할 수 있다.
상기 유효한 메시지인지를 확인하는 단계는, 상기 토큰서버가 상기 인코딩 정보 요청 메시지를 전송한 전자 장치가 상기 인코딩 정보 요청 메시지에 포함된 토큰을 요청한 파일저장서버와 같은 지 여부를 확인하는 단계, 및 상기 전자 장치가 상기 인코딩 정보 요청 메시지에 포함된 토큰을 요청한 파일저장서버와 다른 경우에는, 상기 토큰서버가 이상상황으로 확인단계를 더 포함할 수 있고, 상기 토큰을 이용한 파일 암호화 기능을 제공하는 파일 관리 방법은, 상기 이상상황인 경우에는, 상기 토큰서버가 이상상황 조치를 수행한 단계를 더 포함할 수 있다. 여기서, 상기 이상상황 조치는, 상기 인코딩 정보를 제공하지 않는 조치, 상기 저장된 인코딩 정보를 폐기하는 조치, 전자 장치의 요청을 차단하는 조치 및 이상상황임을 관리자에게 통지하는 조치 중 적어도 하나를 포함할 수 있다.
상기 토큰을 이용한 파일 암호화 기능을 제공하는 파일 관리 방법은, 상기 파일저장서버가 상기 클라이언트로부터 상기 파일을 수신하는 단계를 더 포함하고 상기 파일을 암호화하는 단계는, 상기 파일이 수신되는 동안에, 상기 파일의 암호화를 블록 단위로 진행하는 단계를 포함할 수 있다.
상기 파일을 암호화하는 인코딩 모듈 및 상기 암호화된 파일의 복호화하는 디코딩 모듈의 프로그램 코드는 상기 파일저장서버에 바이너리화 하여 저장되고, 상기 프로그램 코드는 사전에 설정된 고유 정보와 실행되는 전자 장치가 갖는 고유 정보와 일치하는 경우에 실행되도록 프로그램 될 수 있다. 여기서 상기 고유 정보는, 맥 주소(MAC address), CPU ID, IP 주소 및 운영체제 라이센스 제품키 중 적어도 하나를 포함할 수 있다.
상기 토큰을 이용한 파일 암호화 기능을 제공하는 파일 관리 방법은, 상기 파일저장서버가 암호화된 파일을 디코딩을 위한 토큰을 요청하는 디코딩 요청 메시지를 토큰서버로 전송하는 단계, 상기 전송된 디코딩 요청 메시지의 수신에 대응하여, 상기 토큰서버가 토큰을 발행하는 단계, 상기 토큰서버가 상기 발행된 토큰을 상기 파일저장서버로 전송하는 단계, 상기 파일저장서버가 상기 전송된 토큰 및 상기 암호화된 파일에 기록된 고유키를 포함하는 디코딩 정보 요청 메시지를 상기 토큰서버로 전송하는 단계, 상기 토큰서버가 상기 전송된 디코딩 정보 요청 메시지가 유효한 메시지인지를 확인하는 단계, 상기 확인결과 상기 디코딩 정보 요청 메시지가 유효한 메시지인 경우에는, 상기 토큰서버가 상기 고유키와 연관된 디코딩 정보를 상기 파일저장서버로 전송하는 단계, 및 상기 파일저장서버가, 상기 전송된 디코딩 정보를 기초로 상기 암호화된 파일을 복호화하는 단계를 포함하고, 상기 디코딩 정보 요청 메시지가 유효한 메시지인지를 확인하는 단계는, 상기 전송된 디코딩 정보 요청 메시지에 포함된 토큰이 상기 전송된 토큰과 일치하는지 여부를 확인하는 단계, 및 상기 디코딩 정보 요청 메시지에 포함된 토큰이 상기 전송된 토큰과 일치하는 경우에는, 상기 디코딩 정보 요청 메시지를 유효한 메시지로 확인하는 단계를 더 포함할 수 있다.
상기 토큰을 이용한 파일 암호화 기능을 제공하는 파일 관리 방법은, 상기 토큰서버가 상기 발행된 토큰의 토큰발행시간이 경과하였는지 여부를 확인하는 단계, 상기 토큰서버가 상기 발행된 토큰의 토큰발행시간이 경과한 경우에는, 상기 토큰을 폐기하는 단계, 및 이상상황인 경우에는, 상기 토큰서버가 이상상황 조치를 수행하는 단계를 더 포함하고, 상기 디코딩 정보 요청 메시지가 유효한 메시지인지를 확인하는 단계는, 상기 토큰서버가 상기 디코딩 정보 요청 메시지에 포함된 토큰이 상기 폐기된 토큰과 일치하는지 여부를 확인하는 단계, 및 상기 디코딩 정보 요청 메시지에 포함된 토큰이 상기 폐기된 토큰과 일치하는 경우에는, 상기 토큰서버가 이상상황으로 확인하는 단계를 더 포함할 수 있다.
상기 디코딩 정보 요청 메시지가 유효한 메시지인지를 확인하는 단계는, 상기 토큰서버가 상기 디코딩 정보 요청 메시지를 전송한 전자 장치가 상기 디코딩 정보 요청 메시지에 포함된 토큰을 요청한 파일저장서버와 같은 지 여부를 확인하는 단계, 및 상기 전자 장치가 상기 디코딩 정보 요청 메시지에 포함된 토큰을 요청한 파일저장서버와 다른 경우에는, 상기 토큰서버가 이상상황으로 확인단계를 더 포함하고,
상기 토큰을 이용한 파일 암호화 기능을 제공하는 파일 관리 방법은, 상기 이상상황인 경우에는, 상기 토큰서버가 이상상황 조치를 수행하는 단계를 더 포함할 수 있다.
상기 이상상황 조치는, 상기 디코딩 정보를 제공하지 않는 조치, 상기 저장된 인코딩 정보를 폐기하는 조치, 전자 장치의 요청을 차단하는 조치 및 이상상황임을 관리자에게 통지하는 조치 중 적어도 하나를 포함할 수 있다.
본 발명에 따른 인코딩 방법은, 복수의 원소를 포함하는 암호키를 기초로 데이터 크기를 지시하는 블록 단위를 산출하는 단계, 및 상기 복수의 원소의 개수 및 상기 복수의 원소 각각의 값을 기초로 원본 파일을 상기 산출된 블록 단위로 암호화하는 단계를 포함할 수 있다. 여기서, 상기 암호키는, 알파벳, 숫자 및 특수문자 중 적어도 하나를 원소로 포함하고, 상기 암호키에 포함된 원소는 서로 다를 수 있다. 복수의 암호키 및 상기 복수의 암호키와 관련된 고유키가 사전에 생성되어 저장되고, 상기 암호키는 상기 저장된 복수의 암호키에서 선택될 수 있다.
상기 암호키에 포함된 원소의 값은, 원소의 크기 또는 원소에 매핑된 값일 수 있다. 상기 원소의 크기는, 바이트(byte) 단위를 내림차순으로 인코딩한 크기 또는 오름차순으로 인코딩한 크기일 수 있다. 참조테이블에 원소 및 원소와 매핑된 값이 저장되고, 상기 참조테이블에서 상기 원소에 매핑된 값이 검색될 수 있다.
상기 인코딩 방법은, 상기 원본 파일의 수신이 시작되면, 상기 암호키의 전송을 요청하는 하는 단계, 및 상기 암호키 및 상기 암호키와 관련된 고유키를 수신하는 단계를 더 포함할 수 있다.
상기 블록 단위를 산출하는 단계는, 상기 복수의 원소 각각의 값의 합을 상기 블록 단위로 산출하는 단계를 포함할 수 있다.
상기 암호화하는 단계는, 상기 블록 단위와 대응하는 크기의 데이터를 저장하기 위한 합계 배열을 생성하는 단계, 상기 복수의 원소 각각과 관련된 복수의 원소 배열을 생성하는 단계, 및 상기 합계 배열 및 상기 복수의 원소 배열을 이용하여 상기 원본 파일을 상기 블록 단위로 재배열하는 단계를 포함할 수 있다. 여기서, 상기 복수의 원소 배열은, 관련된 원소의 값과 대응하는 크기를 갖거나 상기 블록 단위 및 상기 관련된 원소의 값의 차이값과 대응하는 크기를 가질 수 있다.
상기 재배열하는 단계는, 상기 블록 단위만큼의 상기 원본 파일에 저장된 데이터를 상기 복수의 원소 배열에 나누어 저장하는 단계, 및 상기 합계 배열에 상기 복수의 원소 배열 각각의 일부 데이터를 돌아가며 저장하는 단계를 포함할 수 있다. 여기서, 상기 일부 데이터는, 바이트(byte) 단위이며, 상기 합계 배열 및 상기 복수의 원소 배열은, 바이트(byte) 단위 배열이고, 상기 원소 배열과 관련된 원소의 값과 대응하는 크기 또는 상기 블록 단위 및 상기 관련된 원소의 값의 차이값과 대응하는 크기만큼 상기 원본 파일에 저장된 데이터가 상기 원소 배열에 저장될 수 있다.
상기 나누어 저장하는 단계는, 상기 복수의 원소 배열과 관련된 원소가 상기 암호키에 포함된 순번 순으로 상기 데이터를 상기 복수의 원소 배열에 나누어 저장하는 단계를 포함할 수 있다.
상기 나누어 저장하는 단계는, 상기 복수의 원소 배열과 관련된 원소가 상기 암호키에 포함된 순번의 역순으로 상기 데이터를 상기 복수의 원소 배열에 나누어 저장하는 단계를 포함할 수 있다.
상기 나누어 저장하는 단계는, 상기 복수의 원소 배열과 관련된 원소의 값이 큰 순으로 상기 데이터를 상기 복수의 원소 배열에 나누어 저장하는 단계를 포함할 수 있다.
상기 나누어 저장하는 단계는, 상기 복수의 원소 배열과 관련된 원소의 값이 작은 순으로 상기 데이터를 상기 복수의 원소 배열에 나누어 저장하는 단계를 포함할 수 있다.
상기 돌아가며 저장하는 단계는, 상기 복수의 원소 배열과 관련된 원소가 상기 암호키에 포함된 순번 순으로 상기 합계 배열에 상기 복수의 원소 배열 각각의 일부 데이터가 돌아가며 저장될 수 있다.
상기 돌아가며 저장하는 단계는, 상기 복수의 원소 배열과 관련된 원소가 상기 암호키에 포함된 순번의 역순으로 상기 합계 배열에 상기 복수의 원소 배열 각각의 일부 데이터가 돌아가며 저장될 수 있다.
상기 돌아가며 저장하는 단계는, 상기 복수의 원소 배열과 관련된 원소의 값이 큰 순으로 상기 합계 배열에 상기 복수의 원소 배열 각각의 일부 데이터가 돌아가며 저장될 수 있다.
상기 돌아가며 저장하는 단계는, 상기 복수의 원소 배열과 관련된 원소의 값이 작은 순으로 상기 합계 배열에 상기 복수의 원소 배열 각각의 일부 데이터가 돌아가며 저장될 수 있다.
상기 돌아가며 저장하는 단계는, 원소 배열에 상기 합계 배열에 저장되지 않고 남은 데이터가 있는지 여부를 확인하는 단계를 포함하고, 상기 남은 데이터가 없는 경우에는, 상기 원소 배열의 데이터의 저장을 중지할 수 있다.
상기 돌아가며 저장하는 단계는, 모든 원소 배열에 상기 합계 배열에 저장되지 않고 남은 데이터가 없는 경우에는, 상기 합계 배열을 암호파일에 저장하는 단계를 포함할 수 있다.
상기 인코딩 방법은 암호파일에 상기 암호화된 원본 파일의 데이터, 상기 원본 파일에 대한 정보 및 상기 암호키와 관련된 고유키를 저장하는 단계를 더 포함할 수 있다. 상기 원본 파일에 대한 정보는, 상기 원본 파일의 파일명 및 상기 원본 파일의 확장자를 포함할 수 있다.
상기 인코딩 방법은, 상기 원본 파일을 수신하는 단계를 더 포함하고, 상기 원본 파일이 수신되는 동안에, 상기 암호화하는 단계가 진행될 수 있다.
파일 암호화 기능을 제공하는 파일 관리 시스템 및 그 방법에 의하면, 토큰을 이용하여 인코딩 정보 및 디코딩 정보를 포함하는 암호화 정보를 송수신함으로써, 업로드된 파일을 암호화하여 저장할 수 있고 저장된 암호화 파일을 복호화 할 수 있으면서 불법 접속을 차단하여 비인가자에 의한 암호화 정보의 획들을 차단할 수 있고, 해커가 파일저장서버 내의 데이타베이스와 파일모두를 해킹하는데 성공하였다 하더라도, 암호의 해독을 위해 현 운영되고 있는 파일 관리 시스템에 암호화 방식의 프로그램 코드까지 역어셈블링 하지 않으면 암호파일을 해독할 수 없게 되며, 업로드 중인 파일을 블록 단위로 암호화함으로써 웹서비스 등 빠른 피드백이 필요한 서비스에 경량 암호화 방식으로 적합하며, 하드디스크 상에 암호화 저장 및 복호화 시에 발생되는 성능상의 오버헤더를 보완하면서도 전체 파일을 암호화할 수 있고, 복수의 원소를 갖는 암호키에 사용되는 숫자조합과 고유키를 암호화 데이터 앞에 붙일지 뒤에 붙일지, 또는 원소 배열을 수신된 암호키의 원소의 순서대로 선원할지 연순으로 선언할 지 등에 따라 매우 다양하고 복잡한 형태의 인코더 및 디코더를 만들 수 있어 암호키를 기반으로 각각의 시스템에 따라 서로 다른 구조의 암호화 방식으로 변형될 수 있으며, 비밀번호 분실 또는 손실에 대한 방지, 해킹으로 인한 파일 탈취 시 최대한 파일을 보호할 수 있다.
도 1a은 본 발명의 일실시예에 따른 인코더의 구성을 도시한 블록도이다.
도 1b는 본 발명에 따른 암호키 데이터베이스의 일예를 나타낸 표 1을 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 블록 단위 암호화 방법의 수행과정을 도시한 도면이다.
도 3a는 본 발명의 일실시예에 따른 재배열 방법의 수행과정을 도시한 도면이다.
도 3b는 본 발명의 일실시예에 따른 데이터 할당 방식에 따라 합계 배열에 저장되는 데이터를 나타낸 표 2를 도시한 도면이다.
도 3c는 도 3b의 표 2에 이어지는 부분을 나타낸 표 3을 도시한 도면이다.
도 3d는 본 발명의 일실시예에 따른 암호파일의 구조를 도시한 도면이다.
도 4a는 본 발명의 일실시예에 인코딩 방법의 수행과정을 도시한 도면이다.
도 4b는 본 발명의 일실시예에 따른 암호파일의 구조를 도시한 도면이다.
도 4c는 본 발명의 다른 실시예에 따른 암호파일의 구조를 도시한 도면이다.
도 4d는 본 발명의 또 다른 실시예에 따른 암호파일의 구조를 도시한 도면이다.
도 5는 본 발명의 일실시예에 따른 인코딩 시스템의 구성을 도시한 구성도이다.
도 6은 본 발명의 다른 실시예에 인코딩 방법의 수행과정을 도시한 도면이다.
도 7은 본 발명의 또 다른 실시예에 인코딩 방법의 수행과정을 도시한 도면이다.
도 8은 본 발명의 일실시예에 따른 파일 관리 시스템의 구성을 도시한 구성도이다.
도 9는 본 발명의 일실시예에 따른 파일저장서버의 구성을 도시한 블록도이다.
도 10은 본 발명의 일실시예에 따른 토큰서버의 구성을 도시한 블록도이다.
도 11은 본 발명의 일실시예에 따른 파일 관리 방법의 수행과정의 일부를 도시한 도면이다.
도 12는 본 발명의 일실시예에 따른 파일 관리 방법의 수행과정의 일부를 도시한 도면이다.
도 13은 본 발명에 따른 파일 관리 시스템이 해킹 당한 경우에 피해 감소 효과를 설명하기 위한 도면이다.
본 명세서의 실시예들 및 그들의 다양한 특징 및 유익한 세부사항들은 첨부 도면에 도시되며 후술하는 발명을 실시하기 위한 구체적인 내용에서 상세히 설명되는 비한정적인 실시예를 참조하여 더욱 완전하게 설명된다. 주지된 컴포넌트 및 처리 기법들의 설명은 본 명세서의 실시예들을 불필요하게 모호하게 하지 않기 위하여 생략된다. 또한, 몇몇 실시예들이 하나 이상의 다른 실시예와 결합되어 새로운 실시예를 형성할 수 있기 때문에, 본 명세서에서 설명되는 다양한 실시예들은 반드시 상호 배타적인 것이 아니다. 용어 "또는"은 본 명세서에서 사용될 때, 달리 표시되지 않는 한 비-배타적 논리합(or)을 지칭한다. 본 명세서에서 사용되는 예들은 본 명세서의 실시예들이 실시될 수 있는 방식의 이해를 용이화하고 더 나아가 당업자들이 본 명세서의 실시예들을 실시할 수 있도록 하기 위한 의도만을 가진다. 이에 상응하여, 예들은 본 명세서의 실시예들의 범위를 한정하는 것으로 해석되어서는 안 된다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어를 선택하였으나, 이는 당해 기술분야에 종사하는 기술자의 의도 또는 관례 또는 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 함을 밝혀두고자 한다.
도 1a는 본 발명의 일실시예에 따른 인코더를 도시한 블록도이다.
도 1a를 참조하면, 본 발명에 따른 인코더(100)는 통신부(110), 제어부(120) 및 저장부(130)를 포함할 수 있다. 인코더(100)는 데스크톱, 랩톱, 태블릿, 미니 컴퓨터, 노트북, 핸드헬드 컴퓨터 등의 퍼스널 컴퓨터 시스템일 수 있고, 브로드캐스트 및 스트리밍 서버, 파일 서버, 클라우드 서버 등의 서버용 컴퓨터 시스템일 수 있으며, 내비게이터 또는 IPTV 및 Smart TV 등의 디지털 TV일 수 있고, 휴대폰, 스마트 폰(smart phone), 디지털방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 빔프로젝터 및 감시카메라일 수 있지만 이들로 한정되는 것은 아니다.
통신부(110)는 네트워크를 통해 신호 또는 데이터를 송수신할 수 있다. 일예로 통신부(110)는 네트워크를 통해 암호키 또는 파일을 수신할 수 있다. 네트워크는 복수의 단말 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크의 일 예에는 RF, 3GPP(3rd Generation Partnership Project) 네트워크, LTE(Long Term Evolution) 네트워크, 5GPP(5rd Generation Partnership Project) 네트워크, WIMAX(World Interoperability for Microwave Access) 네트워크, 인터넷(Internet), LAN(Local Area Network), Wireless LAN(IEEE 802.11b, IEEE 802.11a, IEEE802.11g, IEEE802.11n), WAN(Wide Area Network), PAN(Personal Area Network), WIBro(Wireless Broadband), 블루투스(Bluetooth) 네트워크, 직비(ZigBee), NFC 네트워크, 위성 방송 네트워크, 아날로그 방송 네트워크, DMB(Digital Multimedia Broadcasting) 네트워크 등이 포함되나 이에 한정되지는 않는다.
제어부(120)는 명령을 실행하고 인코더(100)와 연관된 동작을 수행한다. 예를 들면, 저장부(130)로부터 검색된 명령어를 사용하여, 제어부(120)는 인코더(100)의 컴포넌트들 간의 입력 및 출력, 데이터의 수신 및 처리를 제어할 수 있다.
제어부(120)는 운영 체제와 함께 프로그램 코드를 실행하고 데이터를 생성 및 사용하는 동작을 한다. 운영 체제는 일반적으로 공지되어 있으며 이에 대해 보다 상세히 기술하지 않는다. 예로서, 운영 체제는 Window 계열 OS, Unix, LINUX, Palm OS, DOS, 안드로이드(Android), iOS 및 매킨토시 등일 수 있다. 운영 체제, 다른 컴퓨터 코드 및 데이터는 제어부(120)와 연결되어 동작하는 저장부(130) 내에 존재할 수 있다. 상기 프로그램 코드는 소스 코드 생성 모듈 및 실행 코드 생성 모듈일 수 있고, 웹 브라우저에서 실행되는 코드일 수 있다.
제어부(120)는 본 발명에 따른 인코딩 방법을 수행하도록 하는 명령을 포함하는 프로그램 코드를 호출하여 인코더(100)로 하여금 본 발명에 따른 인코딩 방법을 수행하도록 할 수 있다.
저장부(130)는 본 발명에 따른 인코딩 방법을 수행하도록 하는 명령을 포함하는 프로그램 코드를 저장할 수 있다. 저장부(130)는 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 하드 디스크 드라이브 등으로 구현될 수 있다. 프로그램 코드 및 데이터는 분리형 저장 매체에 존재할 수 있고, 필요할 때, 인코더(100) 상으로 로드 또는 설치될 수 있다. 여기서 분리형 저장 매체는 CD-ROM, PC-CARD, 메모리 카드, 플로피 디스크, 자기 테이프, 및 네트워크 컴포넌트를 포함할 수 있다.
제어부(120)는 복수의 원소를 포함하는 암호키를 기초로 데이터 크기를 지시하는 블록 단위를 산출할 수 있다. 여기서, 상기 암호키는, 알파벳, 숫자 및 특수문자 중 적어도 하나를 원소로 포함하고, 상기 암호키에 포함된 원소는 서로 다를 수 있다. 복수의 암호키 및 상기 복수의 암호키와 관련된 고유키가 사전에 생성되어 저장되고, 상기 암호키는 상기 저장된 복수의 암호키에서 선택될 수 있다. 상기 암호키는 통신부(100)가 수신한 것일 수 잇고, 저장부(130)에 사전에 저장된 것일 수 있다.
암호키 데이터베이스
설명 및 이해를 용이하게 하기 위하여 암호키는 기본적으로 대한민국의 로또 시스템과 같이 번호를 이용한 인증키로 만들 수 있다. 일부 실시예로, 456으로 번호를 생성하여 총 8,303,765,625 개의 키를 만들어 암호키 데이터베이스(DB)에 보관할 수 있고, 번호의 개수를 하나만 더 확장하면 총 376,669,453,125개의 암호화 방식을 생성할 수 있으며, 만약 암호키의 원소의 개수의 제한을 걸지 않고 최대 6자 길이의 암호키를 생성한다면, 16+26+36+46+56+76........416+426+436+446+456개의 암호화 인코딩 방식이 생성되게 된다.
또한 암호키의 원소를 반드시 번호가 아니라 알파벳대문자, 소문자에 대응하는 참조테이블을 기반으로 확장할 경우에는 생성할 수 있는 경우의 수는 무한으로 늘어나게 된다.
또한, 암호키의 원소의 나열순서를 오름차순, 내림차순의 순서 없이 생성한다면 훨씬 더 많은 종류의 암호키와 인코딩 방식을 생성할 수 있다.
암호키의 키열을 하나 생성할 때 마다 중복되지 않는 알파벳과 숫자, 특수문자를 섞어 역시 6자 길이의 고유키(Unique Key)로 만들어 상호 대칭되게 저장하는 암호키 DB에 생성한다. 여기서, 암호키 DB는 저장부(130) 또는 다른 서버에 저장될 수 있다. 또한, 암호키 DB는 최초생성 후 백업을 통해 영구보관이 가능하게 된다. 서버가 운영되면서 추가적으로 생성되는 암호키가 존재하지 않으므로 운영과 백업과정에서 발생하는 백업구간 사이의 암호키 손실에 대해 걱정할 필요가 없게 된다. 이것은 매번 암호파일이 생성될 때마다 암호키를 생성하여, 암호키 DB에 보관할 때 발생하는 분실의 위험을 방지하기 위하여, 암호키 DB에 저장될 거라 예상되는 최대파일크기의 개수만큼의 암호키를 사전에 생성해 두는 것이다. 이에 따라 인코더에 올바르지 않은 접속이 감지된 경우 해당키에 대한 인코딩/디코딩 데이터를 DB에서 즉시 삭제하여, 더 이상 요청을 받지 않도록 처리하여 해당 파일을 격리하는 등의 보안 처리를 추가할 수 있다
예를 들어, 도 1b에 도시된 [표 1]과 같은 구조의 암호키 및 고유키의 키열들이 생성된다. [표 1]에서는 이해를 돕기 위해 암호키의 원소를 모두 숫자로 처리했고 전체 원소의 개수가 6개인 암호키의 조합으로만 생성했지만, 다른 실시예로 원소의 개수 및 종류에 따라 무제한적인 길이의 암호키를 생성할 수도 있다.
제어부(120)는 상기 복수의 원소 각각의 값의 합을 상기 블록 단위로 산출할 수 있다. 상기 암호키에 포함된 원소의 값은, 원소의 크기 또는 원소에 매핑된 값일 수 있다. 상기 원소의 크기는, 바이트(byte) 단위를 내림차순으로 인코딩한 크기 또는 오름차순으로 인코딩한 크기일 수 있다. 참조테이블에 원소 및 원소와 매핑된 값이 저장되고, 상기 참조테이블에서 상기 원소에 매핑된 값이 검색될 수 있다.
예를 들어, 암호키가 [6,7,22,32,35,36] 이라고 할 경우에는, 상기 암호키에 포함된 원소는 6, 7, 22, 32, 35, 36이고, 총 숫자의 합(원소 각각의 값의 합)은 138이 되고, 제어부(120)는 138을 상기 블록 단위로 산출할 수 있다.
제어부(120)는 상기 복수의 원소의 개수 및 상기 복수의 원소 각각의 값을 기초로 원본 파일을 상기 산출한 블록 단위로 암호화할 수 있다. 상기 원본 파일은 통신부(100)가 수신한 것일 수 있고, 저장부(130)에 사전에 저장된 것일 수 있다. 또한 제어부(120)는 통신부(100)가 상기 원본 파일을 수신하는 동안에, 상기 원본 파일이 수신된 부분에 대해서 상기 산출한 블록 단위로 암호화할 수 있다.
제어부(120)는 저장되거나 수신된 암호키를 변환하여 사용할 수 있다. 즉 제어부(120)는 변환된 암호키를 기초로 데이터 크기를 지시하는 블록 단위를 산출할 수 있고, 상기 변환된 암호키에 포함된 복수의 원소의 개수 및 상기 복수의 원소 각각의 값을 기초로 원본 파일을 상기 산출한 블록 단위로 암호화할 수 있다. 예를 들면, 실제 암호키가 [6 7 22 32 35 36]이더라도, 제어부(120)는 숫자의 대칭되는 숫자(39,38,23,10,9), -최대숫자가 45 이므로 45-{6,7,22,32,35,36}-, 로 치환된 암호키를 각각 인코딩/디코딩에 사용하거나, 현재 수신된 암호키의 원소의 byte를 내림차순으로 인코딩 하는 것을 오름차순으로 인코딩 하는 등의 방법으로 치환된 암호키를 각각 인코딩/디코딩에 사용할 수 있다.
도 2는 본 발명의 일시예에 따른 블록 단위 암호화 방법의 수행과정을 도시한 도면이다.
도 2를 참조하면, 제어부(120)는 상기 복수의 원소 각각과 관련된 복수의 원소 배열을 생성한다(S100). 예를 들어, 암호키가 [6,7,22,32,35,36] 이라고 할 경우에는, 제어부(120)는 하기와 같이 6개의 원소 배열 a, b, c, d, e 및 f를 생성할 수 있다. 단, 본 예에서 원소 배열 a, b, c, d, e 및 f는 바이트(byte) 단위 배열로 생성된다.
byte[6] a;//암호키 첫 번째 숫자 ‘6’에 대한 배열
byte[7] b;//암호키 두 번째 숫자 ‘7’에 대한 배열
byte[22] c;//암호키 세 번째 숫자 ‘22’에 대한 배열
byte[32] d;//암호키 네 번째 숫자 ‘32’에 대한 배열
byte[35] e;//암호키 다섯 번째 숫자 ‘35’에 대한 배열
byte[36] f;//암호키 여섯 번째 숫자 ‘36’에 대한 배열
제어부(120)는 상기 블록 단위와 대응하는 크기의 데이터를 저장하기 위한 합계 배열을 생성한다(S110). 예를 들어, 암호키가 [6,7,22,32,35,36] 이라고 할 경우에는, 단계 S110에서 제어부(120)는 하기와 같이 138 블록 단위의 데이터를 저장하기 위한 합계 배열 sum을 생성할 수 있다.
byte[138] sum//변환된 138byte의 블록
제어부(120)는 상기 합계 배열 및 상기 복수의 원소 배열을 이용하여 상기 원본 파일의 데이터를 상기 블록 단위로 재배열한다(S120). 여기서, 상기 복수의 원소 배열은, 관련된 원소의 값과 대응하는 크기를 갖거나 상기 블록 단위 및 상기 관련된 원소의 값의 차이값과 대응하는 크기를 가질 수 있다.
도 3a는 본 발명의 일시예에 따른 재배열 방법의 수행과정을 도시한 도면이다.
도 3a를 참조하면, 제어부(120)는 상기 블록 단위만큼의 상기 원본 파일에 저장된 데이터를 상기 복수의 원소 배열에 나누어 저장한다(S200). 일부 실시예로, 제어부(120)는 상기 복수의 원소 배열과 관련된 원소가 상기 암호키에 포함된 순번 순으로 상기 데이터를 상기 복수의 원소 배열에 나누어 저장할 수 있다. 예를 들어, 전술된 예와 같이, 암호키가 [6,7,22,32,35,36] 이고, 합계 배열 sum, 원소 배열 a, b, c, d, e 및 f가 생성된 경우에는, 원본 파일의 데이터를 a 배열부터 순차적으로 저장하기 시작한다. 통신부(110)가 원본 파일을 수신하는 경우에는, 제어부(120)는 총 138개의 바이트가 수신되는 동안 a배열부터 바이트를 저장하기 시작한다.
일부 실시예로, 제어부(120)는 상기 복수의 원소 배열과 관련된 원소가 상기 암호키에 포함된 순번의 역순으로 상기 데이터를 상기 복수의 원소 배열에 나누어 저장할 수 있다.
일부 실시예로, 제어부(120)는 상기 복수의 원소 배열과 관련된 원소의 값이 큰 순으로 상기 데이터를 상기 복수의 원소 배열에 나누어 저장할 수 있다.
일부 실시예로, 제어부(120)는 상기 복수의 원소 배열과 관련된 원소의 값이 작은 순으로 상기 데이터를 상기 복수의 원소 배열에 나누어 저장할 수 있다.
제어부(120)는 상기 합계 배열에 상기 복수의 원소 배열 각각의 일부 데이터를 돌아가며 저장한다(S210). 여기서, 상기 일부 데이터는, 바이트(byte) 단위일 수 있고, 2 바이트 단위 또는 2 바이트 단위 이상일 수 있다.
상기 일부 데이터가 바이트 단위인 경우에는, 상기 합계 배열 및 상기 복수의 원소 배열은, 바이트(byte) 단위 배열일 수 있으며, 상기 원소 배열과 관련된 원소의 값과 대응하는 크기 또는 상기 블록 단위 및 상기 관련된 원소의 값의 차이값과 대응하는 크기만큼 상기 원본 파일에 저장된 데이터가 상기 원소 배열에 저장될 수 있다.
일부 실시예로, 제어부(120)는 상기 복수의 원소 배열과 관련된 원소가 상기 암호키에 포함된 순번 순으로 상기 합계 배열에 상기 복수의 원소 배열 각각의 일부 데이터를 돌아가며 저장할 수 있다.
일부 실시예로, 제어부(120)는 상기 복수의 원소 배열과 관련된 원소가 상기 암호키에 포함된 순번의 역순으로 상기 합계 배열에 상기 복수의 원소 배열 각각의 일부 데이터를 돌아가며 저장할 수 있다.
일부 실시예로, 제어부(120)는 상기 복수의 원소 배열과 관련된 원소의 값이 큰 순으로 상기 합계 배열에 상기 복수의 원소 배열 각각의 일부 데이터를 돌아가며 저장할 수 있다.
일부 실시예로, 제어부(120)는 상기 복수의 원소 배열과 관련된 원소의 값이 작은 순으로 상기 합계 배열에 상기 복수의 원소 배열 각각의 일부 데이터를 돌아가며 저장할 수 있다.
단계 S210은 후술될 단계 S211, 단계 S213 및 단계 S217를 포함할 수 있다.
제어부(120)는 상기 합계 배열에 원소 배열의 일부 데이터를 돌아가며 저장한다(S211). 예를 들어, 전술된 예와 같이, 암호키가 [6,7,22,32,35,36] 이고, 합계 배열 sum, 원소 배열 a, b, c, d, e 및 f가 생성되고 상기 일부 데이터가 바이트 단위이고, 상기 암호키에 포함된 순번 순으로 상기 합계 배열에 상기 복수의 원소 배열 각각의 일부 데이터를 돌아가며 저장하는 경우에는, 도 3b에 도시된 [표 2]와 원소 배열 a, b, c, d, e 및 f 순으로 각 원소 배열에서 처음부터 각각 한 바이트씩 돌아가면서 합계 배열 sum에 담는다.
제어부(120)는 원소 배열에 상기 합계 배열에 저장되지 않고 남은 데이터가 있는지 여부를 확인한다(S213). 상기 확인 결과 상기 남은 데이터가 존재하는 경우에는, 제어부(120)는 다음 원소 배열에 대해 단계 S211을 수행한다.
상기 남은 데이터가 없는 경우에는, 제어부(120)는 상기 남은 데이터가 없는 원소 배열의 데이터의 저장이 중지되도록 원소 배열을 제외한다(S215). 즉, 제어부(120)는 특정 원소 배열에 남는 데이터가 없는 경우에는, 단계 S215를 수행하여 자동으로 다음 배열로 넘어가도록 할 수 있다.
예를 들어, 원소 배열 a는 총 6개의 바이트 배열을 가지고 있으므로 도 3b에 도시된 [표 2]의 마지막 sum[30] =a[5]를 기준으로 원소 배열 a에는 더 이상의 데이터가 존재하지 않으므로 도 3c에 도시된 [표 3]과 같이 넘어가게 된다. 원소 배열 b도 데이터가 총 7개 이므로, [표 3]과 같이 b[6]이 후에는 더 이상 합계 배열 sum에 추가되지 않는다.
제어부(120)는 단계 S215에서 제외되지 않고 남은 원소 배열이 존재하는지 여부를 확인한다(S217). 상기 확인 결과 남은 원소 배열이 존재하는 경우에는, 제어부(120)는 남은 원소 배열 중 다음 순번의 원소 배열에 대해 단계 S211을 수행한다. 제어부(120)는 단계 S217를 수행하여 [표 3]과 같이 남은 데이터가 없는 원소 배열은 건너뛰고 아직 데이터가 남은 원소 배열에서 순차적으로 끝까지 담는다. 최종적으로 "sum[137] = f[35]"가 수행되면, 합계 배열 sum에 138byte 크기(상기 산출된 블록 단위)의 원본 파일의 데이터가 재배열되어 저장된다.
단계 S217의 확인 결과 모든 원소 배열에 상기 합계 배열에 저장되지 않고 남은 데이터가 없는 경우에는, 제어부(120)는 상기 합계 배열을 암호파일에 저장한다(S220). 예를 들어, 최종적으로 "sum[137] = f[35]"가 수행되면, 제어부(120)는 단계 S220를 진행할 수 있다.
일부 실시예로, 도 2에 도시된 단계 S120에서, 제어부(120)는 블록 단위로 도 3a에 도시된 재배열 방법을 반복하여 수행할 수 있다. 반복 진행될 때마다 단계 S200에서 원본 파일의 다음 블록의 데이터가 복수의 원소 배열에 저장될 수 있고 단계 S220에서 전술된 암호파일에 블록 단위가 순차적으로 저장될 수 있다. 예를 들어, 블록 단위가 135byte인 경우에는, 암호파일은 도 3d에 도시된 구조를 가질 수 있다. Block0은 재배열 방법이 첫번째 실행된 후에 단계 S220에서 암호파일에 저장된 데이터이고, Block1은 재배열 방법이 두번째 실행된 후에 단계 S220에서 암호파일에 저장된 데이터이며, Block2는 재배열 방법이 세번째 실행된 후에 단계 S220에서 암호파일에 저장된 데이터이고, Block3은 재배열 방법이 네번째 실행된 후에 단계 S220에서 암호파일에 저장된 데이터이며, Block4는 재배열 방법이 첫 번째 실행된 후에 단계 S220에서 암호파일에 저장된 데이터이다.
일부 실시예로, 도 2에 도시된 단계 S120는 도 3a에서 전술된 단계 S200 및 단계 S210을 포함할 수 있다. 이러한 실시예에서, 제어부(120)는 블록 단위로 S110 및 S120을 반복하여 수행할 수 있다. 반복 진행될 때마다 새로운 합계 배열이 생성되고, 단계 S200에서 원본 파일의 다음 블록의 데이터가 복수의 원소 배열에 저장될 수 있고, 단계 S220는 진행이 요구되지 않을 수 있다. 반복 진행되는 수만큼 합계 배열이 생성되고 유지될 수 있다. 예를 들어, 반복 진행되는 수가 100이고, 산출된 블록 단위가 138bytes인 경우에는, 138byte의 크기를 갖는 합계배열 sum이 100개 생성되며, 암호화된 원본 파일의 데이터는 100개의 합계배열 sum에 저장된다. 즉 암호화된 원본 파일의 데이터는 sum[100][138] bytes을 크기를 갖는 데이터배열에 도 3d와 같이 블록 단위로 저장된다.
도 4a은 본 발명의 일실시예에 따른 인코딩 방법의 수행과정을 도시한 도면이다.
도 4a를 참조하면, 제어부(120)는 복수의 원소를 포함하는 암호키를 기초로 데이터 크기를 지시하는 블록 단위를 산출한다(S300). 여기서, 상기 암호키는, 알파벳, 숫자 및 특수문자 중 적어도 하나를 원소로 포함하고, 상기 암호키에 포함된 원소는 서로 다를 수 있다. 복수의 암호키 및 상기 복수의 암호키와 관련된 고유키가 사전에 생성되어 저장되고, 상기 암호키는 상기 저장된 복수의 암호키에서 선택될 수 있다. 일예로, 상기 암호키는 전술된 암호키 데이터베이스로부터 선택될 수 있고, 데이터베이스로부터 선택된 암호키가 변환된 것을 수 있다. 일예로, 상기 암호키는 수신된 것일 수 있고, 수신된 암호키가 변환된 것일 수 있다.
단계 S300에서, 제어부(120)는 상기 복수의 원소 각각의 값의 합을 상기 블록 단위로 산출할 수 있다. 상기 암호키에 포함된 원소의 값은, 원소의 크기 또는 원소에 매핑된 값일 수 있다. 상기 원소의 크기는, 바이트(byte) 단위를 내림차순으로 인코딩한 크기 또는 오름차순으로 인코딩한 크기일 수 있다. 참조테이블에 원소 및 원소와 매핑된 값이 저장되고, 상기 참조테이블에서 상기 원소에 매핑된 값이 검색될 수 있다.
제어부(120)는 상기 복수의 원소의 개수 및 상기 복수의 원소 각각의 값을 기초로 원본 파일을 상기 산출된 블록 단위로 암호화한다(S310). 일부 실시예로, 단계 S310에서, 제어부(120)는 도 2에서 전술된 블록 단위 암호화 방법을 수행할 수 있다.
제어부(120)는 암호파일에 상기 암호화된 원본 파일의 데이터, 상기 원본 파일에 대한 정보 및 상기 암호키와 관련된 고유키를 저장한다(S320). 여기서, 상기 암호화된 원본 파일의 데이터는 실시예에 따라 복수의 합계 배열에 저장된 것일 수 있고, 도 3a에서 전술된 단계 S220의 암호파일에 저장된 것일 수 있다. 상기 암호파일은 단계 S220의 암호파일과 동일하거나 다를 수 있다. 동일한 경우에는, 단계 S320에서 제어부(120)는 단계 S220의 암호파일에 상기 원본 파일에 대한 정보 및 상기 암호키와 관련된 고유키를 추가로 저장할 수 있다. 상기 원본 파일에 대한 정보는, 상기 원본 파일의 파일명 및 상기 원본 파일의 확장자를 포함할 수 있다.
일예로, 단계 S320의 암호파일은 도 4b에 도시된 구조를 가질 수 있다. 도 4b에서는 'Header'가 데이터 배열에 앞에 오고, 'encrypted key'가 맨 뒤에 온다. 'Header'에는 원본파일의 파일명 또는 확장자가 입력되고, 'encrypted key' 에는 사용된 암호키와 관련된 고유키가 입력될 수 있다. 여기서 도 4b는 일예의 구조로, 'header'와 'encrypted key'의 배치는 규정시키기 위함이 아니라 표현하기 위함이므로, 구현하려는 서버, 장비에 따라 사용자가 임의대로 위치나 데이터를 이동, 변형될 수 있다. 추가 예로, 암호파일은 도 4c에 도시된 구조 또는 도 4d에 도시된 구조를 가질 수 있다. 도 4c에 도시된 구조에서는 데이터배열이 맨 앞에 존재하고, 뒤에 'FileHeaderInfo' 및 'encrypted key'가 온다. 도 4d에 도시된 구소에서는 'encrypted key'가 맨 앞에 오고, 뒤에 'FileHeaderInfo' 및 데이터배열이 할당된다. 'FileHeaderInfo'에는 암호화된 원본 파일에 대한 정보가 입력된다.
본 발명에서 블록 단위로 트위스트된 합계 배열의 길이는 주어지는 암호키의 총합의 숫자의 길이에 따라 달라지므로, 본 발명은 변형 방식이 매우 다양하게 생성될 수 있는 장점이 있다. 전술된 예에서 암호키는 [6,7,22,32,35,36]의 숫자를 가지고 있으므로 총 138byte를 하나의 블록 단위로 정의했지만, 만약 인코딩을 위해 암호키에 할당된 숫자가 [1,2,3,4,5,6] 이라고 했을 경우 하나의 블록 단위의 길이는 21(1+2+3+4+5+6 = 21)이 되는 것이다.
도 5는 본 발명의 일실시예에 따른 인코딩 시스템의 구성을 도시한 구성도이다.
도 5를 참조하면, 본 발명에 따른 인코딩 시스템(1)은 인코더(10), 정보 제공 서버(20) 및 사용자 단말기(30)를 포함할 수 있다. 인코더(10), 정보 제공 서버(20) 및 사용자 단말기(30)은 네트워크(2)로 연결될 수 있다. 네트워크(2)는 복수의 단말 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크의 일 예에는 RF, 3GPP(3rd Generation Partnership Project) 네트워크, LTE(Long Term Evolution) 네트워크, 5GPP(5rd Generation Partnership Project) 네트워크, WIMAX(World Interoperability for Microwave Access) 네트워크, 인터넷(Internet), LAN(Local Area Network), Wireless LAN(IEEE 802.11b, IEEE 802.11a, IEEE802.11g, IEEE802.11n), WAN(Wide Area Network), PAN(Personal Area Network), WIBro(Wireless Broadband), 블루투스(Bluetooth) 네트워크, 직비(ZigBee), NFC 네트워크, 위성 방송 네트워크, 아날로그 방송 네트워크, DMB(Digital Multimedia Broadcasting) 네트워크 등이 포함되나 이에 한정되지는 않는다.
인코더(10)는 도 1a에 도시된 인코더(100)를 포함할 수 있다.
정보 제공 서버(20)는 암호키를 생성하고, 생성된 암호키를 저장하며, 저장된 암호키를 인코더(100)에 전송할 수 있다. 여기서, 상기 암호키는, 알파벳, 숫자 및 특수문자 중 적어도 하나를 원소로 포함하고, 상기 암호키에 포함된 원소는 서로 다를 수 있다. 복수의 암호키 및 상기 복수의 암호키와 관련된 고유키가 사전에 생성되어 정보 제공 서버(20)에 저장될 수 있다. 정보 제공 서버(20)는 인코더(100)에 전송할 암호키를 상기 저장된 복수의 암호키에서 선택할 수 있다. 정보 제공 서버(20)는 전술된 암호키 데이터베이스를 저장할 수 있고, 저장된 암호키 데이터베이스로부터 암호키를 선택하고, 선택된 암호키를 인코더(100)에 전송할 수 있다.
정보 제공 서버(20)는 통신 기능을 갖는 전자 장치일 수 있고, 상기 전자 장치는 데스크톱, 랩톱, 태블릿, 미니 컴퓨터, 노트북, 핸드헬드 컴퓨터 등의 퍼스널 컴퓨터 시스템, 브로드캐스트 및 스트리밍 서버, 파일 서버, 클라우드 서버 등의 서버용 컴퓨터 시스템일 수 있고, 내비게이터 또는 IPTV 및 Smart TV 등의 디지털 TV일 수 있고, 휴대폰, 스마트 폰(smart phone), 디지털방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 빔프로젝터 및 감시카메라일 수 있지만 이들로 한정되는 것은 아니다.
사용자 단말기(30)는 원본 파일을 인코더(100)에 전송할 수 있다. 사용자 단말기(30)는 데스크톱, 랩톱, 태블릿, 미니 컴퓨터, 노트북, 핸드헬드 컴퓨터 등의 퍼스널 컴퓨터 시스템, 브로드캐스트 및 스트리밍 서버, 파일 서버, 클라우드 서버 등의 서버용 컴퓨터 시스템일 수 있고, 내비게이터 또는 IPTV 및 Smart TV 등의 디지털 TV일 수 있고, 휴대폰, 스마트 폰(smart phone), 디지털방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 빔프로젝터 및 감시카메라일 수 있지만 이들로 한정되는 것은 아니다.
도 6은 본 발명의 일실시예에 따른 인코딩 방법의 수행과정을 도시한 도면이다.
도 6을 참조하면, 통신부(110)는 사용자 단말기(30)로부터 원본 파일을 수신한다(S400).
제어부(120)는 복수의 원소를 포함하는 암호키를 기초로 데이터 크기를 지시하는 블록 단위를 산출한다(S410). 여기서, 상기 암호키는, 알파벳, 숫자 및 특수문자 중 적어도 하나를 원소로 포함하고, 상기 암호키에 포함된 원소는 서로 다를 수 있다. 복수의 암호키 및 상기 복수의 암호키와 관련된 고유키가 사전에 생성되어 저장되고, 상기 암호키는 상기 저장된 복수의 암호키에서 선택될 수 있다. 일예로, 상기 암호키는 전술된 암호키 데이터베이스로부터 선택될 수 있고, 데이터베이스로부터 선택된 암호키가 변환된 것을 수 있다. 일예로, 상기 암호키는 수신된 것일 수 있고, 수신된 암호키가 변환된 것일 수 있다.
단계 S410에서, 제어부(120)는 상기 복수의 원소 각각의 값의 합을 상기 블록 단위로 산출할 수 있다. 상기 암호키에 포함된 원소의 값은, 원소의 크기 또는 원소에 매핑된 값일 수 있다. 상기 원소의 크기는, 바이트(byte) 단위를 내림차순으로 인코딩한 크기 또는 오름차순으로 인코딩한 크기일 수 있다. 참조테이블에 원소 및 원소와 매핑된 값이 저장되고, 상기 참조테이블에서 상기 원소에 매핑된 값이 검색될 수 있다.
제어부(120)는 상기 복수의 원소의 개수 및 상기 복수의 원소 각각의 값을 기초로 단계 S400에서 수신된 원본 파일을 상기 산출된 블록 단위로 암호화한다(S420). 상기 원본 파일이 수신되는 동안에, 단계 S420가 진행될 수 있다. 일부 실시예로, 도 3a에서 전술된 단계 S420에서, 제어부(120)는 도 2에서 전술된 블록 단위 암호화 방법을 수행할 수 있다.
제어부(120)는 암호파일에 상기 암호화된 원본 파일의 데이터, 상기 원본 파일에 대한 정보 및 상기 암호키와 관련된 고유키를 저장한다(S430). 여기서, 상기 암호화된 원본 파일의 데이터는 실시예에 따라 복수의 합계 배열에 저장된 것일 수 있고, 단계 S220의 암호파일에 저장된 것일 수 있다. 상기 암호파일은 단계 S220의 암호파일과 동일하거나 다를 수 있다. 동일한 경우에는, 단계 S430에서 제어부(120)는 단계 S220의 암호파일에 상기 원본 파일에 대한 정보 및 상기 암호키와 관련된 고유키를 추가로 저장할 수 있다. 상기 원본 파일에 대한 정보는, 상기 원본 파일의 파일명 및 상기 원본 파일의 확장자를 포함할 수 있다.
일예로, 단계 S430의 암호파일은 도 4b에 도시된 구조를 가질 수 있다. 도 4b에서는 'Header'가 데이터 배열에 앞에 오고, 'encrypted key'가 맨 뒤에 온다. 'Header'에는 원본파일의 파일명 또는 확장자가 입력되고, 'encrypted key' 에는 사용된 암호키와 관련된 고유키가 입력될 수 있다. 여기서 도 4b는 일예의 구조로, 'header'와 'encrypted key'의 배치는 규정시키기 위함이 아니라 표현하기 위함이므로, 구현하려는 서버, 장비에 따라 사용자가 임의대로 위치나 데이터를 이동, 변형될 수 있다. 추가 예로, 암호파일은 도 4c에 도시된 구조 또는 도 4d에 도시된 구조를 가질 수 있다. 도 4c에 도시된 구조에서는 데이터배열이 맨 앞에 존재하고, 뒤에 'FileHeaderInfo' 및 'encrypted key'가 온다. 도 4d에 도시된 구소에서는 'encrypted key'가 맨 앞에 오고, 뒤에 'FileHeaderInfo' 및 데이터배열이 할당된다. 'FileHeaderInfo'에는 암호화된 원본 파일에 대한 정보가 입력된다.
도 7은 본 발명의 일실시예에 따른 인코딩 방법의 수행과정을 도시한 도면이다.
도 7을 참조하면, 통신부(110)는 사용자 단말기(30)로부터 원본 파일을 수신한다(S500).
제어부(120)는 상기 원본 파일의 수신이 시작되면, 정보 제공 서버(20)로 암호키의 전송을 요청한다(S510).
통신부(110)는 복수의 원소를 포함하는 암호키 및 상기 암호키와 관련된 고유키를 정보 제공 서버(20)로부터 수신한다(S520). 여기서, 상기 암호키는, 알파벳, 숫자 및 특수문자 중 적어도 하나를 원소로 포함하고, 상기 암호키에 포함된 원소는 서로 다를 수 있다. 복수의 암호키 및 상기 복수의 암호키와 관련된 고유키가 사전에 생성되어 저장되고, 상기 암호키는 상기 저장된 복수의 암호키에서 선택될 수 있다. 일예로, 상기 암호키는 전술된 암호키 데이터베이스로부터 선택될 수 있다.
제어부(120)는 단계 S520에서 수신된 암호키를 기초로 데이터 크기를 지시하는 블록 단위를 산출한다(S530). 일부 실시예로, 제어부(120)는 단계 S520에서 수신된 암호키를 변환하고, 변환된 암호키를 기초로 데이터 크기를 지시하는 블록 단위를 산출할 수 있다.
단계 S530에서, 제어부(120)는 상기 복수의 원소 각각의 값의 합을 상기 블록 단위로 산출할 수 있다. 상기 암호키에 포함된 원소의 값은, 원소의 크기 또는 원소에 매핑된 값일 수 있다. 상기 원소의 크기는, 바이트(byte) 단위를 내림차순으로 인코딩한 크기 또는 오름차순으로 인코딩한 크기일 수 있다. 참조테이블에 원소 및 원소와 매핑된 값이 저장되고, 상기 참조테이블에서 상기 원소에 매핑된 값이 검색될 수 있다. 일부 실시예로, 참조테이블은 사전에 저장부(130)에 저장될 수 있고, 단계 S520에서 정보 제공 서버(20)로부터 수신될 수 있다.
제어부(120)는 상기 복수의 원소의 개수 및 상기 복수의 원소 각각의 값을 기초로 단계 S500에서 수신된 원본 파일을 상기 산출된 블록 단위로 암호화한다(S540). 상기 원본 파일이 수신되는 동안에, 단계 S540가 진행될 수 있다. 일부 실시예로, 단계 S540에서, 제어부(120)는 도 2에서 전술된 블록 단위 암호화 방법을 수행할 수 있다.
제어부(120)는 암호파일에 상기 암호화된 원본 파일의 데이터, 상기 원본 파일에 대한 정보 및 상기 암호키와 관련된 고유키를 저장한다(S550). 여기서, 상기 암호화된 원본 파일의 데이터는 실시예에 따라 복수의 합계 배열에 저장된 것일 수 있고, 도 3a에서 전술된 단계 S220의 암호파일에 저장된 것일 수 있다. 상기 암호파일은 단계 S220의 암호파일과 동일하거나 다를 수 있다. 동일한 경우에는, 단계 S550에서 제어부(120)는 단계 S220의 암호파일에 상기 원본 파일에 대한 정보 및 상기 암호키와 관련된 고유키를 추가로 저장할 수 있다. 상기 원본 파일에 대한 정보는, 상기 원본 파일의 파일명 및 상기 원본 파일의 확장자를 포함할 수 있다.
일예로, 단계 S550의 암호파일은 도 4b에 도시된 구조를 가질 수 있다. 도 4b에서는 'Header'가 데이터 배열에 앞에 오고, 'encrypted key'가 맨 뒤에 온다. 'Header'에는 원본파일의 파일명 또는 확장자가 입력되고, 'encrypted key' 에는 사용된 암호키와 관련된 고유키가 입력될 수 있다. 여기서 도 4b는 일예의 구조로, 'header'와 'encrypted key'의 배치는 규정시키기 위함이 아니라 표현하기 위함이므로, 구현하려는 서버, 장비에 따라 사용자가 임의대로 위치나 데이터를 이동, 변형될 수 있다. 추가 예로, 암호파일은 도 4c에 도시된 구조 또는 도 4d에 도시된 구조를 가질 수 있다. 도 4c에 도시된 구조에서는 데이터배열이 맨 앞에 존재하고, 뒤에 'FileHeaderInfo' 및 'encrypted key'가 온다. 도 4d에 도시된 구소에서는 'encrypted key'가 맨 앞에 오고, 뒤에 'FileHeaderInfo' 및 데이터배열이 할당된다. 'FileHeaderInfo'에는 암호화된 원본 파일에 대한 정보가 입력된다.
보통 보편적인 서버에 저장된 파일에 대한 인코더/디코더는 그 자체 코드에 인코딩/디코딩 방식이 별도의 함수로 전제하여 별도의 프로그램 또는 함수형태로 파일서버에 함께 저장되어 있다. 그러나 만약 본 발명과 같이 정보 제공 서버에서 모든 인코딩/디코딩 방식을 관장하고 본 발명의 인코더에 해당하는 파일서버에서는 오로지 인코딩된 암호파일만 존재한다면, 디코더가 해킹당한 경우에도 모든 파일마다 별도의 길이의 블록과 인코딩 방식으로 처리된 데이터는 쉽게 해당 파일의 데이터를 확인할 수 없다.
예를 들면, 정보 제공 서버에 보관되는 각 인코딩 방식에 대해 본 발명의 일실시예에서 인코딩에 사용되는 복수의 원소의 조합인 암호키와 해당 암호키와 연관된 고유키만 존재하는데, 본 발명은 인코딩에 사용되는 암호키 생성 방법, 암호키 변환 사용 방법, 암호파일의 고유키를 앞에 붙일지 뒤에 붙일지, 또는 원소 배열을 수신된 암호키의 원소의 순서대로 선언할지, 역순으로 선언할지 등에 따라 매우 다양하고 복잡한 형태의 인코더/디코더를 만들 수 있게 되는 것이다.
정보 제공 서버와 정보 제공 서버에서 그때그때 인코딩/디코딩을 위한 암호키를 받아 인코딩 및 디코딩 처리를 하는 모듈이 바이너리화 되어있고, 그 프로그램 코드가 반드시 해당 하드웨어 장비에서 맥 주소(MAC address), CPU ID, 그 외 해당 서버의 특성과 조건이 맞는 상태에서만 작동되도록 프로그램 했다면, 결과적으로 해커가 데이터베이스 서버와 파일모두를 해킹하는데 성공하였다 하더라도, 암호의 해독을 위해 현 운영되고 있는 서버시스템의 암호화 방식의 프로그램 코드까지 역어셈블링 하지 않으면 암호파일을 해독할 수 없게 되는 것이다.
도 8은 본 발명의 일실시예에 따른 파일 관리 시스템의 구성을 도시한 구성도이다.
도 8을 참조하면, 본 발명의 일실시예에 따른 파일 관리 시스템(5)는 파일저장서버(200), 토큰서버(300) 및 클라이언트(70)를 포함할 수 있다. 파일저장서버(200), 토큰서버(300) 및 클라이언트(70)는 네트워크(2)로 연결될 수 있다. 네트워크(2)는 복수의 단말 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크의 일 예에는 RF, 3GPP(3rd Generation Partnership Project) 네트워크, LTE(Long Term Evolution) 네트워크, 5GPP(5rd Generation Partnership Project) 네트워크, WIMAX(World Interoperability for Microwave Access) 네트워크, 인터넷(Internet), LAN(Local Area Network), Wireless LAN(IEEE 802.11b, IEEE 802.11a, IEEE802.11g, IEEE802.11n), WAN(Wide Area Network), PAN(Personal Area Network), WIBro(Wireless Broadband), 블루투스(Bluetooth) 네트워크, 직비(ZigBee), NFC 네트워크, 위성 방송 네트워크, 아날로그 방송 네트워크, DMB(Digital Multimedia Broadcasting) 네트워크 등이 포함되나 이에 한정되지는 않는다.
파일저장서버(200)는 클라이언트(70)로부터 파일의 업로드를 요청하는 업로드 요청 메시지를 수신할 수 있다. 파일저장서버(200)는 업로드 요청된 파일을 수신하고, 수신된 파일을 저장할 수 있다. 또한 파일저장서버(200)는 상기 파일을 암호화하여 저장할 수 있고, 상기 파일을 수신하는 중에, 상기 파일의 데이터를 블록 단위로 암호화할 수 있다.
파일저장서버(200)는 클라이언트(70)가 전송한 업로드 요청 메시지의 수신에 대응하여 토큰을 요청하는 토큰 요청 메시지를 토큰서버(300)로 전송하고, 상기 토큰 요청 메시지에 대한 응답으로 토큰서버(300)로부터 토큰을 수신할 수 있다.
토큰 요청 메시지에 대한 응답으로 토큰을 수신한 경우에는, 파일저장서버(200)는 인코딩 정보를 요청하는 인코딩 정보 요청 메시지를 토큰서버(300)로 전송할 수 있다. 여기서, 인코딩 정보 요청 메시지는 토큰서버(300)가 전송한 상기 토큰을 포함할 수 있다.
파일저장서버(200)는 토큰서버(300)가 전송한 인코딩 정보를 수신하고, 수신한 인코딩 정보를 기초로 클라이언트(70)가 업로드한 파일을 암호화할 수 있다. 파일저장서버(200)는 상기 파일이 수신되는 동안에, 상기 파일의 암호화를 블록 단위로 진행할 수 있다. 여기서 인코딩 정보는, 암호키, 상기 암호키와 연관된 고유키 및 참조테이블 중 적어도 하나를 포함할 수 있다. 파일저장서버(200)는 파일의 암호화가 완료되면 암호키 및 참조테이블을 삭제하고, 고유키를 암호화된 파일에 기록할 수 있다. 암호키, 고유키 및 참조 테이블은 각각 도 1a 및 도 2b에서 전술된 암호키, 고유키 및 참조 테이블일 수 있고, 파일저장서버(200)는 도 4에서 전술된 인코딩 방법으로 상기 파일을 암호화할 수 있다.
파일저장서버(200)는, 암호화된 파일을 디코딩하기 위해 토큰을 요청하는 디코딩 요청 메시지를 토큰서버(300)로 전송하고, 상기 디코딩 요청 메시지에 대한 응답으로 토큰서버(300)로부터 토큰을 수신할 수 있다.
디코딩 요청 메시지에 대한 응답으로 토큰을 수신한 경우에는, 파일저장서버(200)는 디코딩 정보를 요청하는 디코딩 정보 요청 메시지를 토큰서버(300)로 전송할 수 있다. 여기서, 디코딩 정보 요청 메시지는 토큰 및 암호화된 파일에 기록된 고유키를 포함할 수 있다.
파일저장서버(200)는 디코딩 정보 요청 메시지에 대한 응답으로 토큰서버(300)가 전송한 디코딩 정보를 수신하고, 상기 수신한 디코딩 정보를 기초로 상기 디코딩 정보 요청 메시지에 포함된 고유키가 기록된 파일을 복호화할 수 있다. 여기서, 디코딩 정보는 상기 고유키와 연관된 암호키 및 참조테이블 중 적어도 하나를 포함할 수 있다.
클라이언트(70)가 업로드 요청한 파일을 암호화하는 인코딩 모듈 및 상기 암호화된 파일의 복호화하는 디코딩 모듈의 프로그램 코드는 바이너리화하여 파일저장서버(200)에 저장될 수 있다. 또한, 상기 프로그램 코드는 사전에 설정된 고유 정보와 실행되는 전자 장치가 갖는 고유 정보와 일치하는 경우에 실행되도록 프로그램 된 것일 수 있다. 여기서, 상기 고유 정보는, 맥 주소(MAC address), CPU ID, IP 주소 및 운영체제 라이센스 제품키 중 적어도 하나를 포함할 수 있다.
토큰서버(300)는 파일저장서버(200)가 전송한 토큰 요청 메시지를 수신하고, 토큰 요청 메시지의 수신에 대응하여 토큰을 발행하고, 발행한 토큰을 파일저장서버(200)로 전송할 수 있다.
토큰서버(300)는 파일저장서버(200)가 전송한 인코딩 정보 요청 메시지를 수신할 수 있다. 일부 실시예로, 토큰서버(300)는 인코딩 정보 요청 메시지에 포함된 토큰이 파일저장서버(200)로 전송한 토큰과 일치하는 경우에는, 인코딩을 수행하기 위한 인코딩 정보를 파일저장서버(200)로 전송할 수 있다.
일부 실시예로, 토큰서버(300)는 인코딩 정보 요청 메시지에 포함된 토큰이 파일저장서버(200)로 전송한 토큰과 일치하고 이상상황이 아닌 경우에는, 인코딩을 수행하기 위한 인코딩 정보를 파일저장서버(200)로 전송할 수 있다. 여기서, 토큰서버(300)는 발행한 토큰의 토큰발행시간이 경과한 경우에는, 토큰을 폐기할 수 있다. 상기 인코딩 정보 요청 메시지에 포함된 토큰이 상기 폐기된 토큰과 일치하는 경우에는, 토큰서버(300)는 이상상황으로 확인하고 이상상황 조치를 수행할 수 있다. 또한 토큰서버(300)는, 상기 인코딩 정보 요청 메시지를 전송한 전자 장치가 상기 인코딩 정보 요청 메시지에 포함된 토큰을 요청한 파일저장서버와 다른 경우에는, 이상상황으로 확인하고 이상상황 조치를 수행할 수 있다. 여기서, 이상상황 조치는, 상기 인코딩 정보를 제공하지 않는 조치, 상기 저장된 인코딩 정보를 폐기하는 조치, 상기 전자 장치의 요청을 차단하는 조치 및 이상상황임을 관리자에게 통지하는 조치 중 적어도 하나를 포함할 수 있다.
토큰서버(300)는 파일저장서버(200)가 전송한 디코딩 요청 메시지를 수신하고, 상기 디코딩 요청 메시지의 수신에 대응하여 토큰을 발행하고, 상기 발행된 토큰을 파일저장서버(200)로 전송할 수 있다.
토큰서버(300)는 파일저장서버(200)가 전송한 디코딩 정보 요청 메시지를 수신할 수 있다. 일부 실시예로, 토큰서버(300)는 디코딩 정보 요청 메시지에 포함된 토큰이 파일저장서버(200)로 전송한 토큰과 일치하는 경우에는, 상기 고유키와 연관된 디코딩 정보를 파일저장서버(200)로 전송할 수 있다. 여기서, 디코딩 정보는 상기 고유키와 연관된 암호키 및 참조테이블 중 적어도 하나를 포함할 수 있다.
일부 실시예로, 토큰서버(300)는 디코딩 정보 요청 메시지에 포함된 토큰이 파일저장서버(200)로 전송한 토큰과 일치하고 이상상황이 아닌 경우에는, 상기 고유키와 연관된 디코딩 정보를 파일저장서버(200)로 전송할 수 있다. 여기서, 토큰서버(300)는 발행한 토큰의 토큰발행시간이 경과한 경우에는, 토큰을 폐기할 수 있다. 상기 디코딩 정보 요청 메시지에 포함된 토큰이 상기 폐기된 토큰과 일치하는 경우에는, 토큰서버(300)는 이상상황으로 확인하고 이상상황 조치를 수행할 수 있다. 또한 토큰서버(300)는, 상기 디코딩 정보 요청 메시지를 전송한 전자 장치가 상기 디코딩 정보 요청 메시지에 포함된 토큰을 요청한 파일저장서버와 다른 경우에는, 이상상황으로 확인하고 이상상황 조치를 수행할 수 있다. 여기서, 이상상황 조치는, 상기 디코딩 정보를 제공하지 않는 조치, 상기 저장된 디코딩 정보를 폐기하는 조치, 상기 전자 장치의 요청을 차단하는 조치 및 이상상황임을 관리자에게 통지하는 조치 중 적어도 하나를 포함할 수 있다.
파일저장서버(200)는 도 5에서 전술된 인코더(10)를 포함할 수 있고, 토큰서버(300)는 도 5에서 전술된 정보 제공 서버(20)을 포함할 수 있으며, 클라이언트(70)는 도 5에서 전술된 사용자 단말기(30)를 포함할 수 있다. 파일저장서버(200), 토큰서버(300) 및 클라이언트(70)는 전자 장치일 수 있다.
도 9는 본 발명의 일실시예에 따른 파일저장서버의 구성을 도시한 블록도이다.
도 9를 참조하면, 파일저장서버(200)는 통신부(210), 제어부(220) 및 저장부(230)를 포함할 수 있다.
통신부(210)는 네트워크(2)를 통해 신호 또는 데이터를 송수신할 수 있다. 통신부(210)는 클라이언트(70)로부터 파일의 업로드를 요청하는 업로드 요청 메시지를 수신할 수 있다. 통신부(210)는 업로드 요청된 파일을 수신할 수 있다.
제어부(220)는 명령을 실행하고 파일저장서버(200)와 연관된 동작을 수행한다. 예를 들면, 저장부(230)로부터 검색된 명령어를 사용하여, 제어부(220)는 파일저장서버(200)의 컴포넌트들 간의 입력 및 출력, 데이터의 수신 및 처리를 제어할 수 있다.
제어부(220)는 운영 체제와 함께 프로그램 코드를 실행하고 데이터를 생성 및 사용하는 동작을 한다. 운영 체제는 일반적으로 공지되어 있으며 이에 대해 보다 상세히 기술하지 않는다. 예로서, 운영 체제는 Window 계열 OS, Unix, LINUX, Palm OS, DOS, 안드로이드(Android), iOS 및 매킨토시 등일 수 있다. 운영 체제, 다른 컴퓨터 코드 및 데이터는 제어부(220)와 연결되어 동작하는 저장부(230) 내에 존재할 수 있다. 상기 프로그램 코드는 소스 코드 생성 모듈 및 실행 코드 생성 모듈일 수 있고, 웹 브라우저에서 실행되는 코드일 수 있다.
제어부(220)는 본 발명에 따른 토큰을 이용한 파일 암호화 기능을 제공하는 파일 관리 방법, 인코딩 방법 및 디코딩 방법을 수행하도록 하는 명령을 포함하는 프로그램 코드를 호출하여 파일저장서버(200)로 하여금 본 발명에 따른 인코딩 방법 및 디코딩 방법을 수행하도록 할 수 있다.
저장부(230)는 본 발명에 따른 토큰을 이용한 파일 암호화 기능을 제공하는 파일 관리 방법, 인코딩 방법 및 디코딩 방법을 수행하도록 하는 명령을 포함하는 프로그램 코드를 저장할 수 있다. 저장부(230)는 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 하드 디스크 드라이브 등으로 구현될 수 있다. 프로그램 코드 및 데이터는 분리형 저장 매체에 존재할 수 있고, 필요할 때, 파일저장서버(200) 상으로 로드 또는 설치될 수 있다. 여기서 분리형 저장 매체는 CD-ROM, PC-CARD, 메모리 카드, 플로피 디스크, 자기 테이프, 및 네트워크 컴포넌트를 포함할 수 있다.
제어부(220)는 통신부(210)가 수신한 파일을 저장부(230)에 저장할 수 있다. 또한 제어부(220)는 상기 파일을 암호화하여 저장부(230)에 저장할 수 있고, 상기 파일을 수신하는 중에, 상기 파일의 데이터를 블록 단위로 암호화할 수 있다.
제어부(220)는 클라이언트(70)가 전송한 업로드 요청 메시지의 수신에 대응하여 토큰을 요청하는 토큰 요청 메시지가 토큰서버(300)로 전송되도록 제어할 수 있다. 통신부(210)는 상기 토큰 요청 메시지에 대한 응답으로 토큰서버(300)로부터 토큰을 수신할 수 있다.
토큰 요청 메시지에 대한 응답으로 토큰을 수신한 경우에는, 제어부(220)는 인코딩 정보를 요청하는 인코딩 정보 요청 메시지가 토큰서버(300)로 전송되도록 제어할 수 있다. 여기서, 인코딩 정보 요청 메시지는 토큰서버(300)가 전송한 토큰을 포함할 수 있다.
통신부(110)는 토큰서버(300)가 전송한 인코딩 정보를 수신할 수 있다. 제어부(220)는 통신부(110)가 수신한 인코딩 정보를 기초로 클라이언트(70)가 업로드한 파일을 암호화할 수 있다. 통신부(110)가 상기 파일을 수신하는 동안에, 제어부(120)는 상기 파일의 데이터를 블록 단위로 암호화할 수 있다. 여기서 인코딩 정보는, 암호키, 상기 암호키와 연관된 고유키 및 참조테이블 중 적어도 하나를 포함할 수 있다. 제어부(120)는 파일의 암호화가 완료되면 암호키를 삭제하고, 고유키를 암호화된 파일에 기록할 수 있다. 암호키, 고유키 및 참조테이블은 각각 도 1a 및 도 2b에서 전술된 암호키, 고유키 및 참조테이블일 수 있고, 제어부(120)는 도 4에서 전술된 인코딩 방법으로 상기 파일을 암호화할 수 있다.
제어부(120)는, 암호화된 파일을 디코딩하기 위해 토큰을 요청하는 디코딩 요청 메시지가 토큰서버(300)로 전송되도록 제어하고, 통신부(110)는 디코딩 요청 메시지에 대한 응답으로 토큰서버(300)로부터 토큰을 수신할 수 있다.
디코딩 요청 메시지에 대한 응답으로 토큰을 수신한 경우에는, 제어부(120)는 디코딩 정보를 요청하는 디코딩 정보 요청 메시지가 토큰서버(300)로 전송되도록 제어할 수 있다. 여기서, 디코딩 정보 요청 메시지는 토큰 및 암호화된 파일에 기록된 고유키를 포함할 수 있다.
통신부(110)는 디코딩 정보 요청 메시지에 대한 응답으로 토큰서버(300)가 전송한 디코딩 정보를 수신할 수 있다. 제어부(120)는 통신부(110)이 수신한 디코딩 정보를 기초로 상기 디코딩 정보 요청 메시지에 포함된 고유키가 기록된 파일을 복호화할 수 있다. 여기서, 디코딩 정보는 상기 고유키와 연관된 암호키일 수 있다.
클라이언트(70)가 업로드 요청한 파일을 암호화하는 인코딩 모듈 및 상기 암호화된 파일의 복호화하는 디코딩 모듈의 프로그램 코드는 바이너리화하여 저장부(130)에 저장될 수 있다. 또한, 상기 프로그램 코드는 사전에 설정된 고유 정보와 실행되는 전자 장치가 갖는 고유 정보와 일치하는 경우에 실행되도록 프로그램 된 것일 수 있다. 여기서, 상기 고유 정보는, 맥 주소(MAC address), CPU ID, IP 주소 및 운영체제 라이센스 제품키 중 적어도 하나를 포함할 수 있다.
도 10은 본 발명의 일실시예에 따른 토큰서버의 구성을 도시한 블록도이다.
도 10을 참조하면, 토큰서버(300)는 통신부(310), 제어부(320) 및 저장부(330)를 포함할 수 있다.
통신부(310)는 네트워크(2)를 통해 신호 또는 데이터를 송수신할 수 있다. 통신부(310)는 파일저장서버(200)가 전송한 토큰 요청 메시지를 수신할 수 있다. 또한, 통신부(310)는 파일저장서버(200)가 전송한 인코딩 정보 요청 메시지를 수신할 수 있다.
제어부(320)는 명령을 실행하고 토큰서버(300)와 연관된 동작을 수행한다. 예를 들면, 저장부(330)로부터 검색된 명령어를 사용하여, 제어부(320)는 토큰서버(300)의 컴포넌트들 간의 입력 및 출력, 데이터의 수신 및 처리를 제어할 수 있다.
제어부(320)는 운영 체제와 함께 프로그램 코드를 실행하고 데이터를 생성 및 사용하는 동작을 한다. 운영 체제는 일반적으로 공지되어 있으며 이에 대해 보다 상세히 기술하지 않는다. 예로서, 운영 체제는 Window 계열 OS, Unix, LINUX, Palm OS, DOS, 안드로이드(Android), iOS 및 매킨토시 등일 수 있다. 운영 체제, 다른 컴퓨터 코드 및 데이터는 제어부(320)와 연결되어 동작하는 저장부(330) 내에 존재할 수 있다. 상기 프로그램 코드는 소스 코드 생성 모듈 및 실행 코드 생성 모듈일 수 있고, 웹 브라우저에서 실행되는 코드일 수 있다.
제어부(320)는 본 발명에 따른 인코딩 방법 및 디코딩 방법을 수행하도록 하는 명령을 포함하는 프로그램 코드를 호출하여 토큰서버(300)로 하여금 본 발명에 따른 토큰을 이용한 파일 암호화 기능을 제공하는 파일 관리 방법을 수행하도록 할 수 있다.
저장부(330)는 본 발명에 따른 토큰을 이용한 파일 암호화 기능을 제공하는 파일 관리 방법을 수행하도록 하는 명령을 포함하는 프로그램 코드를 저장할 수 있다. 저장부(330)는 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 하드 디스크 드라이브 등으로 구현될 수 있다. 프로그램 코드 및 데이터는 분리형 저장 매체에 존재할 수 있고, 필요할 때, 토큰서버(300) 상으로 로드 또는 설치될 수 있다. 여기서 분리형 저장 매체는 CD-ROM, PC-CARD, 메모리 카드, 플로피 디스크, 자기 테이프, 및 네트워크 컴포넌트를 포함할 수 있다.
제어부(320)는 토큰 요청 메시지의 수신에 대응하여 토큰을 발행하고, 발행한 토큰이 파일저장서버(200)로 전송되도록 통신부(310)를 제어할 수 있다.
일부 실시예로, 제어부(310)는 발행한 토큰의 토큰발행시간이 경과한 경우에는, 토큰을 폐기할 수 있다.
통신부(310)가 인코딩 정보 요청 메시지를 수신한 경우에는, 제어부(320)는 상기 인코딩 정보 요청 메시지가 유효한 메시지인지를 확인할 수 있다. 일부 실시예로, 제어부(320)는 인코딩 정보 요청 메시지에 포함된 토큰이 파일저장서버(200)로 전송한 토큰과 일치하는 경우에는, 상기 인코딩 정보 요청 메시지를 유효한 메시지로 확인하고, 인코딩을 수행하기 위한 인코딩 정보가 파일저장서버(200)로 전송되도록 제어할 수 있다.
일부 실시예로, 제어부(320)는 인코딩 정보 요청 메시지에 포함된 토큰이 파일저장서버(200)로 전송한 토큰과 일치하고 이상상황이 아닌 경우에는, 상기 인코딩 정보 요청 메시지를 유효한 메시지로 확인하고, 인코딩을 수행하기 위한 인코딩 정보가 파일저장서버(200)로 전송되도록 제어할 수 있다.
일부 실시예로, 상기 인코딩 정보 요청 메시지에 포함된 토큰이 상기 폐기된 토큰과 일치하는 경우에는, 제어부(320)는 이상상황으로 확인할 수 있다. 또한, 제어부(320)는, 상기 인코딩 정보 요청 메시지를 전송한 전자 장치가 상기 인코딩 정보 요청 메시지에 포함된 토큰을 요청한 파일저장서버와 다른 경우에는, 이상상황으로 확인할 수 있다.
이상상황인 경우에는, 제어부(320)는 이상상황 조치를 수행할 수 있다. 여기서, 이상상황 조치는, 상기 인코딩 정보를 제공하지 않는 조치, 상기 저장된 인코딩 정보를 폐기하는 조치, 상기 전자 장치의 요청을 차단하는 조치 및 이상상황임을 관리자에게 통지하는 조치 중 적어도 하나를 포함할 수 있다.
통신부(310)는 파일저장서버(200)가 전송한 디코딩 요청 메시지를 수신할 수 있다. 제어부(320)는 상기 디코딩 요청 메시지의 수신에 대응하여 토큰을 발행하고, 상기 발행된 토큰이 파일저장서버(200)로 전송되도록 제어할 수 있다.
일부 실시예로, 제어부(320)는 발행한 토큰의 토큰발행시간이 경과한 경우에는, 토큰을 폐기할 수 있다.
통신부(310)는 파일저장서버(200)가 전송한 디코딩 정보 요청 메시지를 수신할 수 있다. 통신부(310)가 디코딩 정보 요청 메시지를 수신한 경우에는, 제어부(320)는 상기 디코딩 정보 요청 메시지가 유효한 메시지인지를 확인할 수 있다. 일부 실시예로, 제어부(320)는 디코딩 정보 요청 메시지에 포함된 토큰이 파일저장서버(200)로 전송한 토큰과 일치하는 경우에는, 상기 고유키와 연관된 디코딩 정보가 파일저장서버(200)로 전송되도록 제어할 수 있다. 여기서, 디코딩 정보는 상기 고유키와 연관된 암호키 및 참조테이블 중 적어도 하나를 포함할 수 있다.
일부 실시예로, 제어부(320)는 디코딩 정보 요청 메시지에 포함된 토큰이 파일저장서버(200)로 전송한 토큰과 일치하고 이상상황이 아닌 경우에는, 상기 디코딩 정보 요청 메시지를 유효한 메시지로 확인하고, 상기 고유키와 연관된 디코딩 정보가 파일저장서버(200)로 전송되도록 제어할 수 있다.
일부 실시예로, 상기 디코딩 정보 요청 메시지에 포함된 토큰이 상기 폐기된 토큰과 일치하는 경우에는, 제어부(320)는 이상상황으로 확인하고 이상상황 조치를 수행할 수 있다. 또한 제어부(320)는, 상기 디코딩 정보 요청 메시지를 전송한 전자 장치가 상기 디코딩 정보 요청 메시지에 포함된 토큰을 요청한 파일저장서버와 다른 경우에는, 이상상황으로 확인하고 이상상황 조치를 수행할 수 있다. 여기서, 이상상황 조치는, 상기 디코딩 정보를 제공하지 않는 조치, 상기 저장된 디코딩 정보를 폐기하는 조치, 상기 전자 장치의 요청을 차단하는 조치 및 이상상황임을 관리자에게 통지하는 조치 중 적어도 하나를 포함할 수 있다.
도 11은 본 발명의 일실시예에 따른 파일 관리 방법의 수행과정의 일부를 도시한 도면이다.
도 11을 참조하면, 파일저장서버(200)가 클라이언트(70)로부터 파일의 업로드를 요청하는 업로드 요청 메시지를 수신한다(S700).
파일저장서버(200)는 업로드 요청 메시지에 대한 응답으로 업로드 승인 메시지를 전송하고(S703), 클라이언트(70)로부터 업로드 요청된 파일을 수신한다(S705).
단계 S700에서 수신된 업로드 요청 메시지에 대응하여, 파일저장서버(200)가 토큰을 요청하는 토큰 요청 메시지를 토큰서버(300)로 전송한다(S710).
단계 S710에서 전송된 토큰 요청 메시지의 수신에 대응하여, 토큰서버(300)가 토큰을 발행한다(S720).
토큰서버(300)가 단계 S720에서 발행된 토큰을 파일저장서버(200)로 전송한다(S730).
토큰서버(300)가 단계 S730에서 발행된 토큰의 토큰발행시간이 경과하였는지 여부를 확인한다(S740).
토큰서버(300)가 단계 S740의 확인결과 토큰발행시간이 경과한 경우에는, 단계 S730에서 토큰을 폐기한다(S750).
파일저장서버(200)가 단계 S730에서 전송된 토큰을 포함하는 인코딩 정보 요청 메시지를 토큰서버(300)로 전송한다(S760).
토큰서버(300)가 단계 S760에서 전송된 인코딩 정보 요청 메시지가 유효한 메시지인지를 확인한다(S770). 일부 실시예로, 단계 S770에서 토큰서버(300)는 단계 S760에서 전송된 인코딩 정보 요청 메시지에 포함된 토큰이 단계 S730에서 전송된 토큰과 일치하는지 여부를 확인하는 하고, 및 단계 S760에서 전송된 인코딩 정보 요청 메시지에 포함된 토큰이 단계 S730에서 전송된 토큰과 일치하는 경우에는, 단계 S760에서 전송된 인코딩 정보 요청 메시지가 유효한 메시지로 확인할 수 있다.
단계 S770에서 토큰서버(300)가 단계 S760에서 전송된 인코딩 정보 요청 메시지에 포함된 토큰이 단계 S750에서 폐기된 토큰과 일치하는지 여부를 확인하고, 단계 S760에서 전송된 인코딩 정보 요청 메시지에 포함된 토큰이 단계 S750에서 폐기된 토큰과 일치하는 경우에는, 토큰서버(300)가 이상상황으로 확인할 수 있다.
단계 S770에서 토큰서버(300)가 단계 S760에서 전송된 인코딩 정보 요청 메시지를 전송한 전자 장치가 S760에서 인코딩 정보 요청 메시지에 포함된 토큰을 요청한 파일저장서버(200)와 같은 지 여부를 확인하고, 상기 인코딩 정보 요청 메시지에 포함된 토큰을 요청한 파일저장서버(200)와 다른 경우에는, 토큰서버(300)가 이상상황으로 확인할 수 있다.
단계 S770의 확인결과 이상상황인 경우에는, 토큰서버(300)가 이상상황 조치를 수행한다(S775). 여기서, 상기 이상상황 조치는, 상기 인코딩 정보를 제공하지 않는 조치, 상기 저장된 인코딩 정보를 폐기하는 조치, 상기 전자 장치의 요청을 차단하는 조치 및 이상상황임을 관리자에게 통지하는 조치 중 적어도 하나를 포함할 수 있다.
단계 S770의 확인결과 유효한 메시지인 경우에는, 토큰서버(300)가 인코딩을 수행하기 위한 인코딩 정보를 파일저장서버(200)로 전송한다(S780).
파일저장서버(200)가 단계 S780에서 전송된 인코딩 정보를 기초로 단계 S700에서 업로드 요청된 파일을 암호화한다(S790). 여기서, 상기 인코딩 정보는, 암호키, 상기 암호키와 연관된 고유키 및 참조테이블 중 적어도 하나를 포함할 수 있다. 상기 파일의 암호화가 완료된 경우에는, 상기 암호키 및 참조테이블이 삭제되며, 상기 고유키는 상기 암호화된 파일에 기록될 수 있다. 암호키, 고유키 및 참조테이블은 각각 도 1a 및 도 2b에서 전술된 암호키, 고유키 및 참조테이블일 수 있고, 단계 S790은 도 4에 전술된 s300, S310 및 S320를 포함할 수 있다.
단계 S790에서, 단계 S705가 진행되는 동안에 파일저장서버(200)는 단계 S705에서 수신 중인 파일의 데이터를 블록 단위로 암호화할 수 있다.
도 12는 본 발명의 일실시예에 따른 파일 관리 방법의 수행과정의 일부를 도시한 도면이다.
도 12를 참조하면, 파일저장서버(200)가 암호화된 파일을 디코딩을 위한 토큰을 요청하는 디코딩 요청 메시지를 토큰서버(300)로 전송한다(S800).
단계 S800에서 전송된 디코딩 요청 메시지의 수신에 대응하여, 토큰서버(300)가 토큰을 발행한다(S810).
토큰서버(300)가 단계 S810에서 발행된 토큰을 파일저장서버(200)로 전송한다(S820).
토큰서버(300)가 상기 발행된 토큰의 토큰발행시간이 경과하였는지 여부를 확인한다(S830).
토큰서버(300)가 상기 발행된 토큰의 토큰발행시간이 경과한 경우에는, 상기 토큰을 폐기한다(S840).
파일저장서버(200)가 단계 S820에서 전송된 토큰 및 상기 암호화된 파일에 기록된 고유키를 포함하는 디코딩 정보 요청 메시지를 토큰서버(300)로 전송한다(S850).
토큰서버(300)가 단계 S830에서 전송된 디코딩 정보 요청 메시지가 유효한 메시지인지를 확인한다(S860). 일부 실시예로, 단계 S860에서 토큰서버(300)는 단계 S850에서 전송된 디코딩 정보 요청 메시지에 포함된 토큰이 단계 S820에서 전송된 토큰과 일치하는지 여부를 확인하고, 단계 S850에서 전송된 디코딩 정보 요청 메시지에 포함된 토큰이 단계 S820에서 전송된 토큰과 일치하는 경우에는, 단계 S850에서 전송된 디코딩 정보 요청 메시지를 유효한 메시지로 확인할 수 있다.
일부 실시예로, 단계 S860에서 토큰서버(300)가 단계 S860에서 전송된 디코딩 정보 요청 메시지에 포함된 토큰이 단계 S840에서 폐기된 토큰과 일치하는지 여부를 확인하고, 단계 S860에서 전송된 디코딩 정보 요청 메시지에 포함된 토큰이 단계 S840에서 폐기된 토큰과 일치하는 경우에는, 토큰서버(300)가 이상상황으로 확인할 수 있다.
일부 실시예로, 단계 S860에서 토큰서버(300)가 단계 S850에서 전송된 디코딩 정보 요청 메시지를 전송한 전자 장치가 상기 디코딩 정보 요청 메시지에 포함된 토큰을 요청한 파일저장서버(200)와 같은 지 여부를 확인하고, 상기 전자 장치가 단계 S850에서 전송된 디코딩 정보 요청 메시지에 포함된 토큰을 요청한 파일저장서버(200)와 다른 경우에는, 토큰서버(300)가 이상상황으로 확인할 수 있다.
이상상황인 경우에는, 토큰서버(300)가 이상상황 조치를 수행한다(S865). 상기 이상상황 조치는, 상기 디코딩 정보를 제공하지 않는 조치, 상기 저장된 인코딩 정보를 폐기하는 조치, 상기 전자 장치의 요청을 차단하는 조치 및 이상상황임을 관리자에게 통지하는 조치 중 적어도 하나를 포함할 수 있다.
상기 확인결과 단계 S850에서 전송된 디코딩 정보 요청 메시지가 유효한 메시지인 경우에는, 토큰서버(300)가 상기 디코딩 정보 요청 메시지에 포함된 고유키와 연관된 디코딩 정보를 파일저장서버(200)로 전송한다(S870).
파일저장서버(200)가 단계 S870에서 전송된 디코딩 정보를 기초로 단계 S850에서 전송된 디코딩 정보 요청 메시지에 포함된 고유키를 기록한 파일을 복호화한다(S880).
도 13은 본 발명에 따른 파일 관리 시스템이 해킹 당한 경우에 피해 감소 효과를 설명하기 위한 도면이다.
도 13을 참조하면, 일반적으로 해커가 데이터베이스에 저장된 모든 파일의 암호 및 서버에 저장된 모든 파일들을 해킹했을 경우에는, 해커는 보편적인 암호화 프로그램(DES, AES, Zip ..등 )들을 대입하여 파일을 해독할 수 있다. 하지만, 본 발명에서는, 해커가 토큰서버(300)에 저장된 모든 파일의 암호키 및 파일저장서버(200)에 저장된 모든 파일들을 해킹했을 경우에도, 해커는 보편적인 암호화 프로그램을 이용해 파일을 해독할 수 없으므로 서버에 저장된 인코딩 모듈 및 디코딩 모듈의 바이너리를 함께 탈취해 와야 하며, 이 경우에도 인코딩 모듈 및 디코딩 모듈의 바이너리는 사전에 설정된 고유 정보와 실행되는 전자 장치가 갖는 고유 정보와 일치하는 경우에 실행되도록 프로그램됨에 따라 특정서버에서만 작동되도록 설계되어 있어, 인코딩 모듈/디코딩 모듈의 바이너리는 해커가 그 자체로 독자적으로 실행시킬 수 없으므로, 별도의 복제환경을 만들거나, 인코딩/디코딩 모듈의 바이너리를 역어셈블리 하여 그 구조를 파악하여야 한다. 본 발명에 따른 인코딩 방법은 특정 암호화 방식처럼 고정된 방식이 아니므로, 동일한 암호키로 각 서버 또는 업체에 따라 서로 다른 구조로 저장될 수 있으므로 암호키 자체만으로는 파일을 해독할 수 없다.
위와 같이, 본 발명의 토큰서버(300)에서 모든 인코딩/디코딩 방식을 관장하고 본 발명의 인코더에 해당하는 파일저장서버(200)에서는 오로지 인코딩된 암호파일만 존재한다면, 디코더가 해킹당한 경우에도 모든 파일마다 별도의 길이의 블록과 인코딩 방식으로 처리된 데이터는 쉽게 해당 파일의 데이터를 확인할 수 없다.
예를 들면, 토큰서버(300)에 보관되는 각 인코딩 방식에 대해 본 발명의 일실시예에서 인코딩에 사용되는 복수의 원소의 조합인 암호키와 해당 암호키와 연관된 고유키만 존재하는데, 본 발명은 인코딩에 사용되는 암호키 생성 방법, 암호키 변환 사용 방법, 암호파일의 고유키를 앞에 붙일지 뒤에 붙일지, 또는 원소 배열을 수신된 암호키의 원소의 순서대로 선언할지, 역순으로 선언할지 등에 따라 매우 다양하고 복잡한 형태의 인코더/디코더를 만들 수 있게 되는 것이다.
토큰서버(300)와 토큰서버(300)에서 그때그때 인코딩/디코딩을 위한 암호키를 받아 인코딩 및 디코딩 처리를 하는 모듈이 바이너리화 되어있고, 그 프로그램 코드가 반드시 해당 하드웨어 장비에서 맥 주소(MAC address), CPU ID, 그 외 해당 서버의 특성과 조건이 맞는 상태에서만 작동되도록 프로그램 했다면, 결과적으로 해커가 파일저장서버(200)의 파일모두를 해킹하는데 성공하였다 하더라도, 암호의 해독을 위해 현 운영되고 있는 파일저장서버(200)의 암호화 방식의 프로그램 코드까지 역어셈블링 하지 않으면 암호파일을 해독할 수 없게 되는 것이다.
여기에 개시된 실시예들은 적어도 하나의 하드웨어 디바이스에서 실행 중이며 구성 요소들을 제어하기 위한 네트워크 관리 기능을 수행하고 있는 적어도 하나의 소프트웨어 프로그램을 통하여 구현될 수 있다. 도 1a, 도 9 및 도 10에 도시되는 구성요소들은 하드웨어 디바이스, 또는 하드웨어 디바이스 및 소프트웨어 모듈의 조합 중 적어도 하나일 수 있는 블록들을 포함한다.
본 발명은 또한 컴퓨터 판독가능 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터 판독가능 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등을 포함한다. 또한 컴퓨터 판독가능 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
본 명세서의 실시예들의 이러한 양태 및 다른 양태들은 후속하는 상세한 설명 및 첨부 도면을 함께 고려하면 더욱 잘 인정되고 이해될 것이다. 그러나, 후속하는 상세한 설명은 비록 바람직한 실시예들 및 그것의 다수의 구체적인 세부내용들을 표시하고는 있지만 이것들은 예시의 방법으로 제공된 것이고 한정하는 것이 아니라는 것이 이해되어야 한다. 많은 변형 및 변경들이 실시예들의 기술적 사상에서 벗어나지 않으면서 본 명세서의 실시예들의 범위 내에서 이루어질 수도 있으며, 본 명세서의 실시예들은 모든 이러한 변경들을 포함한다.
이상에서 본 발명의 바람직한 실시예에 대해 도시하고 설명하였으나, 본 발명은 상술한 특정의 바람직한 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.
인코딩 시스템 1 네트워크 2
파일 관리 시스템 5 인코더 10
정보 제공 서버 20 사용자 단말기 30
클라이언트 70 인코더 100
파일저장서버 200 토큰서버 300

Claims (9)

  1. 삭제
  2. 파일저장서버가 클라이언트로부터 파일의 업로드를 요청하는 업로드 요청 메시지를 수신하는 단계;
    상기 업로드 요청 메시지의 수신에 대응하여, 상기 파일저장서버가 토큰을 요청하는 토큰 요청 메시지를 토큰서버로 전송하는 단계;
    상기 전송된 토큰 요청 메시지의 수신에 대응하여, 상기 토큰서버가 토큰을 발행하는 단계;
    상기 토큰서버가 상기 발행된 토큰을 상기 파일저장서버로 전송하는 단계;
    상기 파일저장서버가 상기 전송된 토큰을 포함하는 인코딩 정보 요청 메시지를 상기 토큰서버로 전송하는 단계;
    상기 토큰서버가, 상기 전송된 인코딩 정보 요청 메시지가 유효한 메시지인지를 확인하는 단계;
    상기 확인결과 유효한 메시지인 경우에는, 상기 토큰서버가 인코딩을 수행하기 위한 인코딩 정보를 상기 파일저장서버로 전송하는 단계;
    상기 파일저장서버가, 상기 전송된 인코딩 정보를 기초로 상기 파일을 암호화하는 단계;
    상기 토큰서버가 상기 발행된 토큰의 토큰발행시간이 경과하였는지 여부를 확인하는 단계;
    상기 토큰서버가 상기 발행된 토큰의 토큰발행시간이 경과한 경우에는, 상기 토큰을 폐기하는 단계; 및
    이상상황인 경우에는, 상기 토큰서버가 이상상황 조치를 수행하는 단계를 포함하고,
    상기 유효한 메시지인지를 확인하는 단계는,
    상기 토큰서버가 상기 인코딩 정보 요청 메시지에 포함된 토큰이 상기 폐기된 토큰과 일치하는지 여부를 확인하는 단계; 및
    상기 인코딩 정보 요청 메시지에 포함된 토큰이 상기 폐기된 토큰과 일치하는 경우에는, 상기 토큰서버가 이상상황으로 확인하는 단계를 더 포함하는 것을 특징으로 하는 토큰을 이용한 파일 암호화 기능을 제공하는 파일 관리 방법.
  3. 제 2항에 있어서,
    상기 유효한 메시지인지를 확인하는 단계는,
    상기 토큰서버가 상기 인코딩 정보 요청 메시지를 전송한 전자 장치가 상기 인코딩 정보 요청 메시지에 포함된 토큰을 요청한 파일저장서버와 같은 지 여부를 확인하는 단계; 및
    상기 인코딩 정보 요청 메시지에 포함된 토큰을 요청한 파일저장서버와 다른 경우에는, 상기 토큰서버가 이상상황으로 확인단계를 더 포함하는 것을 특징으로 하는 토큰을 이용한 파일 암호화 기능을 제공하는 파일 관리 방법.
  4. 파일저장서버가 암호화된 파일을 디코딩을 위한 토큰을 요청하는 디코딩 요청 메시지를 토큰서버로 전송하는 단계;
    상기 전송된 디코딩 요청 메시지의 수신에 대응하여, 토큰서버가 토큰을 발행하는 단계;
    상기 토큰서버가 상기 발행된 토큰을 상기 파일저장서버로 전송하는 단계;
    상기 파일저장서버가 상기 전송된 토큰 및 상기 암호화된 파일에 기록된 고유키를 포함하는 디코딩 정보 요청 메시지를 상기 토큰서버로 전송하는 단계;
    상기 토큰서버가 상기 전송된 디코딩 정보 요청 메시지가 유효한 메시지인지를 확인하는 단계;
    상기 확인결과 상기 디코딩 정보 요청 메시지가 유효한 메시지인 경우에는, 상기 토큰서버가 상기 고유키와 연관된 디코딩 정보를 상기 파일저장서버로 전송하는 단계;
    상기 파일저장서버가, 상기 전송된 디코딩 정보를 기초로 상기 암호화된 파일을 복호화하는 단계
    상기 토큰서버가 상기 발행된 토큰의 토큰발행시간이 경과하였는지 여부를 확인하는 단계;
    상기 토큰서버가 상기 발행된 토큰의 토큰발행시간이 경과한 경우에는, 상기 토큰을 폐기하는 단계; 및
    이상상황인 경우에는, 상기 토큰서버가 이상상황 조치를 수행하는 단계를 포함하고,
    상기 유효한 메시지인지를 확인하는 단계는,
    상기 토큰서버가 상기 디코딩 정보 요청 메시지에 포함된 토큰이 상기 폐기된 토큰과 일치하는지 여부를 확인하는 단계; 및
    상기 디코딩 정보 요청 메시지에 포함된 토큰이 상기 폐기된 토큰과 일치하는 경우에는, 상기 토큰서버가 이상상황으로 확인하는 단계를 더 포함하는 것을 특징으로 하는 것을 특징으로 하는 토큰을 이용한 파일 암호화 기능을 제공하는 파일 관리 방법.
  5. 클라이언트로부터 파일의 업로드를 요청하는 업로드 요청 메시지를 수신하고, 상기 업로드 요청 메시지의 수신에 대응하여 토큰을 요청하는 토큰 요청 메시지를 전송하고, 상기 토큰 요청 메시지에 대한 응답으로 수신된 토큰을 포함하는 인코딩 정보 요청 메시지를 전송하는 파일저장서버; 및
    상기 토큰 요청 메시지를 수신하고, 상기 토큰 요청 메시지의 수신에 대응하여 토큰을 발행하고, 상기 발행된 토큰을 상기 파일저장서버로 전송하고, 상기 인코딩 정보 요청 메시지를 수신하고, 상기 수신된 인코딩 정보 요청 메시지에 포함된 토큰이 상기 전송된 토큰과 일치하는 경우에는, 인코딩을 수행하기 위한 인코딩 정보를 상기 파일저장서버로 전송하는 토큰서버를 포함하고,
    상기 파일저장서버는,
    상기 인코딩 정보를 수신하고, 상기 수신된 인코딩 정보를 기초로 상기 파일을 암호화하고,
    상기 토큰서버는,
    상기 발행된 토큰의 토큰발행시간이 경과한 경우에는, 상기 토큰을 폐기하고, 상기 인코딩 정보 요청 메시지에 포함된 토큰이 상기 폐기된 토큰과 일치하는 경우에는, 이상상황으로 확인하고 이상상황 조치를 수행하는 것을 특징으로 하는 토큰을 이용한 파일 암호화 기능을 제공하는 파일 관리 시스템.
  6. 제 5항에 있어서,
    상기 인코딩 정보는,
    암호키 및 상기 암호키와 연관된 고유키를 포함하는 것을 특징으로 하는 토큰을 이용한 파일 암호화 기능을 제공하는 파일 관리 시스템.
  7. 제 6항에 있어서,
    상기 파일의 암호화가 완료된 경우에는, 상기 암호키가 삭제되며, 상기 고유키는 상기 암호화된 파일에 기록되는 것을 특징으로 하는 토큰을 이용한 파일 암호화 기능을 제공하는 파일 관리 시스템.
  8. 제 5항에 있어서,
    상기 파일저장서버는,
    상기 파일을 암호화하는 인코딩 모듈 및 상기 암호화된 파일의 복호화하는 디코딩 모듈의 프로그램 코드는 바이너리화하여 저장되고, 상기 프로그램 코드는 사전에 설정된 고유 정보와 실행되는 전자 장치가 갖는 고유 정보와 일치하는 경우에 실행되도록 프로그램 된 것을 특징으로 하는 토큰을 이용한 파일 암호화 기능을 제공하는 파일 관리 시스템.
  9. 제 5항에 있어서,
    상기 파일저장서버는,
    암호화된 파일을 디코딩을 위한 토큰을 요청하는 디코딩 요청 메시지를 전송하고, 상기 디코딩 요청 메시지에 대한 응답으로 수신된 토큰 및 상기 암호화된 파일에 기록된 고유키를 포함하는 디코딩 정보 요청 메시지를 전송하고,
    상기 토큰서버는,
    상기 디코딩 요청 메시지를 수신하고, 상기 디코딩 요청 메시지의 수신에 대응하여 토큰을 발행하고, 상기 발행된 토큰을 상기 파일저장서버로 전송하고, 상기 디코딩 정보 요청 메시지를 수신하고, 상기 수신된 디코딩 정보 요청 메시지에 포함된 토큰이 상기 전송된 토큰과 일치하는 경우에는, 상기 고유키와 연관된 디코딩 정보를 상기 파일저장서버로 전송하고,
    상기 파일저장서버는,
    상기 디코딩 정보를 수신하고, 상기 수신된 디코딩 정보를 기초로 상기 암호화된 파일을 복호화하는 것을 특징으로 하는 토큰을 이용한 파일 암호화 기능을 제공하는 파일 관리 시스템.

KR1020230012204A 2023-01-30 2023-01-30 파일 암호화 기능을 제공하는 파일 관리 시스템 및 그 방법 KR102617447B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230012204A KR102617447B1 (ko) 2023-01-30 2023-01-30 파일 암호화 기능을 제공하는 파일 관리 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230012204A KR102617447B1 (ko) 2023-01-30 2023-01-30 파일 암호화 기능을 제공하는 파일 관리 시스템 및 그 방법

Publications (1)

Publication Number Publication Date
KR102617447B1 true KR102617447B1 (ko) 2023-12-27

Family

ID=89377766

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230012204A KR102617447B1 (ko) 2023-01-30 2023-01-30 파일 암호화 기능을 제공하는 파일 관리 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR102617447B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160131620A (ko) * 2015-05-08 2016-11-16 (주)케이사인 데이터 암복호화 방법
KR20180047505A (ko) * 2016-10-31 2018-05-10 한국전자통신연구원 파일 소유에 관한 검증을 통해 암호 파일의 중복을 처리하는 방법 및 장치, 그리고 암호 파일을 저장하는 방법 및 장치
KR20200116008A (ko) * 2019-03-29 2020-10-08 알리바바 그룹 홀딩 리미티드 암호 동작들의 안전한 수행
KR20220028308A (ko) * 2020-08-28 2022-03-08 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 모바일 단말로부터 전송된 토큰을 이용한 어플리케이션 로그인

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160131620A (ko) * 2015-05-08 2016-11-16 (주)케이사인 데이터 암복호화 방법
KR20180047505A (ko) * 2016-10-31 2018-05-10 한국전자통신연구원 파일 소유에 관한 검증을 통해 암호 파일의 중복을 처리하는 방법 및 장치, 그리고 암호 파일을 저장하는 방법 및 장치
KR20200116008A (ko) * 2019-03-29 2020-10-08 알리바바 그룹 홀딩 리미티드 암호 동작들의 안전한 수행
KR20220028308A (ko) * 2020-08-28 2022-03-08 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 모바일 단말로부터 전송된 토큰을 이용한 어플리케이션 로그인

Similar Documents

Publication Publication Date Title
EP3093784B1 (en) Client computer for querying a database stored on a server via a network
KR101590076B1 (ko) 개인정보 관리 방법
KR101130415B1 (ko) 비밀 데이터의 노출 없이 통신 네트워크를 통해 패스워드 보호된 비밀 데이터를 복구하는 방법 및 시스템
WO2021218885A1 (zh) 用于数据传输的安全保密方法和系统
US7313694B2 (en) Secure file access control via directory encryption
CN111199045A (zh) 信息的安全多方存储和传递的加密私钥管理的方法和系统
US20150379286A1 (en) Cryptographic key
WO2001065545A2 (en) Method and apparatus for using non-secure file servers for secure information storage
US8341417B1 (en) Data storage using encoded hash message authentication code
CN107181591B (zh) 用于系统密码生成的方法与设备
US20020078049A1 (en) Method and apparatus for management of encrypted data through role separation
CN110650139B (zh) 云平台的资源访问控制方法以及系统
KR102399667B1 (ko) 블록체인 기반 데이터 거래 및 보관을 위한 보안 시스템 및 그 방법
US20150143107A1 (en) Data security tools for shared data
Kim et al. Client‐Side Deduplication to Enhance Security and Reduce Communication Costs
US20090165102A1 (en) Online password management
CN110795747A (zh) 一种数据加密存储方法、装置、设备及可读存储介质
US20020122553A1 (en) Method and apparatus for lightweight rekeying of a master key in a single sign-on system
CN110022207B (zh) 密钥管理及处理数据的方法、装置、设备和计算机可读介质
CN110807210B (zh) 一种信息处理方法、平台、系统及计算机存储介质
KR102617447B1 (ko) 파일 암호화 기능을 제공하는 파일 관리 시스템 및 그 방법
CN114553566B (zh) 数据加密方法、装置、设备及存储介质
CN113647051A (zh) 用于安全电子数据传输的系统和方法
US11972000B2 (en) Information dispersal for secure data storage
JP2007060581A (ja) 情報管理システム及び方法

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant