KR102617446B1 - Encoder, encoding method and computer readable recording medium - Google Patents
Encoder, encoding method and computer readable recording medium Download PDFInfo
- Publication number
- KR102617446B1 KR102617446B1 KR1020230012171A KR20230012171A KR102617446B1 KR 102617446 B1 KR102617446 B1 KR 102617446B1 KR 1020230012171 A KR1020230012171 A KR 1020230012171A KR 20230012171 A KR20230012171 A KR 20230012171A KR 102617446 B1 KR102617446 B1 KR 102617446B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- encryption key
- element arrays
- elements
- encoding method
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 80
- 238000003491 array Methods 0.000 claims description 78
- 230000008707 rearrangement Effects 0.000 claims description 9
- 230000001174 ascending effect Effects 0.000 claims description 8
- 238000004891 communication Methods 0.000 abstract description 14
- 238000010586 diagram Methods 0.000 description 21
- 230000008569 process Effects 0.000 description 13
- 230000006870 function Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000005728 strengthening Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000011426 transformation method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
인코더, 인코딩 방법 및 컴퓨터 판독가능 기록매체를 개시한다. 인코더는 원본 파일을 수신하는 통신부, 복수의 원소를 포함하는 암호키를 기초로 데이터 크기를 지시하는 블록 단위를 산출하고, 암호키에 포함된 복수의 원소의 개수 및 복수의 원소 각각의 값을 기초로 통신부가 수신한 원본 파일을 산출된 블록 단위로 암호화하는 제어부, 및 암호화된 파일을 저장하는 저장부를 포함할 수 있다.Disclosed is an encoder, an encoding method, and a computer-readable recording medium. The encoder calculates a block unit indicating the data size based on a communication unit that receives the original file and an encryption key containing a plurality of elements, and based on the number of elements included in the encryption key and the value of each of the plurality of elements. It may include a control unit that encrypts the original file received by the communication unit in units of calculated blocks, and a storage unit that stores the encrypted file.
Description
본 발명은 인코더, 인코딩 방법 및 컴퓨터 판독가능 기록매체에 관한 것으로, 보다 상세하게는, 파일을 인코딩할 수 있는 인코더, 인코딩 방법 및 컴퓨터 판독가능 기록매체에 관한 것이다.The present invention relates to an encoder, an encoding method, and a computer-readable recording medium, and more specifically, to an encoder, an encoding method, and a computer-readable recording medium capable of encoding files.
국내외를 막론하고 현존하는 거의 모든 상업 업종들은 웹을 통한 업무시스템을 구축하여 PC와 모바일 등으로 다양한 서비스를 제공하고 있다. 개개인의 민감한 데이터 보관을 대행하는 Microsoft, Apple, Google 등의 각각의 클라우드 서비스 이외에도, AWS 등의 서버 자체를 클라우드 서비스하는 종류도 있다. 이런 클라우드 서비스 또는 개별적인 방법으로 주민등록번호, 주소 등 개인의 민감한 정보관리를 대행하는 다양한 ASP(Application Service Provide) 및 IoT 장비 들도 존재한다.Almost all existing commercial industries, both domestically and internationally, have established business systems through the web and provide various services through PCs and mobile devices. In addition to cloud services such as Microsoft, Apple, and Google that store sensitive data of individuals, there are also types of cloud services that provide the server itself, such as AWS. There are also various ASPs (Application Service Providers) and IoT devices that manage sensitive personal information such as resident registration numbers and addresses through cloud services or individual methods.
흔히 우리가 알고 있는 ERP (Enterprise resource planning) 시스템들을 사용함에 있어, 의도하는 만큼의 충분한 시스템을 운영할 수 있는 금전적 능력을 가진 업체가 아닌 경우에는 월 비용을 지불하면서 ASP업체들이 제공하는 ERP 시스템을 사용한다. ERP서비스의 경우 통상적으로 사원관리/급여관리/고객관리/거래처 관리 등 다양한 인적정보가 시스템에 저장이 되며, 상당수가 민감한 개인정보로써 보안이 매우 중요하다.When using the ERP (Enterprise resource planning) systems that we commonly know, if a company does not have the financial ability to operate a sufficient system as intended, it pays a monthly fee to use the ERP system provided by ASP companies. use. In the case of ERP services, various personal information such as employee management/salary management/customer management/business partner management is usually stored in the system, and as much of it is sensitive personal information, security is very important.
또한 IoT 장비의 경우 이미지, 영상 등 상당량의 데이터들이 개별장비를 통해 보관되거나 전송된다. 이를 위해 IoT 장비등의 보안을 위한 문서도 다양한 형태로 작성되고 있다.Additionally, in the case of IoT devices, a significant amount of data, such as images and videos, is stored or transmitted through individual devices. To this end, documents for the security of IoT devices are being prepared in various forms.
데이터베이스에 직접적으로 저장되는 Text 데이터들은 기본적으로 암호화하여 저장하는 방식이 주로 사용되고 있고, 이 경우 Text 자체의 용량이 크지 않기 때문에 각 업체마다 다양한 방식으로 암호화된 정보를 데이터베이스에 저장한다. 따라서 통상 Text 기반의 개인정보들은 데이터베이스의 암호 및 별다른 규칙이 없는 인코딩 방식에 따른 암호화로 사용자가 데이터베이스와 서버를 해킹했다 하더라도, 서버측 프로그램에서 리버스엔지니어링을 하기 전에는 그 데이터를 확인하기가 쉽지 않다.Text data that is stored directly in the database is basically encrypted and stored. In this case, the capacity of the text itself is not large, so each company stores the encrypted information in the database in various ways. Therefore, text-based personal information is usually encrypted according to the database password and an encoding method without any special rules. Even if the user hacks the database and server, it is not easy to check the data before reverse engineering in the server-side program.
그러나 하드디스크에 업로드 되는 파일의 경우 그 자체의 저장방식에 대한 엄격한 법적 기준이 없다. 한국인터넷진흥원 등에서는 웹서버의 파일보안을 위하여 몇 가지 권장사항을 제시하지만, 서버자체의 보안을 강화하거나, 방화벽구축, 파일전송 과정에서의 보안강화 등에 그치고 있다. 이런 방법들은 가장 최전방의 보안으로는 권장할 수 있으나, 파일이 업로드 된 서버의 권한 자체를 탈취당했을 경우에는, 서버에 저장된 모든 파일들이 정보가 그대로 해커에게 노출될 수 있다. However, in the case of files uploaded to hard disks, there are no strict legal standards for their storage method. The Korea Internet & Security Agency and others provide several recommendations for file security on web servers, but they are limited to strengthening the security of the server itself, building a firewall, and strengthening security in the file transfer process. These methods can be recommended for the highest level of security, but if the authority of the server where the file was uploaded is stolen, the information of all files stored on the server may be exposed to hackers.
그런 이유로 업로드 되는 파일 중 용량이 큰 파일의 경우 파일전체를 암호화하는데 속도상의 문제가 되어 헤더만 변조하거나, 파일의 확장자를 없애 버리기도 하고(Windows의 경우), 파일의 권한제거(Unix계열의 시스템)를 통해 디스크에 저장하기도 한다. 그 외 업로드 되는 파일을 암호화하고, 당시 암호화했던 키 값을 데이터베이스에 저장하는 방식을 이용하기도 하지만, 이 역시 클라우드에 백업된 데이터마저 삭제된다면 복구할 방법이 없다. 또는 파일용량이 큰 경우 암호화에 걸리는 성능상의 오버헤드를 보완하기 위하여 부분암호화를 지원하는 방식도 있으나, 동영상 같은 경우 부분 암호화로는 전체 데이터의 기밀성을 보호하기에는 어려운 한계가 있다.For this reason, in the case of large files being uploaded, encrypting the entire file becomes a speed problem, so only the header is altered, the file extension is removed (in the case of Windows), and file permissions are removed (Unix-based systems). It can also be saved to disk. Other methods are used to encrypt uploaded files and store the encrypted key value in a database, but if even the data backed up to the cloud is deleted, there is no way to recover it. Alternatively, if the file size is large, there is a method that supports partial encryption to compensate for the performance overhead of encryption, but in the case of videos, partial encryption has limitations that make it difficult to protect the confidentiality of the entire data.
본 발명이 해결하고자 하는 과제는 웹서비스 등 빠른 피드백이 필요한 서비스에 경량 암호화 방식으로 적합한 인코더, 인코딩 방법 및 컴퓨터 판독가능 기록매체를 제공하는데 있다.The problem to be solved by the present invention is to provide an encoder, encoding method, and computer-readable recording medium suitable for a lightweight encryption method for services that require fast feedback, such as web services.
본 발명이 해결하고자 하는 다른 과제는 하드디스크 상에 암호화 저장 및 복호화 시에 발생되는 성능상의 오버헤더를 보완하면서도 전체 파일을 암호화할 수 있는 인코더, 인코딩 방법 및 컴퓨터 판독가능 기록매체를 제공하는데 있다.Another problem to be solved by the present invention is to provide an encoder, an encoding method, and a computer-readable recording medium that can encrypt an entire file while compensating for the performance overhead that occurs during encryption, storage, and decryption on a hard disk.
본 발명이 해결하고자 하는 또 다른 과제는 같은 암호키를 기반으로 각각의 시스템에 따라 서로 다른 구조의 암호화 방식으로 변형될 수 있는 인코더, 인코딩 방법 및 컴퓨터 판독가능 기록매체를 제공하는데 있다.Another problem to be solved by the present invention is to provide an encoder, an encoding method, and a computer-readable recording medium that can be modified into different encryption structures for each system based on the same encryption key.
본 발명이 해결하고자 하는 또 다른 과제는 비밀번호 분실 또는 손실에 대한 방지, 해킹으로 인한 파일 탈취 시 최대한 파일을 보호할 수 있는 인코더, 인코딩 방법 및 컴퓨터 판독가능 기록매체를 제공하는데 있다.Another problem that the present invention aims to solve is to provide an encoder, an encoding method, and a computer-readable recording medium that can prevent password loss or loss and protect files as much as possible when files are stolen due to hacking.
본 발명에 따른 인코딩 방법은, 복수의 원소를 포함하는 암호키를 기초로 데이터 크기를 지시하는 블록 단위를 산출하는 단계, 및 상기 복수의 원소의 개수 및 상기 복수의 원소 각각의 값을 기초로 원본 파일을 상기 산출된 블록 단위로 암호화하는 단계를 포함할 수 있다. 여기서, 상기 암호키는, 알파벳, 숫자 및 특수문자 중 적어도 하나를 원소로 포함하고, 상기 암호키에 포함된 원소는 서로 다를 수 있다. 복수의 암호키 및 상기 복수의 암호키와 관련된 고유키가 사전에 생성되어 저장되고, 상기 암호키는 상기 저장된 복수의 암호키에서 선택될 수 있다. The encoding method according to the present invention includes calculating a block unit indicating the data size based on an encryption key including a plurality of elements, and calculating an original block unit based on the number of the plurality of elements and the value of each of the plurality of elements. It may include encrypting the file in units of the calculated blocks. Here, the encryption key includes at least one of alphabets, numbers, and special characters as an element, and the elements included in the encryption key may be different. A plurality of encryption keys and unique keys related to the plurality of encryption keys are generated and stored in advance, and the encryption key can be selected from the stored encryption keys.
상기 암호키에 포함된 원소의 값은, 원소의 크기 또는 원소에 매핑된 값일 수 있다. 상기 원소의 크기는, 바이트(byte) 단위를 내림차순으로 인코딩한 크기 또는 오름차순으로 인코딩한 크기일 수 있다. 참조테이블에 원소 및 원소와 매핑된 값이 저장되고, 상기 참조테이블에서 상기 원소에 매핑된 값이 검색될 수 있다. The value of the element included in the encryption key may be the size of the element or a value mapped to the element. The size of the element may be a size encoded in descending order of byte units or a size encoded in ascending order. Elements and values mapped to elements are stored in a reference table, and values mapped to the elements can be searched from the reference table.
상기 인코딩 방법은, 상기 원본 파일의 수신이 시작되면, 상기 암호키의 전송을 요청하는 하는 단계, 및 상기 암호키 및 상기 암호키와 관련된 고유키를 수신하는 단계를 더 포함할 수 있다.The encoding method may further include requesting transmission of the encryption key when reception of the original file begins, and receiving the encryption key and a unique key related to the encryption key.
상기 블록 단위를 산출하는 단계는, 상기 복수의 원소 각각의 값의 합을 상기 블록 단위로 산출하는 단계를 포함할 수 있다.The step of calculating the block unit may include calculating the sum of the values of each of the plurality of elements in the block unit.
상기 암호화하는 단계는, 상기 블록 단위와 대응하는 크기의 데이터를 저장하기 위한 합계 배열을 생성하는 단계, 상기 복수의 원소 각각과 관련된 복수의 원소 배열을 생성하는 단계, 및 상기 합계 배열 및 상기 복수의 원소 배열을 이용하여 상기 원본 파일을 상기 블록 단위로 재배열하는 단계를 포함할 수 있다. 여기서, 상기 복수의 원소 배열은, 관련된 원소의 값과 대응하는 크기를 갖거나 상기 블록 단위 및 상기 관련된 원소의 값의 차이값과 대응하는 크기를 가질 수 있다.The encrypting step includes generating a sum array for storing data of a size corresponding to the block unit, generating a plurality of element arrays related to each of the plurality of elements, and the sum array and the plurality of elements. It may include rearranging the original file in units of blocks using element arrangement. Here, the plurality of element arrays may have a size that corresponds to the value of the related element or may have a size that corresponds to the difference between the block unit and the value of the related element.
상기 재배열하는 단계는, 상기 블록 단위만큼의 상기 원본 파일에 저장된 데이터를 상기 복수의 원소 배열에 나누어 저장하는 단계, 및 상기 합계 배열에 상기 복수의 원소 배열 각각의 일부 데이터를 돌아가며 저장하는 단계를 포함할 수 있다. 여기서, 상기 일부 데이터는, 바이트(byte) 단위이며, 상기 합계 배열 및 상기 복수의 원소 배열은, 바이트(byte) 단위 배열이고, 상기 원소 배열과 관련된 원소의 값과 대응하는 크기 또는 상기 블록 단위 및 상기 관련된 원소의 값의 차이값과 대응하는 크기만큼 상기 원본 파일에 저장된 데이터가 상기 원소 배열에 저장될 수 있다.The rearranging step includes dividing and storing data stored in the original file in units of blocks into the plurality of element arrays, and rotating some data of each of the plurality of element arrays in the total array. It can be included. Here, the partial data is in byte units, and the total array and the plurality of element arrays are byte unit arrays, and the size corresponding to the value of the element related to the element array or the block unit and Data stored in the original file may be stored in the element array by a size corresponding to the difference between the values of the related elements.
상기 나누어 저장하는 단계는, 상기 복수의 원소 배열과 관련된 원소가 상기 암호키에 포함된 순번 순으로 상기 데이터를 상기 복수의 원소 배열에 나누어 저장하는 단계를 포함할 수 있다. The dividing and storing step may include dividing and storing the data into the plurality of element arrays in the order in which elements related to the plurality of element arrays are included in the encryption key.
상기 나누어 저장하는 단계는, 상기 복수의 원소 배열과 관련된 원소가 상기 암호키에 포함된 순번의 역순으로 상기 데이터를 상기 복수의 원소 배열에 나누어 저장하는 단계를 포함할 수 있다.The dividing and storing step may include dividing and storing the data into the plurality of element arrays in the reverse order of the order in which elements related to the plurality of element arrays are included in the encryption key.
상기 나누어 저장하는 단계는, 상기 복수의 원소 배열과 관련된 원소의 값이 큰 순으로 상기 데이터를 상기 복수의 원소 배열에 나누어 저장하는 단계를 포함할 수 있다.The dividing and storing step may include dividing and storing the data into the plurality of element arrays in order of increasing value of elements related to the plurality of element arrays.
상기 나누어 저장하는 단계는, 상기 복수의 원소 배열과 관련된 원소의 값이 작은 순으로 상기 데이터를 상기 복수의 원소 배열에 나누어 저장하는 단계를 포함할 수 있다.The dividing and storing step may include dividing and storing the data into the plurality of element arrays in descending order of the values of elements related to the plurality of element arrays.
상기 돌아가며 저장하는 단계는, 상기 복수의 원소 배열과 관련된 원소가 상기 암호키에 포함된 순번 순으로 상기 합계 배열에 상기 복수의 원소 배열 각각의 일부 데이터가 돌아가며 저장될 수 있다.In the rotationally storing step, some data of each of the plurality of element arrays may be alternately stored in the total array in the order in which elements related to the plurality of element arrays are included in the encryption key.
상기 돌아가며 저장하는 단계는, 상기 복수의 원소 배열과 관련된 원소가 상기 암호키에 포함된 순번의 역순으로 상기 합계 배열에 상기 복수의 원소 배열 각각의 일부 데이터가 돌아가며 저장될 수 있다.In the rotating storing step, some data of each of the plurality of element arrays may be stored in rotation in the total array in the reverse order of the order in which the elements related to the plurality of element arrays are included in the encryption key.
상기 돌아가며 저장하는 단계는, 상기 복수의 원소 배열과 관련된 원소의 값이 큰 순으로 상기 합계 배열에 상기 복수의 원소 배열 각각의 일부 데이터가 돌아가며 저장될 수 있다.In the rotating storing step, some data of each of the plurality of element arrays may be stored in the total array in a rotating order in the order of the values of the elements related to the plurality of element arrays.
상기 돌아가며 저장하는 단계는, 상기 복수의 원소 배열과 관련된 원소의 값이 작은 순으로 상기 합계 배열에 상기 복수의 원소 배열 각각의 일부 데이터가 돌아가며 저장될 수 있다.In the rotationally storing step, some data of each of the plurality of element arrays may be alternately stored in the total array in descending order of the values of elements related to the plurality of element arrays.
상기 돌아가며 저장하는 단계는, 원소 배열에 상기 합계 배열에 저장되지 않고 남은 데이터가 있는지 여부를 확인하는 단계를 포함하고, 상기 남은 데이터가 없는 경우에는, 상기 원소 배열의 데이터의 저장을 중지할 수 있다.The rotating storage step includes checking whether there is data remaining in the element array that is not stored in the sum array, and if there is no remaining data, storage of data in the element array may be stopped. .
상기 돌아가며 저장하는 단계는, 모든 원소 배열에 상기 합계 배열에 저장되지 않고 남은 데이터가 없는 경우에는, 상기 합계 배열을 암호파일에 저장하는 단계를 포함할 수 있다.The rotating saving step may include the step of storing the total array in an encryption file when there is no data remaining in all element arrays that is not stored in the total array.
상기 암호화하는 단계는, 모든 원소 배열에 상기 합계 배열에 저장되지 않고 남은 데이터가 없는 경우에는, 상기 블록 단위와 대응하는 크기의 데이터를 저장하기 위한 제2 합계 배열을 생성하는 단계, 및 상기 제2 합계 배열 및 상기 복수의 원소 배열을 이용하여 상기 원본 파일의 남은 데이터를 상기 블록 단위로 재배열하는 단계를 더 포함할 수 있다.The encrypting step includes, when there is no data remaining in all element arrays that is not stored in the sum array, generating a second sum array for storing data of a size corresponding to the block unit, and the second sum array for storing data of a size corresponding to the block unit. The method may further include rearranging the remaining data of the original file in blocks by using the sum array and the plurality of element arrays.
상기 인코딩 방법은 암호파일에 상기 암호화된 원본 파일의 데이터, 상기 원본 파일에 대한 정보 및 상기 암호키와 관련된 고유키를 저장하는 단계를 더 포함할 수 있다. 상기 원본 파일에 대한 정보는, 상기 원본 파일의 파일명 및 상기 원본 파일의 확장자를 포함할 수 있다.The encoding method may further include storing data of the encrypted original file, information about the original file, and a unique key related to the encryption key in an encryption file. Information about the original file may include a file name of the original file and an extension of the original file.
상기 인코딩 방법은, 상기 원본 파일을 수신하는 단계를 더 포함하고, 상기 원본 파일이 수신되는 동안에, 상기 암호화하는 단계가 진행될 수 있다.The encoding method may further include receiving the original file, and the encrypting step may be performed while the original file is being received.
인코더, 인코딩 방법 및 컴퓨터 판독가능 기록매체에 의하면, 업로드 중인 파일을 블록 단위로 암호화함으로써 웹서비스 등 빠른 피드백이 필요한 서비스에 경량 암호화 방식으로 적합하며, 하드디스크 상에 암호화 저장 및 복호화 시에 발생되는 성능상의 오버헤더를 보완하면서도 전체 파일을 암호화할 수 있고, 복수의 원소를 갖는 암호키에 사용되는 숫자조합과 고유키를 암호화 데이터 앞에 붙일지 뒤에 붙일지, 또는 원소 배열을 수신된 암호키의 원소의 순서대로 선원할지 연순으로 선언할 지 등에 따라 매우 다양하고 복잡한 형태의 인코더 및 디코더를 만들 수 있어 암호키를 기반으로 각각의 시스템에 따라 서로 다른 구조의 암호화 방식으로 변형될 수 있으며, 비밀번호 분실 또는 손실에 대한 방지, 해킹으로 인한 파일 탈취 시 최대한 파일을 보호할 수 있다.According to the encoder, encoding method, and computer-readable recording medium, the file being uploaded is encrypted in blocks, making it suitable as a lightweight encryption method for services that require quick feedback such as web services. It is possible to encrypt the entire file while compensating for performance overhead, and whether to attach the numeric combination and unique key used for an encryption key with multiple elements before or after the encryption data, or to change the element array to the elements of the received encryption key. Encoders and decoders of very diverse and complex forms can be created depending on whether they are declared in chronological order or chronological order, and can be transformed into different encryption structures depending on each system based on the encryption key. You can prevent loss and protect your files as much as possible in case of file theft due to hacking.
도 1a은 본 발명의 일실시예에 따른 인코더의 구성을 도시한 블록도이다.
도 1b는 본 발명에 따른 암호키 데이터베이스의 일예를 나타낸 표 1을 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 블록 단위 암호화 방법의 수행과정을 도시한 도면이다.
도 3a는 본 발명의 일실시예에 따른 재배열 방법의 수행과정을 도시한 도면이다.
도 3b는 본 발명의 일실시예에 따른 데이터 할당 방식에 따라 합계 배열에 저장되는 데이터를 나타낸 표 2를 도시한 도면이다.
도 3c는 도 3b의 표 2에 이어지는 부분을 나타낸 표 3을 도시한 도면이다.
도 3d는 본 발명의 일실시예에 따른 암호파일의 구조를 도시한 도면이다.
도 4a는 본 발명의 일실시예에 인코딩 방법의 수행과정을 도시한 도면이다.
도 4b는 본 발명의 일실시예에 따른 암호파일의 구조를 도시한 도면이다.
도 4c는 본 발명의 다른 실시예에 따른 암호파일의 구조를 도시한 도면이다.
도 4d는 본 발명의 또 다른 실시예에 따른 암호파일의 구조를 도시한 도면이다.
도 5는 본 발명의 일실시예에 따른 인코딩 시스템의 구성을 도시한 구성도이다.
도 6은 본 발명의 다른 실시예에 인코딩 방법의 수행과정을 도시한 도면이다.
도 7은 본 발명의 또 다른 실시예에 인코딩 방법의 수행과정을 도시한 도면이다.Figure 1A is a block diagram showing the configuration of an encoder according to an embodiment of the present invention.
Figure 1b is a diagram showing Table 1 showing an example of an encryption key database according to the present invention.
Figure 2 is a diagram illustrating the execution process of a block-level encryption method according to an embodiment of the present invention.
Figure 3a is a diagram showing the process of performing a rearrangement method according to an embodiment of the present invention.
Figure 3b is a diagram illustrating Table 2 showing data stored in a sum array according to a data allocation method according to an embodiment of the present invention.
FIG. 3C is a diagram showing Table 3 following Table 2 in FIG. 3B.
Figure 3d is a diagram showing the structure of a password file according to an embodiment of the present invention.
Figure 4a is a diagram showing the execution process of the encoding method in one embodiment of the present invention.
Figure 4b is a diagram showing the structure of an encryption file according to an embodiment of the present invention.
Figure 4c is a diagram showing the structure of a password file according to another embodiment of the present invention.
Figure 4d is a diagram showing the structure of a password file according to another embodiment of the present invention.
Figure 5 is a configuration diagram showing the configuration of an encoding system according to an embodiment of the present invention.
Figure 6 is a diagram showing the execution process of an encoding method in another embodiment of the present invention.
Figure 7 is a diagram showing the execution process of an encoding method in another embodiment of the present invention.
본 명세서의 실시예들 및 그들의 다양한 특징 및 유익한 세부사항들은 첨부 도면에 도시되며 후술하는 발명을 실시하기 위한 구체적인 내용에서 상세히 설명되는 비한정적인 실시예를 참조하여 더욱 완전하게 설명된다. 주지된 컴포넌트 및 처리 기법들의 설명은 본 명세서의 실시예들을 불필요하게 모호하게 하지 않기 위하여 생략된다. 또한, 몇몇 실시예들이 하나 이상의 다른 실시예와 결합되어 새로운 실시예를 형성할 수 있기 때문에, 본 명세서에서 설명되는 다양한 실시예들은 반드시 상호 배타적인 것이 아니다. 용어 "또는"은 본 명세서에서 사용될 때, 달리 표시되지 않는 한 비-배타적 논리합(or)을 지칭한다. 본 명세서에서 사용되는 예들은 본 명세서의 실시예들이 실시될 수 있는 방식의 이해를 용이화하고 더 나아가 당업자들이 본 명세서의 실시예들을 실시할 수 있도록 하기 위한 의도만을 가진다. 이에 상응하여, 예들은 본 명세서의 실시예들의 범위를 한정하는 것으로 해석되어서는 안 된다.The embodiments herein and their various features and beneficial details are more fully described with reference to the non-limiting examples shown in the accompanying drawings and described in detail in the detailed description set forth below. Descriptions of well-known components and processing techniques are omitted so as not to unnecessarily obscure the embodiments herein. Additionally, the various embodiments described herein are not necessarily mutually exclusive, since some embodiments may be combined with one or more other embodiments to form new embodiments. The term “or”, as used herein, refers to the non-exclusive OR (or) unless otherwise indicated. The examples used herein are solely intended to facilitate an understanding of how the embodiments herein may be practiced and to further enable those skilled in the art to practice the embodiments herein. Correspondingly, the examples should not be construed as limiting the scope of the embodiments herein.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어를 선택하였으나, 이는 당해 기술분야에 종사하는 기술자의 의도 또는 관례 또는 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 함을 밝혀두고자 한다.The terms used in the present invention are general terms that are currently widely used as much as possible while considering the functions in the present invention, but this may vary depending on the intention or practice of a technician working in the relevant technical field or the emergence of new technology. In addition, in certain cases, there are terms arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the description of the relevant invention. Therefore, we would like to clarify that the terms used in the present invention should be defined based on the meaning of the term and the overall content of the present invention, rather than simply the name of the term.
도 1a는 본 발명의 일실시예에 따른 인코더를 도시한 블록도이다.Figure 1A is a block diagram showing an encoder according to an embodiment of the present invention.
도 1a를 참조하면, 본 발명에 따른 인코더(100)는 통신부(110), 제어부(120) 및 저장부(130)를 포함할 수 있다. 인코더(100)는 데스크톱, 랩톱, 태블릿, 미니 컴퓨터, 노트북, 핸드헬드 컴퓨터 등의 퍼스널 컴퓨터 시스템일 수 있고, 브로드캐스트 및 스트리밍 서버, 파일 서버, 클라우드 서버 등의 서버용 컴퓨터 시스템일 수 있으며, 내비게이터 또는 IPTV 및 Smart TV 등의 디지털 TV일 수 있고, 휴대폰, 스마트 폰(smart phone), 디지털방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 빔프로젝터 및 감시카메라일 수 있지만 이들로 한정되는 것은 아니다.Referring to FIG. 1A, the encoder 100 according to the present invention may include a communication unit 110, a control unit 120, and a storage unit 130. The encoder 100 may be a personal computer system such as a desktop, laptop, tablet, mini computer, notebook, or handheld computer, or may be a server computer system such as a broadcast and streaming server, file server, or cloud server, and may be a navigator or It can be a digital TV such as IPTV and Smart TV, and can be a mobile phone, smart phone, digital broadcasting terminal, PDA (Personal Digital Assistants), PMP (Portable Multimedia Player), beam projector, and surveillance camera, but is limited to these. It doesn't work.
통신부(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) 네트워크 등이 포함되나 이에 한정되지는 않는다.The communication unit 110 can transmit and receive signals or data through a network. For example, the communication unit 110 may receive an encryption key or file through a network. A network refers to a connection structure that allows information exchange between nodes such as a plurality of terminals and servers. Examples of such networks include RF, 3rd Generation Partnership Project (3GPP) network, and Long Term Evolution (LTE) network. , 5GPP (5rd Generation Partnership Project) network, WIMAX (World Interoperability for Microwave Access) network, 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 network, ZigBee, NFC network, satellite broadcasting network, analog broadcasting network, DMB (Digital Multimedia Broadcasting) Includes, but is not limited to, networks.
제어부(120)는 명령을 실행하고 인코더(100)와 연관된 동작을 수행한다. 예를 들면, 저장부(130)로부터 검색된 명령어를 사용하여, 제어부(120)는 인코더(100)의 컴포넌트들 간의 입력 및 출력, 데이터의 수신 및 처리를 제어할 수 있다.The control unit 120 executes commands and performs operations associated with the encoder 100. For example, using commands retrieved from the storage unit 130, the control unit 120 can control input and output between components of the encoder 100, and reception and processing of data.
제어부(120)는 운영 체제와 함께 프로그램 코드를 실행하고 데이터를 생성 및 사용하는 동작을 한다. 운영 체제는 일반적으로 공지되어 있으며 이에 대해 보다 상세히 기술하지 않는다. 예로서, 운영 체제는 Window 계열 OS, Unix, LINUX, Palm OS, DOS, 안드로이드(Android), iOS 및 매킨토시 등일 수 있다. 운영 체제, 다른 컴퓨터 코드 및 데이터는 제어부(120)와 연결되어 동작하는 저장부(130) 내에 존재할 수 있다. 상기 프로그램 코드는 소스 코드 생성 모듈 및 실행 코드 생성 모듈일 수 있고, 웹 브라우저에서 실행되는 코드일 수 있다.The control unit 120 executes program codes together with the operating system and generates and uses data. Operating systems are generally known and will not be described in more detail. For example, the operating system may be Windows-based OS, Unix, LINUX, Palm OS, DOS, Android, iOS, and Macintosh. An operating system, other computer code, and data may reside in storage unit 130 that operates in connection with control unit 120. The program code may be a source code generation module and an executable code generation module, and may be code executed in a web browser.
제어부(120)는 본 발명에 따른 인코딩 방법을 수행하도록 하는 명령을 포함하는 프로그램 코드를 호출하여 인코더(100)로 하여금 본 발명에 따른 인코딩 방법을 수행하도록 할 수 있다.The control unit 120 may cause the encoder 100 to perform the encoding method according to the present invention by calling a program code including a command to perform the encoding method according to the present invention.
저장부(130)는 본 발명에 따른 인코딩 방법을 수행하도록 하는 명령을 포함하는 프로그램 코드를 저장할 수 있다. 저장부(130)는 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 하드 디스크 드라이브 등으로 구현될 수 있다. 프로그램 코드 및 데이터는 분리형 저장 매체에 존재할 수 있고, 필요할 때, 인코더(100) 상으로 로드 또는 설치될 수 있다. 여기서 분리형 저장 매체는 CD-ROM, PC-CARD, 메모리 카드, 플로피 디스크, 자기 테이프, 및 네트워크 컴포넌트를 포함할 수 있다.The storage unit 130 may store program code including instructions for performing the encoding method according to the present invention. The storage unit 130 may be implemented as read-only memory (ROM), random access memory (RAM), hard disk drive, etc. Program code and data may reside on a removable storage medium and may be loaded or installed onto encoder 100 as needed. Here, the removable storage medium may include a CD-ROM, PC-CARD, memory card, floppy disk, magnetic tape, and network component.
제어부(120)는 복수의 원소를 포함하는 암호키를 기초로 데이터 크기를 지시하는 블록 단위를 산출할 수 있다. 여기서, 상기 암호키는, 알파벳, 숫자 및 특수문자 중 적어도 하나를 원소로 포함하고, 상기 암호키에 포함된 원소는 서로 다를 수 있다. 복수의 암호키 및 상기 복수의 암호키와 관련된 고유키가 사전에 생성되어 저장되고, 상기 암호키는 상기 저장된 복수의 암호키에서 선택될 수 있다. 상기 암호키는 통신부(100)가 수신한 것일 수 잇고, 저장부(130)에 사전에 저장된 것일 수 있다.The control unit 120 may calculate a block unit indicating the data size based on an encryption key containing a plurality of elements. Here, the encryption key includes at least one of alphabets, numbers, and special characters as an element, and the elements included in the encryption key may be different. A plurality of encryption keys and unique keys related to the plurality of encryption keys are generated and stored in advance, and the encryption key can be selected from the stored encryption keys. The encryption key may be received by the communication unit 100 or may be previously stored in the storage unit 130.
암호키 데이터베이스encryption key database
설명 및 이해를 용이하게 하기 위하여 암호키는 기본적으로 대한민국의 로또 시스템과 같이 번호를 이용한 인증키로 만들 수 있다. 일부 실시예로, 456으로 번호를 생성하여 총 8,303,765,625 개의 키를 만들어 암호키 데이터베이스(DB)에 보관할 수 있고, 번호의 개수를 하나만 더 확장하면 총 376,669,453,125개의 암호화 방식을 생성할 수 있으며, 만약 암호키의 원소의 개수의 제한을 걸지 않고 최대 6자 길이의 암호키를 생성한다면, 16+26+36+46+56+76........416+426+436+446+456개의 암호화 인코딩 방식이 생성되게 된다.To facilitate explanation and understanding, the encryption key can be basically created as an authentication key using a number, similar to Korea's lotto system. In some embodiments, a total of 8,303,765,625 keys can be created and stored in an encryption key database (DB) by generating the number as 456, and by expanding the number by one more, a total of 376,669,453,125 encryption methods can be created, and if the encryption key If you generate an encryption key of up to 6 characters in length without limiting the number of elements, 16+26+36+46+56+76........416+426+436+446+456 encryption An encoding method is created.
또한 암호키의 원소를 반드시 번호가 아니라 알파벳대문자, 소문자에 대응하는 참조테이블을 기반으로 확장할 경우에는 생성할 수 있는 경우의 수는 무한으로 늘어나게 된다.Additionally, if the elements of the encryption key are expanded based on a reference table corresponding to uppercase and lowercase letters of the alphabet rather than necessarily numbers, the number of cases that can be created increases infinitely.
또한, 암호키의 원소의 나열순서를 오름차순, 내림차순의 순서 없이 생성한다면 훨씬 더 많은 종류의 암호키와 인코딩 방식을 생성할 수 있다.Additionally, if you generate the listing order of the elements of the encryption key in ascending or descending order, you can create many more types of encryption keys and encoding methods.
암호키의 키열을 하나 생성할 때 마다 중복되지 않는 알파벳과 숫자, 특수문자를 섞어 역시 6자 길이의 고유키(Unique Key)로 만들어 상호 대칭되게 저장하는 암호키 DB에 생성한다. 여기서, 암호키 DB는 저장부(130) 또는 다른 서버에 저장될 수 있다. 또한, 암호키 DB는 최초생성 후 백업을 통해 영구보관이 가능하게 된다. 서버가 운영되면서 추가적으로 생성되는 암호키가 존재하지 않으므로 운영과 백업과정에서 발생하는 백업구간 사이의 암호키 손실에 대해 걱정할 필요가 없게 된다. 이것은 매번 암호파일이 생성될 때마다 암호키를 생성하여, 암호키 DB에 보관할 때 발생하는 분실의 위험을 방지하기 위하여, 암호키 DB에 저장될 거라 예상되는 최대파일크기의 개수만큼의 암호키를 사전에 생성해 두는 것이다. 이에 따라 인코더에 올바르지 않은 접속이 감지된 경우 해당키에 대한 인코딩/디코딩 데이터를 DB에서 즉시 삭제하여, 더 이상 요청을 받지 않도록 처리하여 해당 파일을 격리하는 등의 보안 처리를 추가할 수 있다Each time a key string of an encryption key is created, non-redundant alphabets, numbers, and special characters are mixed to create a unique key of 6 characters in length, and it is created in the encryption key DB, which is stored symmetrically. Here, the encryption key DB may be stored in the storage unit 130 or another server. In addition, the encryption key DB can be permanently stored through backup after initial creation. Since there are no additional encryption keys generated as the server operates, there is no need to worry about losing encryption keys between backup sections that occur during operation and backup. This generates an encryption key every time a password file is created, and to prevent the risk of loss that occurs when storing it in the encryption key DB, the number of encryption keys equal to the maximum file size expected to be stored in the encryption key DB is generated. It is created in advance. Accordingly, if an incorrect connection to the encoder is detected, security processing can be added, such as immediately deleting the encoding/decoding data for the key from the DB, processing it to prevent further requests, and isolating the file.
예를 들어, 도 1b에 도시된 [표 1]과 같은 구조의 암호키 및 고유키의 키열들이 생성된다. [표 1]에서는 이해를 돕기 위해 암호키의 원소를 모두 숫자로 처리했고 전체 원소의 개수가 6개인 암호키의 조합으로만 생성했지만, 다른 실시예로 원소의 개수 및 종류에 따라 무제한적인 길이의 암호키를 생성할 수도 있다.For example, key sequences of the encryption key and unique key with the structure shown in Table 1 shown in FIG. 1B are generated. In [Table 1], to facilitate understanding, all elements of the encryption key were treated as numbers and only generated as a combination of encryption keys with a total number of elements of 6. However, in another embodiment, an encryption key of unlimited length depending on the number and type of elements is created. You can also generate an encryption key.
제어부(120)는 상기 복수의 원소 각각의 값의 합을 상기 블록 단위로 산출할 수 있다. 상기 암호키에 포함된 원소의 값은, 원소의 크기 또는 원소에 매핑된 값일 수 있다. 상기 원소의 크기는, 바이트(byte) 단위를 내림차순으로 인코딩한 크기 또는 오름차순으로 인코딩한 크기일 수 있다. 참조테이블에 원소 및 원소와 매핑된 값이 저장되고, 상기 참조테이블에서 상기 원소에 매핑된 값이 검색될 수 있다.The control unit 120 may calculate the sum of the values of each of the plurality of elements in units of the block. The value of the element included in the encryption key may be the size of the element or a value mapped to the element. The size of the element may be a size encoded in descending order of byte units or a size encoded in ascending order. Elements and values mapped to elements are stored in a reference table, and values mapped to the elements can be searched from the reference table.
예를 들어, 암호키가 [6,7,22,32,35,36] 이라고 할 경우에는, 상기 암호키에 포함된 원소는 6, 7, 22, 32, 35, 36이고, 총 숫자의 합(원소 각각의 값의 합)은 138이 되고, 제어부(120)는 138을 상기 블록 단위로 산출할 수 있다.For example, if the encryption key is [6,7,22,32,35,36], the elements included in the encryption key are 6, 7, 22, 32, 35, 36, and the sum of the total numbers (The sum of the values of each element) is 138, and the control unit 120 can calculate 138 in the block unit.
제어부(120)는 상기 복수의 원소의 개수 및 상기 복수의 원소 각각의 값을 기초로 원본 파일을 상기 산출한 블록 단위로 암호화할 수 있다. 상기 원본 파일은 통신부(100)가 수신한 것일 수 있고, 저장부(130)에 사전에 저장된 것일 수 있다. 또한 제어부(120)는 통신부(100)가 상기 원본 파일을 수신하는 동안에, 상기 원본 파일이 수신된 부분에 대해서 상기 산출한 블록 단위로 암호화할 수 있다. The control unit 120 may encrypt the original file in units of the calculated blocks based on the number of the plurality of elements and the value of each of the plurality of elements. The original file may be received by the communication unit 100 or may be previously stored in the storage unit 130. Additionally, while the communication unit 100 is receiving the original file, the control unit 120 may encrypt the received portion of the original file in units of the calculated blocks.
제어부(120)는 저장되거나 수신된 암호키를 변환하여 사용할 수 있다. 즉 제어부(120)는 변환된 암호키를 기초로 데이터 크기를 지시하는 블록 단위를 산출할 수 있고, 상기 변환된 암호키에 포함된 복수의 원소의 개수 및 상기 복수의 원소 각각의 값을 기초로 원본 파일을 상기 산출한 블록 단위로 암호화할 수 있다. 예를 들면, 실제 암호키가 [6 7 22 32 35 36]이더라도, 제어부(120)는 숫자의 대칭되는 숫자(39,38,23,10,9), -최대숫자가 45 이므로 45-{6,7,22,32,35,36}-, 로 치환된 암호키를 각각 인코딩/디코딩에 사용하거나, 현재 수신된 암호키의 원소의 byte를 내림차순으로 인코딩 하는 것을 오름차순으로 인코딩 하는 등의 방법으로 치환된 암호키를 각각 인코딩/디코딩에 사용할 수 있다.The control unit 120 can convert and use the stored or received encryption key. That is, the control unit 120 can calculate a block unit indicating the data size based on the converted encryption key, and based on the number of a plurality of elements included in the converted encryption key and the value of each of the plurality of elements. The original file can be encrypted in units of blocks calculated above. For example, even if the actual encryption key is [6 7 22 32 35 36], the control unit 120 uses symmetrical numbers (39,38,23,10,9), -since the maximum number is 45, 45-{6 ,7,22,32,35,36}-, use the substituted encryption key for encoding/decoding, respectively, or encode the bytes of the elements of the currently received encryption key in descending order and then encode them in ascending order. The replaced encryption key can be used for encoding/decoding, respectively.
도 2는 본 발명의 일시예에 따른 블록 단위 암호화 방법의 수행과정을 도시한 도면이다.Figure 2 is a diagram illustrating the execution process of a block-level encryption method according to an embodiment of the present invention.
도 2를 참조하면, 제어부(120)는 상기 복수의 원소 각각과 관련된 복수의 원소 배열을 생성한다(S100). 예를 들어, 암호키가 [6,7,22,32,35,36] 이라고 할 경우에는, 제어부(120)는 하기와 같이 6개의 원소 배열 a, b, c, d, e 및 f를 생성할 수 있다. 단, 본 예에서 원소 배열 a, b, c, d, e 및 f는 바이트(byte) 단위 배열로 생성된다. Referring to FIG. 2, the control unit 120 generates a plurality of element arrays related to each of the plurality of elements (S100). For example, if the encryption key is [6,7,22,32,35,36], the control unit 120 generates an array of six elements a, b, c, d, e, and f as follows. can do. However, in this example, the element arrays a, b, c, d, e, and f are created as byte-unit arrays.
byte[6] a;//암호키 첫 번째 숫자 ‘6’에 대한 배열byte[6] a;//Array for the first number ‘6’ of the encryption key
byte[7] b;//암호키 두 번째 숫자 ‘7’에 대한 배열byte[7] b;//Array for the second number ‘7’ of the encryption key
byte[22] c;//암호키 세 번째 숫자 ‘22’에 대한 배열byte[22] c;//Array for the third number ‘22’ of the encryption key
byte[32] d;//암호키 네 번째 숫자 ‘32’에 대한 배열byte[32] d;//Array for the fourth number ‘32’ of the encryption key
byte[35] e;//암호키 다섯 번째 숫자 ‘35’에 대한 배열byte[35] e;//Array for the fifth number ‘35’ of the encryption key
byte[36] f;//암호키 여섯 번째 숫자 ‘36’에 대한 배열byte[36] f;//Array for the sixth number ‘36’ of the encryption key
제어부(120)는 상기 블록 단위와 대응하는 크기의 데이터를 저장하기 위한 합계 배열을 생성한다(S110). 예를 들어, 암호키가 [6,7,22,32,35,36] 이라고 할 경우에는, 단계 S110에서 제어부(120)는 하기와 같이 138 블록 단위의 데이터를 저장하기 위한 합계 배열 sum을 생성할 수 있다.The control unit 120 creates a total array for storing data of a size corresponding to the block unit (S110). For example, if the encryption key is [6, 7, 22, 32, 35, 36], in step S110, the control unit 120 generates a sum array sum for storing data in units of 138 blocks as follows. can do.
byte[138] sum//변환된 138byte의 블록byte[138] sum//Converted block of 138 bytes
제어부(120)는 상기 합계 배열 및 상기 복수의 원소 배열을 이용하여 상기 원본 파일의 데이터를 상기 블록 단위로 재배열한다(S120). 여기서, 상기 복수의 원소 배열은, 관련된 원소의 값과 대응하는 크기를 갖거나 상기 블록 단위 및 상기 관련된 원소의 값의 차이값과 대응하는 크기를 가질 수 있다. The control unit 120 rearranges the data of the original file in units of blocks using the sum array and the plurality of element arrays (S120). Here, the plurality of element arrays may have a size that corresponds to the value of the related element or may have a size that corresponds to the difference between the block unit and the value of the related element.
도 3a는 본 발명의 일시예에 따른 재배열 방법의 수행과정을 도시한 도면이다.Figure 3a is a diagram showing the process of performing a rearrangement method according to an embodiment of the present invention.
도 3a를 참조하면, 제어부(120)는 상기 블록 단위만큼의 상기 원본 파일에 저장된 데이터를 상기 복수의 원소 배열에 나누어 저장한다(S200). 일부 실시예로, 제어부(120)는 상기 복수의 원소 배열과 관련된 원소가 상기 암호키에 포함된 순번 순으로 상기 데이터를 상기 복수의 원소 배열에 나누어 저장할 수 있다. 예를 들어, 전술된 예와 같이, 암호키가 [6,7,22,32,35,36] 이고, 합계 배열 sum, 원소 배열 a, b, c, d, e 및 f가 생성된 경우에는, 원본 파일의 데이터를 a 배열부터 순차적으로 저장하기 시작한다. 통신부(110)가 원본 파일을 수신하는 경우에는, 제어부(120)는 총 138개의 바이트가 수신되는 동안 a배열부터 바이트를 저장하기 시작한다.Referring to FIG. 3A, the control unit 120 divides the data stored in the original file in blocks into the plurality of element arrays and stores them (S200). In some embodiments, the control unit 120 may divide the data into the plurality of element arrays and store them in the order in which elements related to the plurality of element arrays are included in the encryption key. For example, as in the example above, if the encryption key is [6,7,22,32,35,36] and the sum array sum and element arrays a, b, c, d, e, and f are created, , data in the original file begins to be stored sequentially starting from array a. When the communication unit 110 receives the original file, the control unit 120 starts storing bytes from array a while a total of 138 bytes are received.
일부 실시예로, 제어부(120)는 상기 복수의 원소 배열과 관련된 원소가 상기 암호키에 포함된 순번의 역순으로 상기 데이터를 상기 복수의 원소 배열에 나누어 저장할 수 있다. In some embodiments, the control unit 120 may divide the data into the plurality of element arrays and store them in the reverse order of the order in which elements related to the plurality of element arrays are included in the encryption key.
일부 실시예로, 제어부(120)는 상기 복수의 원소 배열과 관련된 원소의 값이 큰 순으로 상기 데이터를 상기 복수의 원소 배열에 나누어 저장할 수 있다. In some embodiments, the control unit 120 may divide the data into the plurality of element arrays and store them in the order of the values of elements related to the plurality of element arrays.
일부 실시예로, 제어부(120)는 상기 복수의 원소 배열과 관련된 원소의 값이 작은 순으로 상기 데이터를 상기 복수의 원소 배열에 나누어 저장할 수 있다.In some embodiments, the control unit 120 may divide the data into the plurality of element arrays and store them in descending order of the values of elements related to the plurality of element arrays.
제어부(120)는 상기 합계 배열에 상기 복수의 원소 배열 각각의 일부 데이터를 돌아가며 저장한다(S210). 여기서, 상기 일부 데이터는, 바이트(byte) 단위일 수 있고, 2 바이트 단위 또는 2 바이트 단위 이상일 수 있다. The control unit 120 alternately stores some data of each of the plurality of element arrays in the sum array (S210). Here, some of the data may be in byte units, 2 bytes, or more than 2 bytes.
상기 일부 데이터가 바이트 단위인 경우에는, 상기 합계 배열 및 상기 복수의 원소 배열은, 바이트(byte) 단위 배열일 수 있으며, 상기 원소 배열과 관련된 원소의 값과 대응하는 크기 또는 상기 블록 단위 및 상기 관련된 원소의 값의 차이값과 대응하는 크기만큼 상기 원본 파일에 저장된 데이터가 상기 원소 배열에 저장될 수 있다. When the partial data is in byte units, the total array and the plurality of element arrays may be a byte-unit array, and may have a size corresponding to the value of the element related to the element array or the block unit and the related Data stored in the original file may be stored in the element array by a size corresponding to the difference value of the element values.
일부 실시예로, 제어부(120)는 상기 복수의 원소 배열과 관련된 원소가 상기 암호키에 포함된 순번 순으로 상기 합계 배열에 상기 복수의 원소 배열 각각의 일부 데이터를 돌아가며 저장할 수 있다. In some embodiments, the control unit 120 may alternately store some data of each of the plurality of element arrays in the total array in the order in which elements related to the plurality of element arrays are included in the encryption key.
일부 실시예로, 제어부(120)는 상기 복수의 원소 배열과 관련된 원소가 상기 암호키에 포함된 순번의 역순으로 상기 합계 배열에 상기 복수의 원소 배열 각각의 일부 데이터를 돌아가며 저장할 수 있다. In some embodiments, the control unit 120 may alternately store some data of each of the plurality of element arrays in the total array in the reverse order of the order in which elements related to the plurality of element arrays are included in the encryption key.
일부 실시예로, 제어부(120)는 상기 복수의 원소 배열과 관련된 원소의 값이 큰 순으로 상기 합계 배열에 상기 복수의 원소 배열 각각의 일부 데이터를 돌아가며 저장할 수 있다. In some embodiments, the control unit 120 may alternately store some data of each of the plurality of element arrays in the total array in order of increasing value of the elements related to the plurality of element arrays.
일부 실시예로, 제어부(120)는 상기 복수의 원소 배열과 관련된 원소의 값이 작은 순으로 상기 합계 배열에 상기 복수의 원소 배열 각각의 일부 데이터를 돌아가며 저장할 수 있다. In some embodiments, the control unit 120 may alternately store some data of each of the plurality of element arrays in the total array in descending order of the values of elements related to the plurality of element arrays.
단계 S210은 후술될 단계 S211, 단계 S213 및 단계 S217를 포함할 수 있다.Step S210 may include steps S211, S213, and S217, which will be described later.
제어부(120)는 상기 합계 배열에 원소 배열의 일부 데이터를 돌아가며 저장한다(S211). 예를 들어, 전술된 예와 같이, 암호키가 [6,7,22,32,35,36] 이고, 합계 배열 sum, 원소 배열 a, b, c, d, e 및 f가 생성되고 상기 일부 데이터가 바이트 단위이고, 상기 암호키에 포함된 순번 순으로 상기 합계 배열에 상기 복수의 원소 배열 각각의 일부 데이터를 돌아가며 저장하는 경우에는, 도 3b에 도시된 [표 2]와 원소 배열 a, b, c, d, e 및 f 순으로 각 원소 배열에서 처음부터 각각 한 바이트씩 돌아가면서 합계 배열 sum에 담는다.The control unit 120 alternately stores some data of the element array in the sum array (S211). For example, as in the example above, if the encryption key is [6,7,22,32,35,36], a sum array sum, and element arrays a, b, c, d, e, and f are created, and some of the above When the data is in byte units and some data of each of the plurality of element arrays are stored in turn in the sum array in the order included in the encryption key, [Table 2] and element arrays a and b shown in FIG. 3B , c, d, e, and f are stored in the sum array sum, one byte each from the beginning, in the order of each element array.
제어부(120)는 원소 배열에 상기 합계 배열에 저장되지 않고 남은 데이터가 있는지 여부를 확인한다(S213). 상기 확인 결과 상기 남은 데이터가 존재하는 경우에는, 제어부(120)는 다음 원소 배열에 대해 단계 S211을 수행한다.The control unit 120 checks whether there is data remaining in the element array that is not stored in the sum array (S213). If the remaining data exists as a result of the confirmation, the control unit 120 performs step S211 for the next element arrangement.
상기 남은 데이터가 없는 경우에는, 제어부(120)는 상기 남은 데이터가 없는 원소 배열의 데이터의 저장이 중지되도록 원소 배열을 제외한다(S215). 즉, 제어부(120)는 특정 원소 배열에 남는 데이터가 없는 경우에는, 단계 S215를 수행하여 자동으로 다음 배열로 넘어가도록 할 수 있다.If there is no remaining data, the control unit 120 excludes the element array so that storage of data in the element array without the remaining data is stopped (S215). That is, if there is no data remaining in a specific element array, the control unit 120 can automatically move to the next array by performing step S215.
예를 들어, 원소 배열 a는 총 6개의 바이트 배열을 가지고 있으므로 도 3b에 도시된 [표 2]의 마지막 sum[30] =a[5]를 기준으로 원소 배열 a에는 더 이상의 데이터가 존재하지 않으므로 도 3c에 도시된 [표 3]과 같이 넘어가게 된다. 원소 배열 b도 데이터가 총 7개 이므로, [표 3]과 같이 b[6]이 후에는 더 이상 합계 배열 sum에 추가되지 않는다. For example, element array a has a total of 6 byte arrays, so based on the last sum[30] =a[5] in [Table 2] shown in Figure 3b, there is no more data in element array a. It proceeds as shown in [Table 3] shown in Figure 3c. Since the element array b also has a total of 7 data, as shown in [Table 3], b[6] is no longer added to the total array sum.
제어부(120)는 단계 S215에서 제외되지 않고 남은 원소 배열이 존재하는지 여부를 확인한다(S217). 상기 확인 결과 남은 원소 배열이 존재하는 경우에는, 제어부(120)는 남은 원소 배열 중 다음 순번의 원소 배열에 대해 단계 S211을 수행한다. 제어부(120)는 단계 S217를 수행하여 [표 3]과 같이 남은 데이터가 없는 원소 배열은 건너뛰고 아직 데이터가 남은 원소 배열에서 순차적으로 끝까지 담는다. 최종적으로 "sum[137] = f[35]"가 수행되면, 합계 배열 sum에 138byte 크기(상기 산출된 블록 단위)의 원본 파일의 데이터가 재배열되어 저장된다.The control unit 120 checks whether there is a remaining element array that was not excluded in step S215 (S217). If there is a remaining element array as a result of the confirmation, the control unit 120 performs step S211 for the next element array among the remaining element arrays. The control unit 120 performs step S217, skips the element array with no remaining data as shown in [Table 3], and sequentially stores the element array that still has data until the end. Finally, when "sum[137] = f[35]" is performed, the data of the original file with a size of 138 bytes (in block units calculated above) is rearranged and stored in the sum array sum.
단계 S217의 확인 결과 모든 원소 배열에 상기 합계 배열에 저장되지 않고 남은 데이터가 없는 경우에는, 제어부(120)는 상기 합계 배열을 암호파일에 저장한다(S220). 예를 들어, 최종적으로 "sum[137] = f[35]"가 수행되면, 제어부(120)는 단계 S220를 진행할 수 있다. As a result of checking in step S217, if there is no data remaining in all element arrays that is not stored in the sum array, the control unit 120 stores the sum array in the password file (S220). For example, if “sum[137] = f[35]” is finally performed, the control unit 120 may proceed to step S220.
일부 실시예로, 도 2에 도시된 단계 S120에서, 제어부(120)는 블록 단위로 도 3a에 도시된 재배열 방법을 반복하여 수행할 수 있다. 반복 진행될 때마다 단계 S200에서 원본 파일의 다음 블록의 데이터가 복수의 원소 배열에 저장될 수 있고 단계 S220에서 전술된 암호파일에 블록 단위가 순차적으로 저장될 수 있다. 예를 들어, 블록 단위가 135byte인 경우에는, 암호파일은 도 3d에 도시된 구조를 가질 수 있다. Block0은 재배열 방법이 첫번째 실행된 후에 단계 S220에서 암호파일에 저장된 데이터이고, Block1은 재배열 방법이 두번째 실행된 후에 단계 S220에서 암호파일에 저장된 데이터이며, Block2는 재배열 방법이 세번째 실행된 후에 단계 S220에서 암호파일에 저장된 데이터이고, Block3은 재배열 방법이 네번째 실행된 후에 단계 S220에서 암호파일에 저장된 데이터이며, Block4는 재배열 방법이 첫 번째 실행된 후에 단계 S220에서 암호파일에 저장된 데이터이다.In some embodiments, in step S120 shown in FIG. 2, the control unit 120 may repeatedly perform the rearrangement method shown in FIG. 3A on a block basis. Each time the process is repeated, data of the next block of the original file may be stored in a plurality of element array in step S200, and block units may be sequentially stored in the above-described encryption file in step S220. For example, if the block unit is 135 bytes, the password file may have the structure shown in FIG. 3D. Block0 is the data stored in the password file in step S220 after the rearrangement method is executed the first time, Block1 is the data stored in the password file in step S220 after the rearrangement method is executed the second time, and Block2 is the data stored in the password file in step S220 after the rearrangement method is executed the third time. Block3 is the data stored in the password file in step S220 after the rearrangement method is executed for the fourth time, and Block4 is the data stored in the password file in step S220 after the rearrangement method is executed for the first time. .
일부 실시예로, 도 2에 도시된 단계 S120는 도 3a에서 전술된 단계 S200 및 단계 S210을 포함할 수 있다. 이러한 실시예에서, 제어부(120)는 블록 단위로 S110 및 S120을 반복하여 수행할 수 있다. 반복 진행될 때마다 새로운 합계 배열이 생성되고, 단계 S200에서 원본 파일의 다음 블록의 데이터가 복수의 원소 배열에 저장될 수 있고, 단계 S220는 진행이 요구되지 않을 수 있다. 반복 진행되는 수만큼 합계 배열이 생성되고 유지될 수 있다. 예를 들어, 반복 진행되는 수가 100이고, 산출된 블록 단위가 138bytes인 경우에는, 138byte의 크기를 갖는 합계배열 sum이 100개 생성되며, 암호화된 원본 파일의 데이터는 100개의 합계배열 sum에 저장된다. 즉 암호화된 원본 파일의 데이터는 sum[100][138] bytes을 크기를 갖는 데이터배열에 도 3d와 같이 블록 단위로 저장된다. In some embodiments, step S120 shown in FIG. 2 may include steps S200 and S210 described above in FIG. 3A. In this embodiment, the control unit 120 may repeatedly perform S110 and S120 in block units. A new total array is created each time it is repeated, and in step S200, data of the next block of the original file may be stored in a plurality of element array, and step S220 may not be required. A total array can be created and maintained as many times as the number of repetitions. For example, if the number of repetitions is 100 and the calculated block unit is 138 bytes, 100 sum arrays with a size of 138 bytes are created, and the data of the encrypted original file is stored in 100 sum arrays. . That is, the data of the encrypted original file is stored in blocks as shown in Figure 3d in a data array with a size of sum[100][138] bytes.
도 4a은 본 발명의 일실시예에 따른 인코딩 방법의 수행과정을 도시한 도면이다.Figure 4a is a diagram showing the execution process of the encoding method according to an embodiment of the present invention.
도 4a를 참조하면, 제어부(120)는 복수의 원소를 포함하는 암호키를 기초로 데이터 크기를 지시하는 블록 단위를 산출한다(S300). 여기서, 상기 암호키는, 알파벳, 숫자 및 특수문자 중 적어도 하나를 원소로 포함하고, 상기 암호키에 포함된 원소는 서로 다를 수 있다. 복수의 암호키 및 상기 복수의 암호키와 관련된 고유키가 사전에 생성되어 저장되고, 상기 암호키는 상기 저장된 복수의 암호키에서 선택될 수 있다. 일예로, 상기 암호키는 전술된 암호키 데이터베이스로부터 선택될 수 있고, 데이터베이스로부터 선택된 암호키가 변환된 것을 수 있다. 일예로, 상기 암호키는 수신된 것일 수 있고, 수신된 암호키가 변환된 것일 수 있다.Referring to FIG. 4A, the control unit 120 calculates a block unit indicating the data size based on an encryption key including a plurality of elements (S300). Here, the encryption key includes at least one of alphabets, numbers, and special characters as an element, and the elements included in the encryption key may be different. A plurality of encryption keys and unique keys related to the plurality of encryption keys are generated and stored in advance, and the encryption key can be selected from the stored encryption keys. For example, the encryption key may be selected from the above-described encryption key database, or the encryption key selected from the database may be converted. For example, the encryption key may be received, or the received encryption key may be converted.
단계 S300에서, 제어부(120)는 상기 복수의 원소 각각의 값의 합을 상기 블록 단위로 산출할 수 있다. 상기 암호키에 포함된 원소의 값은, 원소의 크기 또는 원소에 매핑된 값일 수 있다. 상기 원소의 크기는, 바이트(byte) 단위를 내림차순으로 인코딩한 크기 또는 오름차순으로 인코딩한 크기일 수 있다. 참조테이블에 원소 및 원소와 매핑된 값이 저장되고, 상기 참조테이블에서 상기 원소에 매핑된 값이 검색될 수 있다.In step S300, the control unit 120 may calculate the sum of the values of each of the plurality of elements in units of the block. The value of the element included in the encryption key may be the size of the element or a value mapped to the element. The size of the element may be a size encoded in descending order of byte units or a size encoded in ascending order. Elements and values mapped to elements are stored in a reference table, and values mapped to the elements can be searched from the reference table.
제어부(120)는 상기 복수의 원소의 개수 및 상기 복수의 원소 각각의 값을 기초로 원본 파일을 상기 산출된 블록 단위로 암호화한다(S310). 일부 실시예로, 단계 S310에서, 제어부(120)는 도 2에서 전술된 블록 단위 암호화 방법을 수행할 수 있다.The control unit 120 encrypts the original file in units of the calculated blocks based on the number of the plurality of elements and the value of each of the plurality of elements (S310). In some embodiments, in step S310, the control unit 120 may perform the block-based encryption method described above in FIG. 2.
제어부(120)는 암호파일에 상기 암호화된 원본 파일의 데이터, 상기 원본 파일에 대한 정보 및 상기 암호키와 관련된 고유키를 저장한다(S320). 여기서, 상기 암호화된 원본 파일의 데이터는 실시예에 따라 복수의 합계 배열에 저장된 것일 수 있고, 도 3a에서 전술된 단계 S220의 암호파일에 저장된 것일 수 있다. 상기 암호파일은 단계 S220의 암호파일과 동일하거나 다를 수 있다. 동일한 경우에는, 단계 S320에서 제어부(120)는 단계 S220의 암호파일에 상기 원본 파일에 대한 정보 및 상기 암호키와 관련된 고유키를 추가로 저장할 수 있다. 상기 원본 파일에 대한 정보는, 상기 원본 파일의 파일명 및 상기 원본 파일의 확장자를 포함할 수 있다.The control unit 120 stores the data of the encrypted original file, information about the original file, and a unique key related to the encryption key in an encryption file (S320). Here, the data of the encrypted original file may be stored in a plurality of total arrays depending on the embodiment, or may be stored in the encryption file of step S220 described above in FIG. 3A. The password file may be the same as or different from the password file in step S220. In the same case, in step S320, the control unit 120 may additionally store information about the original file and a unique key related to the encryption key in the encryption file of step S220. Information about the original file may include a file name of the original file and an extension of the original file.
일예로, 단계 S320의 암호파일은 도 4b에 도시된 구조를 가질 수 있다. 도 4b에서는 'Header'가 데이터 배열에 앞에 오고, 'encrypted key'가 맨 뒤에 온다. 'Header'에는 원본파일의 파일명 또는 확장자가 입력되고, 'encrypted key' 에는 사용된 암호키와 관련된 고유키가 입력될 수 있다. 여기서 도 4b는 일예의 구조로, 'header'와 'encrypted key'의 배치는 규정시키기 위함이 아니라 표현하기 위함이므로, 구현하려는 서버, 장비에 따라 사용자가 임의대로 위치나 데이터를 이동, 변형될 수 있다. 추가 예로, 암호파일은 도 4c에 도시된 구조 또는 도 4d에 도시된 구조를 가질 수 있다. 도 4c에 도시된 구조에서는 데이터배열이 맨 앞에 존재하고, 뒤에 'FileHeaderInfo' 및 'encrypted key'가 온다. 도 4d에 도시된 구소에서는 'encrypted key'가 맨 앞에 오고, 뒤에 'FileHeaderInfo' 및 데이터배열이 할당된다. 'FileHeaderInfo'에는 암호화된 원본 파일에 대한 정보가 입력된다.As an example, the password file of step S320 may have the structure shown in FIG. 4B. In Figure 4b, 'Header' comes first in the data array, and 'encrypted key' comes last. The file name or extension of the original file can be entered in 'Header', and the unique key related to the encryption key used can be entered in 'encrypted key'. Here, Figure 4b is an example structure, and the arrangement of 'header' and 'encrypted key' is not for regulation but for expression, so the user can arbitrarily move or modify the location or data depending on the server and equipment to be implemented. there is. As a further example, the password file may have the structure shown in FIG. 4C or the structure shown in FIG. 4D. In the structure shown in Figure 4c, the data array is at the beginning, followed by 'FileHeaderInfo' and 'encrypted key'. In the structure shown in Figure 4d, 'encrypted key' comes first, followed by 'FileHeaderInfo' and data array. Information about the encrypted original file is entered into 'FileHeaderInfo'.
본 발명에서 블록 단위로 트위스트된 합계 배열의 길이는 주어지는 암호키의 총합의 숫자의 길이에 따라 달라지므로, 본 발명은 변형 방식이 매우 다양하게 생성될 수 있는 장점이 있다. 전술된 예에서 암호키는 [6,7,22,32,35,36]의 숫자를 가지고 있으므로 총 138byte를 하나의 블록 단위로 정의했지만, 만약 인코딩을 위해 암호키에 할당된 숫자가 [1,2,3,4,5,6] 이라고 했을 경우 하나의 블록 단위의 길이는 21(1+2+3+4+5+6 = 21)이 되는 것이다.In the present invention, the length of the twisted sum array in block units varies depending on the length of the total number of given encryption keys, so the present invention has the advantage that a wide variety of transformation methods can be generated. In the above example, the encryption key has the numbers [6,7,22,32,35,36], so a total of 138 bytes was defined as one block, but if the number assigned to the encryption key for encoding is [1, 2,3,4,5,6], the length of one block unit is 21 (1+2+3+4+5+6 = 21).
도 5는 본 발명의 일실시예에 따른 인코딩 시스템의 구성을 도시한 구성도이다.Figure 5 is a configuration diagram showing the configuration of an encoding system according to an embodiment of the present invention.
도 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) 네트워크 등이 포함되나 이에 한정되지는 않는다.Referring to FIG. 5, the encoding system 1 according to the present invention may include an encoder 10, an information providing server 20, and a user terminal 30. The encoder 10, the information providing server 20, and the user terminal 30 may be connected to the network 2. Network 2 refers to a connection structure that allows information exchange between nodes, such as a plurality of terminals and servers. Examples of such networks include RF, 3rd Generation Partnership Project (3GPP) network, and Long Term (LTE) network. Evolution) network, 5GPP (5th Generation Partnership Project) network, WIMAX (World Interoperability for Microwave Access) network, 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 network, ZigBee, NFC network, satellite broadcasting network, analog broadcasting network, DMB (Digital Multimedia Broadcasting (Multimedia Broadcasting) networks, etc. are included, but are not limited thereto.
인코더(10)는 도 1a에 도시된 인코더(100)를 포함할 수 있다.Encoder 10 may include encoder 100 shown in FIG. 1A.
정보 제공 서버(20)는 암호키를 생성하고, 생성된 암호키를 저장하며, 저장된 암호키를 인코더(100)에 전송할 수 있다. 여기서, 상기 암호키는, 알파벳, 숫자 및 특수문자 중 적어도 하나를 원소로 포함하고, 상기 암호키에 포함된 원소는 서로 다를 수 있다. 복수의 암호키 및 상기 복수의 암호키와 관련된 고유키가 사전에 생성되어 정보 제공 서버(20)에 저장될 수 있다. 정보 제공 서버(20)는 인코더(100)에 전송할 암호키를 상기 저장된 복수의 암호키에서 선택할 수 있다. 정보 제공 서버(20)는 전술된 암호키 데이터베이스를 저장할 수 있고, 저장된 암호키 데이터베이스로부터 암호키를 선택하고, 선택된 암호키를 인코더(100)에 전송할 수 있다. The information providing server 20 may generate an encryption key, store the generated encryption key, and transmit the stored encryption key to the encoder 100. Here, the encryption key includes at least one of alphabets, numbers, and special characters as an element, and the elements included in the encryption key may be different. A plurality of encryption keys and a unique key related to the plurality of encryption keys may be generated in advance and stored in the information providing server 20. The information providing server 20 can select an encryption key to be transmitted to the encoder 100 from the plurality of stored encryption keys. The information providing server 20 may store the above-described encryption key database, select an encryption key from the stored encryption key database, and transmit the selected encryption key to the encoder 100.
정보 제공 서버(20)는 통신 기능을 갖는 전자 장치일 수 있고, 상기 전자 장치는 데스크톱, 랩톱, 태블릿, 미니 컴퓨터, 노트북, 핸드헬드 컴퓨터 등의 퍼스널 컴퓨터 시스템, 브로드캐스트 및 스트리밍 서버, 파일 서버, 클라우드 서버 등의 서버용 컴퓨터 시스템일 수 있고, 내비게이터 또는 IPTV 및 Smart TV 등의 디지털 TV일 수 있고, 휴대폰, 스마트 폰(smart phone), 디지털방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 빔프로젝터 및 감시카메라일 수 있지만 이들로 한정되는 것은 아니다.The information provision server 20 may be an electronic device with a communication function, and the electronic device may be a personal computer system such as a desktop, laptop, tablet, mini computer, notebook, or handheld computer, a broadcast and streaming server, a file server, It may be a server computer system such as a cloud server, a navigator or a digital TV such as IPTV and Smart TV, a mobile phone, a smart phone, a digital broadcasting terminal, a Personal Digital Assistant (PDA), or a Portable Multimedia Player (PMP). ), beam projectors, and surveillance cameras, but are not limited to these.
사용자 단말기(30)는 원본 파일을 인코더(100)에 전송할 수 있다. 사용자 단말기(30)는 데스크톱, 랩톱, 태블릿, 미니 컴퓨터, 노트북, 핸드헬드 컴퓨터 등의 퍼스널 컴퓨터 시스템, 브로드캐스트 및 스트리밍 서버, 파일 서버, 클라우드 서버 등의 서버용 컴퓨터 시스템일 수 있고, 내비게이터 또는 IPTV 및 Smart TV 등의 디지털 TV일 수 있고, 휴대폰, 스마트 폰(smart phone), 디지털방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 빔프로젝터 및 감시카메라일 수 있지만 이들로 한정되는 것은 아니다.The user terminal 30 may transmit the original file to the encoder 100. The user terminal 30 may be a personal computer system such as a desktop, laptop, tablet, mini computer, notebook, or handheld computer, or a server computer system such as a broadcast and streaming server, a file server, or a cloud server, and may be a navigator or IPTV and It may be a digital TV such as Smart TV, a mobile phone, a smart phone, a digital broadcasting terminal, a PDA (Personal Digital Assistants), a PMP (Portable Multimedia Player), a beam projector, and a surveillance camera, but is limited to these. no.
도 6은 본 발명의 일실시예에 따른 인코딩 방법의 수행과정을 도시한 도면이다.Figure 6 is a diagram showing the execution process of the encoding method according to an embodiment of the present invention.
도 6을 참조하면, 통신부(110)는 사용자 단말기(30)로부터 원본 파일을 수신한다(S400).Referring to FIG. 6, the communication unit 110 receives the original file from the user terminal 30 (S400).
제어부(120)는 복수의 원소를 포함하는 암호키를 기초로 데이터 크기를 지시하는 블록 단위를 산출한다(S410). 여기서, 상기 암호키는, 알파벳, 숫자 및 특수문자 중 적어도 하나를 원소로 포함하고, 상기 암호키에 포함된 원소는 서로 다를 수 있다. 복수의 암호키 및 상기 복수의 암호키와 관련된 고유키가 사전에 생성되어 저장되고, 상기 암호키는 상기 저장된 복수의 암호키에서 선택될 수 있다. 일예로, 상기 암호키는 전술된 암호키 데이터베이스로부터 선택될 수 있고, 데이터베이스로부터 선택된 암호키가 변환된 것을 수 있다. 일예로, 상기 암호키는 수신된 것일 수 있고, 수신된 암호키가 변환된 것일 수 있다.The control unit 120 calculates a block unit indicating the data size based on an encryption key containing a plurality of elements (S410). Here, the encryption key includes at least one of alphabets, numbers, and special characters as an element, and the elements included in the encryption key may be different. A plurality of encryption keys and unique keys related to the plurality of encryption keys are generated and stored in advance, and the encryption key can be selected from the stored encryption keys. For example, the encryption key may be selected from the above-described encryption key database, or the encryption key selected from the database may be converted. For example, the encryption key may be received, or the received encryption key may be converted.
단계 S410에서, 제어부(120)는 상기 복수의 원소 각각의 값의 합을 상기 블록 단위로 산출할 수 있다. 상기 암호키에 포함된 원소의 값은, 원소의 크기 또는 원소에 매핑된 값일 수 있다. 상기 원소의 크기는, 바이트(byte) 단위를 내림차순으로 인코딩한 크기 또는 오름차순으로 인코딩한 크기일 수 있다. 참조테이블에 원소 및 원소와 매핑된 값이 저장되고, 상기 참조테이블에서 상기 원소에 매핑된 값이 검색될 수 있다. In step S410, the control unit 120 may calculate the sum of the values of each of the plurality of elements in units of the block. The value of the element included in the encryption key may be the size of the element or a value mapped to the element. The size of the element may be a size encoded in descending order of byte units or a size encoded in ascending order. Elements and values mapped to elements are stored in a reference table, and values mapped to the elements can be searched from the reference table.
제어부(120)는 상기 복수의 원소의 개수 및 상기 복수의 원소 각각의 값을 기초로 단계 S400에서 수신된 원본 파일을 상기 산출된 블록 단위로 암호화한다(S420). 상기 원본 파일이 수신되는 동안에, 단계 S420가 진행될 수 있다. 일부 실시예로, 도 3a에서 전술된 단계 S420에서, 제어부(120)는 도 2에서 전술된 블록 단위 암호화 방법을 수행할 수 있다.The control unit 120 encrypts the original file received in step S400 in units of the calculated blocks based on the number of elements and the values of each of the plurality of elements (S420). While the original file is being received, step S420 may proceed. In some embodiments, in step S420 described above in FIG. 3A, the control unit 120 may perform the block-based encryption method described above in FIG. 2.
제어부(120)는 암호파일에 상기 암호화된 원본 파일의 데이터, 상기 원본 파일에 대한 정보 및 상기 암호키와 관련된 고유키를 저장한다(S430). 여기서, 상기 암호화된 원본 파일의 데이터는 실시예에 따라 복수의 합계 배열에 저장된 것일 수 있고, 단계 S220의 암호파일에 저장된 것일 수 있다. 상기 암호파일은 단계 S220의 암호파일과 동일하거나 다를 수 있다. 동일한 경우에는, 단계 S430에서 제어부(120)는 단계 S220의 암호파일에 상기 원본 파일에 대한 정보 및 상기 암호키와 관련된 고유키를 추가로 저장할 수 있다. 상기 원본 파일에 대한 정보는, 상기 원본 파일의 파일명 및 상기 원본 파일의 확장자를 포함할 수 있다.The control unit 120 stores the data of the encrypted original file, information about the original file, and a unique key related to the encryption key in an encryption file (S430). Here, the data of the encrypted original file may be stored in a plurality of total arrays depending on the embodiment, or may be stored in the encryption file of step S220. The password file may be the same as or different from the password file in step S220. In the same case, in step S430, the control unit 120 may additionally store information about the original file and a unique key related to the encryption key in the encryption file of step S220. Information about the original file may include a file name of the original file and an extension of the original file.
일예로, 단계 S430의 암호파일은 도 4b에 도시된 구조를 가질 수 있다. 도 4b에서는 'Header'가 데이터 배열에 앞에 오고, 'encrypted key'가 맨 뒤에 온다. 'Header'에는 원본파일의 파일명 또는 확장자가 입력되고, 'encrypted key' 에는 사용된 암호키와 관련된 고유키가 입력될 수 있다. 여기서 도 4b는 일예의 구조로, 'header'와 'encrypted key'의 배치는 규정시키기 위함이 아니라 표현하기 위함이므로, 구현하려는 서버, 장비에 따라 사용자가 임의대로 위치나 데이터를 이동, 변형될 수 있다. 추가 예로, 암호파일은 도 4c에 도시된 구조 또는 도 4d에 도시된 구조를 가질 수 있다. 도 4c에 도시된 구조에서는 데이터배열이 맨 앞에 존재하고, 뒤에 'FileHeaderInfo' 및 'encrypted key'가 온다. 도 4d에 도시된 구소에서는 'encrypted key'가 맨 앞에 오고, 뒤에 'FileHeaderInfo' 및 데이터배열이 할당된다. 'FileHeaderInfo'에는 암호화된 원본 파일에 대한 정보가 입력된다.As an example, the password file of step S430 may have the structure shown in FIG. 4B. In Figure 4b, 'Header' comes first in the data array, and 'encrypted key' comes last. The file name or extension of the original file can be entered in 'Header', and the unique key related to the encryption key used can be entered in 'encrypted key'. Here, Figure 4b is an example structure, and the arrangement of 'header' and 'encrypted key' is not for regulation but for expression, so the user can arbitrarily move or modify the location or data depending on the server and equipment to be implemented. there is. As a further example, the password file may have the structure shown in FIG. 4C or the structure shown in FIG. 4D. In the structure shown in Figure 4c, the data array is at the beginning, followed by 'FileHeaderInfo' and 'encrypted key'. In the structure shown in Figure 4d, 'encrypted key' comes first, followed by 'FileHeaderInfo' and data array. Information about the encrypted original file is entered into 'FileHeaderInfo'.
도 7은 본 발명의 일실시예에 따른 인코딩 방법의 수행과정을 도시한 도면이다.Figure 7 is a diagram showing the execution process of the encoding method according to an embodiment of the present invention.
도 7을 참조하면, 통신부(110)는 사용자 단말기(30)로부터 원본 파일을 수신한다(S500).Referring to FIG. 7, the communication unit 110 receives the original file from the user terminal 30 (S500).
제어부(120)는 상기 원본 파일의 수신이 시작되면, 정보 제공 서버(20)로 암호키의 전송을 요청한다(S510).When reception of the original file begins, the control unit 120 requests transmission of an encryption key to the information provision server 20 (S510).
통신부(110)는 복수의 원소를 포함하는 암호키 및 상기 암호키와 관련된 고유키를 정보 제공 서버(20)로부터 수신한다(S520). 여기서, 상기 암호키는, 알파벳, 숫자 및 특수문자 중 적어도 하나를 원소로 포함하고, 상기 암호키에 포함된 원소는 서로 다를 수 있다. 복수의 암호키 및 상기 복수의 암호키와 관련된 고유키가 사전에 생성되어 저장되고, 상기 암호키는 상기 저장된 복수의 암호키에서 선택될 수 있다. 일예로, 상기 암호키는 전술된 암호키 데이터베이스로부터 선택될 수 있다.The communication unit 110 receives an encryption key containing a plurality of elements and a unique key related to the encryption key from the information providing server 20 (S520). Here, the encryption key includes at least one of alphabets, numbers, and special characters as an element, and the elements included in the encryption key may be different. A plurality of encryption keys and unique keys related to the plurality of encryption keys are generated and stored in advance, and the encryption key can be selected from the stored encryption keys. As an example, the encryption key may be selected from the encryption key database described above.
제어부(120)는 단계 S520에서 수신된 암호키를 기초로 데이터 크기를 지시하는 블록 단위를 산출한다(S530). 일부 실시예로, 제어부(120)는 단계 S520에서 수신된 암호키를 변환하고, 변환된 암호키를 기초로 데이터 크기를 지시하는 블록 단위를 산출할 수 있다.The control unit 120 calculates a block unit indicating the data size based on the encryption key received in step S520 (S530). In some embodiments, the control unit 120 may convert the encryption key received in step S520 and calculate a block unit indicating the data size based on the converted encryption key.
단계 S530에서, 제어부(120)는 상기 복수의 원소 각각의 값의 합을 상기 블록 단위로 산출할 수 있다. 상기 암호키에 포함된 원소의 값은, 원소의 크기 또는 원소에 매핑된 값일 수 있다. 상기 원소의 크기는, 바이트(byte) 단위를 내림차순으로 인코딩한 크기 또는 오름차순으로 인코딩한 크기일 수 있다. 참조테이블에 원소 및 원소와 매핑된 값이 저장되고, 상기 참조테이블에서 상기 원소에 매핑된 값이 검색될 수 있다. 일부 실시예로, 참조테이블은 사전에 저장부(130)에 저장될 수 있고, 단계 S520에서 정보 제공 서버(20)로부터 수신될 수 있다.In step S530, the control unit 120 may calculate the sum of the values of each of the plurality of elements in units of the block. The value of the element included in the encryption key may be the size of the element or a value mapped to the element. The size of the element may be a size encoded in descending order of byte units or a size encoded in ascending order. Elements and values mapped to elements are stored in a reference table, and values mapped to the elements can be searched from the reference table. In some embodiments, the reference table may be stored in the storage unit 130 in advance and may be received from the information providing server 20 in step S520.
제어부(120)는 상기 복수의 원소의 개수 및 상기 복수의 원소 각각의 값을 기초로 단계 S500에서 수신된 원본 파일을 상기 산출된 블록 단위로 암호화한다(S540). 상기 원본 파일이 수신되는 동안에, 단계 S540가 진행될 수 있다. 일부 실시예로, 단계 S540에서, 제어부(120)는 도 2에서 전술된 블록 단위 암호화 방법을 수행할 수 있다.The control unit 120 encrypts the original file received in step S500 in units of the calculated blocks based on the number of the plurality of elements and the value of each of the plurality of elements (S540). While the original file is being received, step S540 may proceed. In some embodiments, in step S540, the control unit 120 may perform the block-based encryption method described above in FIG. 2.
제어부(120)는 암호파일에 상기 암호화된 원본 파일의 데이터, 상기 원본 파일에 대한 정보 및 상기 암호키와 관련된 고유키를 저장한다(S550). 여기서, 상기 암호화된 원본 파일의 데이터는 실시예에 따라 복수의 합계 배열에 저장된 것일 수 있고, 도 3a에서 전술된 단계 S220의 암호파일에 저장된 것일 수 있다. 상기 암호파일은 단계 S220의 암호파일과 동일하거나 다를 수 있다. 동일한 경우에는, 단계 S550에서 제어부(120)는 단계 S220의 암호파일에 상기 원본 파일에 대한 정보 및 상기 암호키와 관련된 고유키를 추가로 저장할 수 있다. 상기 원본 파일에 대한 정보는, 상기 원본 파일의 파일명 및 상기 원본 파일의 확장자를 포함할 수 있다.The control unit 120 stores the data of the encrypted original file, information about the original file, and a unique key related to the encryption key in an encryption file (S550). Here, the data of the encrypted original file may be stored in a plurality of total arrays depending on the embodiment, or may be stored in the encryption file of step S220 described above in FIG. 3A. The password file may be the same as or different from the password file in step S220. In the same case, in step S550, the control unit 120 may additionally store information about the original file and a unique key related to the encryption key in the encryption file of step S220. Information about the original file may include a file name of the original file and an extension of the original file.
일예로, 단계 S550의 암호파일은 도 4b에 도시된 구조를 가질 수 있다. 도 4b에서는 'Header'가 데이터 배열에 앞에 오고, 'encrypted key'가 맨 뒤에 온다. 'Header'에는 원본파일의 파일명 또는 확장자가 입력되고, 'encrypted key' 에는 사용된 암호키와 관련된 고유키가 입력될 수 있다. 여기서 도 4b는 일예의 구조로, 'header'와 'encrypted key'의 배치는 규정시키기 위함이 아니라 표현하기 위함이므로, 구현하려는 서버, 장비에 따라 사용자가 임의대로 위치나 데이터를 이동, 변형될 수 있다. 추가 예로, 암호파일은 도 4c에 도시된 구조 또는 도 4d에 도시된 구조를 가질 수 있다. 도 4c에 도시된 구조에서는 데이터배열이 맨 앞에 존재하고, 뒤에 'FileHeaderInfo' 및 'encrypted key'가 온다. 도 4d에 도시된 구소에서는 'encrypted key'가 맨 앞에 오고, 뒤에 'FileHeaderInfo' 및 데이터배열이 할당된다. 'FileHeaderInfo'에는 암호화된 원본 파일에 대한 정보가 입력된다.For example, the password file of step S550 may have the structure shown in FIG. 4B. In Figure 4b, 'Header' comes first in the data array, and 'encrypted key' comes last. The file name or extension of the original file can be entered in 'Header', and the unique key related to the encryption key used can be entered in 'encrypted key'. Here, Figure 4b is an example structure, and the arrangement of 'header' and 'encrypted key' is not for regulation but for expression, so the user can arbitrarily move or modify the location or data depending on the server and equipment to be implemented. there is. As a further example, the password file may have the structure shown in FIG. 4C or the structure shown in FIG. 4D. In the structure shown in Figure 4c, the data array is at the beginning, followed by 'FileHeaderInfo' and 'encrypted key'. In the structure shown in Figure 4d, 'encrypted key' comes first, followed by 'FileHeaderInfo' and data array. Information about the encrypted original file is entered into 'FileHeaderInfo'.
보통 보편적인 서버에 저장된 파일에 대한 인코더/디코더는 그 자체 코드에 인코딩/디코딩 방식이 별도의 함수로 전제하여 별도의 프로그램 또는 함수형태로 파일서버에 함께 저장되어 있다. 그러나 만약 본 발명과 같이 정보 제공 서버에서 모든 인코딩/디코딩 방식을 관장하고 본 발명의 인코더에 해당하는 파일서버에서는 오로지 인코딩된 암호파일만 존재한다면, 디코더가 해킹당한 경우에도 모든 파일마다 별도의 길이의 블록과 인코딩 방식으로 처리된 데이터는 쉽게 해당 파일의 데이터를 확인할 수 없다. Usually, the encoder/decoder for files stored on a universal server assumes the encoding/decoding method as a separate function in its own code and is stored together in the file server as a separate program or function. However, if, as in the present invention, the information providing server manages all encoding/decoding methods and only encoded password files exist in the file server corresponding to the encoder of the present invention, even if the decoder is hacked, a separate length is stored for each file. Data processed using block and encoding methods cannot be easily confirmed.
예를 들면, 정보 제공 서버에 보관되는 각 인코딩 방식에 대해 본 발명의 일실시예에서 인코딩에 사용되는 복수의 원소의 조합인 암호키와 해당 암호키와 연관된 고유키만 존재하는데, 본 발명은 인코딩에 사용되는 암호키 생성 방법, 암호키 변환 사용 방법, 암호파일의 고유키를 앞에 붙일지 뒤에 붙일지, 또는 원소 배열을 수신된 암호키의 원소의 순서대로 선언할지, 역순으로 선언할지 등에 따라 매우 다양하고 복잡한 형태의 인코더/디코더를 만들 수 있게 되는 것이다.For example, for each encoding method stored in the information provision server, in one embodiment of the present invention, there is only an encryption key that is a combination of a plurality of elements used for encoding and a unique key associated with the encryption key. Depending on the method of generating the encryption key used, the method of using encryption key conversion, whether the unique key of the encryption file is appended to the front or the end, or whether the element array is declared in the order of the elements of the received encryption key or in reverse order, etc. It becomes possible to create encoders/decoders of various and complex types.
정보 제공 서버와 정보 제공 서버에서 그때그때 인코딩/디코딩을 위한 암호키를 받아 인코딩 및 디코딩 처리를 하는 모듈이 바이너리화 되어있고, 그 프로그램 코드가 반드시 해당 하드웨어 장비에서 맥 주소(MAC address), CPU ID, 그 외 해당 서버의 특성과 조건이 맞는 상태에서만 작동되도록 프로그램 했다면, 결과적으로 해커가 데이터베이스 서버와 파일모두를 해킹하는데 성공하였다 하더라도, 암호의 해독을 위해 현 운영되고 있는 서버시스템의 암호화 방식의 프로그램 코드까지 역어셈블링 하지 않으면 암호파일을 해독할 수 없게 되는 것이다.The module that processes encoding and decoding by receiving the encryption key for encoding/decoding from the information providing server and the information providing server at each time is binary, and the program code must be stored in the MAC address and CPU ID of the corresponding hardware device. , If the program was programmed to operate only when the characteristics and conditions of the server are met, as a result, even if the hacker succeeded in hacking both the database server and the files, the encryption method program of the currently operating server system was used to decrypt the password. If you do not disassemble the code, you will not be able to decrypt the password file.
여기에 개시된 실시예들은 적어도 하나의 하드웨어 디바이스에서 실행 중이며 구성 요소들을 제어하기 위한 네트워크 관리 기능을 수행하고 있는 적어도 하나의 소프트웨어 프로그램을 통하여 구현될 수 있다. 도 1a에 도시되는 구성요소들은 하드웨어 디바이스, 또는 하드웨어 디바이스 및 소프트웨어 모듈의 조합 중 적어도 하나일 수 있는 블록들을 포함한다.Embodiments disclosed herein may be implemented through at least one software program running on at least one hardware device and performing a network management function for controlling components. The components shown in FIG. 1A include blocks that may be at least one of a hardware device or a combination of a hardware device and a software module.
본 발명은 또한 컴퓨터 판독가능 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터 판독가능 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등을 포함한다. 또한 컴퓨터 판독가능 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The present invention can also be implemented as computer-readable code on a computer-readable recording medium. Computer-readable recording media include all types of recording devices that store data that can be read by a computer system. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical data storage devices. Additionally, the computer-readable recording medium may be distributed over networked computer systems to store and execute computer-readable code in a distributed manner.
본 명세서의 실시예들의 이러한 양태 및 다른 양태들은 후속하는 상세한 설명 및 첨부 도면을 함께 고려하면 더욱 잘 인정되고 이해될 것이다. 그러나, 후속하는 상세한 설명은 비록 바람직한 실시예들 및 그것의 다수의 구체적인 세부내용들을 표시하고는 있지만 이것들은 예시의 방법으로 제공된 것이고 한정하는 것이 아니라는 것이 이해되어야 한다. 많은 변형 및 변경들이 실시예들의 기술적 사상에서 벗어나지 않으면서 본 명세서의 실시예들의 범위 내에서 이루어질 수도 있으며, 본 명세서의 실시예들은 모든 이러한 변경들을 포함한다.These and other aspects of the embodiments herein will be better appreciated and understood upon consideration of the following detailed description and accompanying drawings. However, it is to be understood that the detailed description that follows, although it identifies preferred embodiments and numerous specific details thereof, is provided by way of example and not limitation. Many modifications and changes may be made within the scope of the embodiments herein without departing from the technical spirit of the embodiments, and the embodiments herein include all such changes.
이상에서 본 발명의 바람직한 실시예에 대해 도시하고 설명하였으나, 본 발명은 상술한 특정의 바람직한 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.Although preferred embodiments of the present invention have been shown and described above, the present invention is not limited to the specific preferred embodiments described above, and can be used in the technical field to which the invention pertains without departing from the gist of the present invention as claimed in the claims. Anyone skilled in the art can make various modifications, and such modifications fall within the scope of the claims.
인코딩 시스템 1 인코더 10
정보 제공 서버 20 사용자 단말기 30
인코더 100 통신부 110
제어부 120 저장부 130
Encoding system 1 Encoder 10
Information provision server 20 User terminal 30
Encoder 100 Communication Department 110
Control unit 120 Storage unit 130
Claims (12)
상기 복수의 원소의 개수 및 상기 복수의 원소 각각의 값을 기초로 원본 파일을 상기 산출된 블록 단위로 암호화하는 단계를 포함하고,
상기 암호화하는 단계는,
상기 복수의 원소 각각과 관련된 복수의 원소 배열을 생성하는 단계;
상기 블록 단위와 대응하는 크기의 데이터를 저장하기 위한 합계 배열을 생성하는 단계; 및
상기 합계 배열 및 상기 복수의 원소 배열을 이용하여 상기 원본 파일을 상기 블록 단위로 재배열하는 단계를 포함하는 것을 특징으로 하는 인코딩 방법.Calculating a block unit indicating data size based on an encryption key including a plurality of elements; and
Comprising the step of encrypting the original file in units of the calculated blocks based on the number of the plurality of elements and the value of each of the plurality of elements,
The encryption step is,
generating a plurality of element arrays associated with each of the plurality of elements;
generating a sum array for storing data of a size corresponding to the block unit; and
An encoding method comprising rearranging the original file in units of blocks using the sum array and the plurality of element arrays.
상기 재배열하는 단계는,
상기 블록 단위만큼의 상기 원본 파일에 저장된 데이터를 상기 복수의 원소 배열에 나누어 저장하는 단계; 및
상기 합계 배열에 상기 복수의 원소 배열 각각의 일부 데이터를 돌아가며 저장하는 단계를 포함하는 것을 특징으로 하는 인코딩 방법.According to clause 2,
The rearrangement step is,
dividing and storing data stored in the original file in units of the block into the plurality of element arrays; and
An encoding method comprising the step of sequentially storing some data of each of the plurality of element arrays in the sum array.
상기 나누어 저장하는 단계는,
상기 복수의 원소 배열과 관련된 원소가 상기 암호키에 포함된 순번 순으로, 상기 복수의 원소 배열과 관련된 원소가 상기 암호키에 포함된 순번의 역순으로, 상기 복수의 원소 배열과 관련된 원소의 값이 큰 순으로, 또는 상기 복수의 원소 배열과 관련된 원소의 값이 작은 순으로 상기 데이터를 상기 복수의 원소 배열에 나누어 저장하는 단계를 포함하는 것을 특징으로 하는 인코딩 방법.According to clause 3,
The dividing and storing step is,
In the order in which the elements related to the plurality of element arrays are included in the encryption key, in the reverse order of the order in which the elements related to the plurality of element arrays are included in the encryption key, the values of the elements related to the plurality of element arrays are An encoding method comprising dividing and storing the data into the plurality of element arrays in ascending order or in descending order of the values of elements associated with the plurality of element arrays.
상기 돌아가며 저장하는 단계는,
상기 복수의 원소 배열과 관련된 원소가 상기 암호키에 포함된 순번 순으로, 상기 복수의 원소 배열과 관련된 원소가 상기 암호키에 포함된 순번의 역순으로, 상기 복수의 원소 배열과 관련된 원소의 값이 큰 순으로, 또는 상기 복수의 원소 배열과 관련된 원소의 값이 작은 순으로 상기 합계 배열에 상기 복수의 원소 배열 각각의 일부 데이터가 돌아가며 저장되는 것을 특징으로 하는 인코딩 방법.According to clause 3,
The rotating saving step is,
In the order in which the elements related to the plurality of element arrays are included in the encryption key, in the reverse order of the order in which the elements related to the plurality of element arrays are included in the encryption key, the values of the elements related to the plurality of element arrays are An encoding method, characterized in that some data of each of the plurality of element arrays are stored in rotation in the sum array in the order of the largest or the smallest value of the elements associated with the plurality of element arrays.
상기 돌아가며 저장하는 단계는,
원소 배열에 상기 합계 배열에 저장되지 않고 남은 데이터가 있는지 여부를 확인하는 단계를 포함하고,
상기 남은 데이터가 없는 경우에는, 상기 원소 배열의 데이터의 저장을 중지하는 것을 특징으로 하는 인코딩 방법.According to clause 3,
The rotating saving step is,
A step of checking whether there is data remaining in the element array that is not stored in the sum array,
An encoding method characterized in that, when there is no data remaining, storage of data of the element array is stopped.
상기 돌아가며 저장하는 단계는,
모든 원소 배열에 상기 합계 배열에 저장되지 않고 남은 데이터가 없는 경우에는, 상기 합계 배열을 암호파일에 저장하는 단계를 포함하는 것을 특징으로 하는 인코딩 방법.According to clause 6,
The rotating saving step is,
When there is no data remaining in all element arrays that is not stored in the sum array, an encoding method comprising the step of storing the sum array in an encryption file.
상기 암호화하는 단계는,
모든 원소 배열에 상기 합계 배열에 저장되지 않고 남은 데이터가 없는 경우에는, 상기 블록 단위와 대응하는 크기의 데이터를 저장하기 위한 제2 합계 배열을 생성하는 단계; 및
상기 제2 합계 배열 및 상기 복수의 원소 배열을 이용하여 상기 원본 파일의 남은 데이터를 상기 블록 단위로 재배열하는 단계를 더 포함하는 것을 특징으로 하는 인코딩 방법.According to clause 6,
The encryption step is,
If there is no data remaining in all element arrays that is not stored in the sum array, generating a second sum array to store data of a size corresponding to the block unit; and
The encoding method further comprising rearranging the remaining data of the original file in units of blocks using the second total array and the plurality of element arrays.
암호파일에 상기 암호화된 원본 파일의 데이터, 상기 원본 파일에 대한 정보 및 상기 암호키와 관련된 고유키를 저장하는 단계를 더 포함하는 것을 특징으로 하는 인코딩 방법.According to clause 2,
The encoding method further comprising storing data of the encrypted original file, information about the original file, and a unique key related to the encryption key in an encryption file.
상기 암호키는,
알파벳, 숫자 및 특수문자 중 적어도 하나를 원소로 포함하고,
상기 암호키에 포함된 원소는 서로 다른 것을 특징으로 하는 인코딩 방법.According to clause 2,
The encryption key is,
Contains at least one of alphabets, numbers, and special characters as an element,
An encoding method, characterized in that the elements included in the encryption key are different from each other.
상기 프로그램 코드를 호출하여 상기 인코딩 방법을 수행하도록 하는 제어부를 포함하는 것을 특징으로 하는 인코더.
a storage unit storing program code including instructions for performing the encoding method according to any one of claims 2 to 10; and
An encoder comprising a control unit that calls the program code to perform the encoding method.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020230012171A KR102617446B1 (en) | 2023-01-30 | 2023-01-30 | Encoder, encoding method and computer readable recording medium |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020230012171A KR102617446B1 (en) | 2023-01-30 | 2023-01-30 | Encoder, encoding method and computer readable recording medium |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| KR102617446B1 true KR102617446B1 (en) | 2023-12-27 |
Family
ID=89377508
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020230012171A Active KR102617446B1 (en) | 2023-01-30 | 2023-01-30 | Encoder, encoding method and computer readable recording medium |
Country Status (1)
| Country | Link |
|---|---|
| KR (1) | KR102617446B1 (en) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20110087094A (en) * | 2010-01-25 | 2011-08-02 | 주식회사 인쿠시스 | Data encryption method |
| KR101249690B1 (en) * | 2011-03-03 | 2013-04-05 | (주)지오크로스 | Method for encrypting an image of image processing apparatus |
| KR20190136531A (en) * | 2018-05-31 | 2019-12-10 | 전남대학교산학협력단 | Video security service method and system |
| WO2021174373A1 (en) * | 2020-10-10 | 2021-09-10 | Gutierrez Salazar Jaime Ricardo | Method for encrypting data by means of matrix operations |
| KR20220137024A (en) * | 2020-01-10 | 2022-10-11 | 제우 테크놀로지스, 인크. | Symmetric Asynchronous Generation Encryption Method |
-
2023
- 2023-01-30 KR KR1020230012171A patent/KR102617446B1/en active Active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20110087094A (en) * | 2010-01-25 | 2011-08-02 | 주식회사 인쿠시스 | Data encryption method |
| KR101249690B1 (en) * | 2011-03-03 | 2013-04-05 | (주)지오크로스 | Method for encrypting an image of image processing apparatus |
| KR20190136531A (en) * | 2018-05-31 | 2019-12-10 | 전남대학교산학협력단 | Video security service method and system |
| KR20220137024A (en) * | 2020-01-10 | 2022-10-11 | 제우 테크놀로지스, 인크. | Symmetric Asynchronous Generation Encryption Method |
| WO2021174373A1 (en) * | 2020-10-10 | 2021-09-10 | Gutierrez Salazar Jaime Ricardo | Method for encrypting data by means of matrix operations |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR101590076B1 (en) | Method for managing personal information | |
| US10083311B2 (en) | Cryptographic key | |
| US10135796B2 (en) | Masking and unmasking data over a network | |
| CN110516462B (en) | Method and apparatus for encrypting data | |
| US20170126698A1 (en) | Geofencing of data in a cloud-based environment | |
| CN104754055A (en) | Safety cloud storage method for use in multi-cloud environment | |
| CN109347839B (en) | Centralized password management method and device, electronic equipment and computer storage medium | |
| CN107181591B (en) | Method and apparatus for system password generation | |
| WO2022140716A1 (en) | Authentication using device and user identity | |
| CN105320613A (en) | Systems and methods for dynamic data storage | |
| KR102421567B1 (en) | Internet access management service server capable of providing internet access management service based on terminal grouping and operating method thereof | |
| Kim et al. | Client‐Side Deduplication to Enhance Security and Reduce Communication Costs | |
| US20110154015A1 (en) | Method For Segmenting A Data File, Storing The File In A Separate Location, And Recreating The File | |
| KR102617447B1 (en) | File management system providing file encryption function and method of the same | |
| EP3033866B1 (en) | Secure transfers of files within network-based storage | |
| CN114499836B (en) | Key management method, device, computer equipment and readable storage medium | |
| KR102617446B1 (en) | Encoder, encoding method and computer readable recording medium | |
| CN115438333A (en) | Authority distribution method and device | |
| US12192210B2 (en) | Identity anonymization with controlled masking and format preserving encryption | |
| CN118118164A (en) | Data protection method, prediction method and device based on longitudinal federal learning model | |
| US20210409194A1 (en) | Cryptography method | |
| CN113285933A (en) | User access control method and device, electronic equipment and storage medium | |
| US12432053B2 (en) | Efficient length preserving encryption of large plaintexts | |
| US11775478B2 (en) | Generating hexadecimal trees to compare file sets | |
| JP6083210B2 (en) | Authentication information management system, authentication information management method, authentication information management program, and search system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20230130 |
|
| PA0201 | Request for examination | ||
| PA0302 | Request for accelerated examination |
Patent event date: 20230727 Patent event code: PA03022R01D Comment text: Request for Accelerated Examination Patent event date: 20230130 Patent event code: PA03021R01I Comment text: Patent Application |
|
| PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20230914 Patent event code: PE09021S01D |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20231213 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20231219 Patent event code: PR07011E01D |
|
| PR1002 | Payment of registration fee |
Payment date: 20231219 End annual number: 3 Start annual number: 1 |
|
| PG1601 | Publication of registration |