KR101922955B1 - Near real time data encryption system based on data block and method of encrypting data using the same - Google Patents
Near real time data encryption system based on data block and method of encrypting data using the same Download PDFInfo
- Publication number
- KR101922955B1 KR101922955B1 KR1020180018564A KR20180018564A KR101922955B1 KR 101922955 B1 KR101922955 B1 KR 101922955B1 KR 1020180018564 A KR1020180018564 A KR 1020180018564A KR 20180018564 A KR20180018564 A KR 20180018564A KR 101922955 B1 KR101922955 B1 KR 101922955B1
- Authority
- KR
- South Korea
- Prior art keywords
- block
- file
- data
- source
- encryption
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Storage Device Security (AREA)
Abstract
Description
본 발명은 데이터 블록 기반의 근 실시간 데이터 암호화 시스템 및 방법에 관한 것으로, 보다 구체적으로는 응용 어플리케이션에서 실시간으로 생성되는 파일을 상기 응용 어플리케이션의 수정 없이 별도의 암호화 장치를 이용하여 근 실시간으로 파일의 데이터를 암호화하는 데이터 블록 기반의 근 실시간 데이터 암호화 시스템에 관한 것이다. More particularly, the present invention relates to a data-block-based near real-time data encryption system and method, and more particularly, to a system and method for encrypting data of a file in real time using a separate encryption device without modifying the application, Based real-time data encryption system.
본 발명은 상기 암호화 시스템을 이용한 데이터 블록 기반의 근 실시간 데이터 암호화 방법에 관한 것이다.The present invention relates to a data block-based near real-time data encryption method using the encryption system.
일반적인 파일 암호화는 응용 어플리케이션에서 파일쓰기를 종료한 이후에, 암호화 장치에서 상기 쓰기 종료된 파일을 읽어들이고, 상기 읽어들인 파일을 암호화한다. After completing the file writing in the application, the general file encryption reads the terminated file from the encryption device and encrypts the read file.
그러나, 상기 응용 어플리케이션에서 파일을 종료하지 않고 오랜 시간 동안 파일에 쓰기가 계속하여 이루어지는 경우에는 상기 파일에 대한 암호화가 어려운 문제가 있다. However, if writing to a file continues for a long time without ending the file in the application, encryption of the file is difficult.
장 기간 동안 파일에 쓰기가 계속되는 중에는 상기 파일이 암호화되지 않기 때문에, 해당 기간에 파일의 데이터의 탈취가 가능하게 되는 문제가 있다.The file is not encrypted while the file is continuously written for a long period of time, so that there is a problem that data of the file can be taken out during the period.
또한, 상기 파일의 복사본을 만들어 암호화를 수행하는 경우에는 시간차에 의해 상기 파일 내의 데이터에 대한 손실이 발생할 수 있다. In addition, when encryption is performed by making a copy of the file, a loss of data in the file may occur due to a time difference.
따라서 본 발명은 종래 데이터 암호화 시스템 및 방법이 가지는 문제점들을 해결하기 위한 것으로, 본 발명이 이루고자 하는 목적은 응용 어플리케이션에서 장 기간에 걸쳐 파일에 대한 종료 없이 실시간으로 쓰기가 이루어지는 환경에서 데이터의 손실 없이 별도의 암호화 장치를 이용하여 상기 데이터를 근 실시간으로 암호화하는 데이터 블록 기반의 근 실시간 데이터 암호화 시스템을 제공하는 것이다.Accordingly, it is an object of the present invention to provide a data encryption system and a data encryption method in a data encryption system in which data can be written in real- Time data encryption system that encrypts the data in near real time using an encryption device of a data block.
본 발명이 이루고자 하는 다른 목적은 상기 데이터 암호화 시스템을 이용한 데이터 블록 기반의 근 실시간 데이터 암호화 방법을 제공하는 것이다.Another object of the present invention is to provide a near real-time data encryption method based on a data block using the data encryption system.
상기한 본 발명의 목적을 실현하기 위한 일 실시예에 따른 데이터 블록 기반의 근 실시간 데이터 암호화 시스템은 저장 장치, 응용 어플리케이션 및 암호화 장치를 포함한다. 상기 저장 장치는 소스 파일 및 목적 파일을 저장한다. 상기 응용 어플리케이션은 상기 소스 파일에 데이터를 기입한다. 상기 암호화 장치는 상기 소스 파일에 저장된 데이터를 블록 단위로 실시간으로 읽어들이고, 읽어들인 상기 데이터 블록을 암호화하며, 암호화된 상기 암호화 블록을 상기 목적 파일에 기입하고, 암호화가 종료된 상기 소스 파일 내의 상기 데이터 블록은 더미 문자로 마스킹한다.According to an embodiment of the present invention, a data block based near real-time data encryption system includes a storage device, an application application, and an encryption device. The storage device stores a source file and an object file. The application writes data to the source file. The encryption device reads the data stored in the source file in real time on a block basis, encrypts the read data block, writes the encrypted encryption block to the object file, Data blocks are masked with dummy characters.
본 발명의 일 실시예에 있어서, 상기 데이터 암호화 시스템은 상기 응용 어플리케이션 및 상기 저장 장치 사이에 배치되며 상기 응용 어플리케이션으로부터 상기 소스 파일에 상기 데이터를 기입하도록 하는 파일 쓰기 모듈을 포함하는 파일 시스템을 더 포함할 수 있다. In one embodiment of the present invention, the data encryption system further comprises a file system, which is disposed between the application and the storage device, and includes a file writing module for causing the application file to write the data in the source file can do.
본 발명의 일 실시예에 있어서, 상기 암호화 장치는 상기 소스 파일에서 읽어들이는 상기 데이터 블록의 크기를 나타내는 블록 사이즈 파라미터, 상기 소스 파일의 상기 데이터 블록을 마스킹하기 위한 상기 더미 문자를 나타내는 더미 문자 파라미터, 상기 소스 파일에서 읽어들인 상기 데이터 블록을 암호화하기 위한 알고리즘을 나타내는 알고리즘 파라미터 및 상기 소스 파일에서 읽어들인 상기 데이터 블록의 개수를 나타내는 카운터 파라미터를 포함할 수 있다. In one embodiment of the present invention, the encryption apparatus includes a block size parameter indicating a size of the data block read from the source file, a dummy character parameter indicating the dummy character for masking the data block of the source file An algorithm parameter indicating an algorithm for encrypting the data block read from the source file, and a counter parameter indicating the number of the data blocks read from the source file.
본 발명의 일 실시예에 있어서, 상기 더미 문자 파라미터는 1 바이트 문자일 수 있다. In one embodiment of the present invention, the dummy character parameter may be a one-byte character.
본 발명의 일 실시예에 있어서, 상기 암호화 장치는 상기 블록 사이즈 파라미터, 상기 더미 문자 파라미터, 상기 알고리즘 파라미터 및 상기 카운터 파라미터를 읽어들여 상기 암호화 장치를 초기화할 수 있다. 상기 암호화 장치는 소스 파일 시작 주소를 설정하며, 상기 암호화 장치는 목적 파일 시작 주소를 설정할 수 있다. In one embodiment of the present invention, the encryption device may initialize the encryption device by reading the block size parameter, the dummy character parameter, the algorithm parameter and the counter parameter. The encryption device sets a source file start address, and the encryption device can set an object file start address.
본 발명의 일 실시예에 있어서, 상기 암호화 장치는 소스 블록 시작 주소로부터 상기 블록 사이즈 파라미터 만큼 상기 소스 파일을 읽어들일 수 있다. 상기 소스 파일 시작 주소는 source_file_start_addr, 상기 소스 블록 시작 주소는 source_block_start_addr, 상기 블록 사이즈 파라미터는 param.block_size, 상기 카운터 파라미터는 param.counter라고 할 때, source_block_start_addr = source_file_start_addr + param.counter * param.block_size로 결정될 수 있다. In one embodiment of the present invention, the encryption device can read the source file from the source block start address by the block size parameter. The source_block_start_addr = source_file_start_addr + param.counter * param.block_size may be determined when the source file start address is source_file_start_addr, the source block start address is source_block_start_addr, the block size parameter is param.block_size and the counter parameter is param.counter have.
본 발명의 일 실시예에 있어서, 상기 암호화 장치는 상기 읽어들인 데이터 블록을 상기 알고리즘 파라미터에서 정의된 암호화 알고리즘으로 암호화하여 상기 암호화 블록을 생성할 수 있다. In one embodiment of the present invention, the encryption apparatus can encrypt the read data block with the encryption algorithm defined in the algorithm parameter to generate the encryption block.
본 발명의 일 실시예에 있어서, 상기 암호화 장치는 상기 암호화 블록을 상기 목적 블록 시작 주소에 상기 블록 사이즈 파라미터 만큼 기입할 수 있다. 상기 목적 파일 시작 주소는 dest_file_start_addr, 상기 목적 블록 시작 주소는 dest_block_start_addr라고 할 때, dest_block_start_addr = dest_file_start_addr + param.counter * param.block_size로 결정될 수 있다. In one embodiment of the present invention, the encryption apparatus can write the encryption block to the target block start address as much as the block size parameter. Dest_block_start_addr = dest_file_start_addr + param.counter * param.block_size, where the object file start address is dest_file_start_addr and the destination block start address is dest_block_start_addr.
본 발명의 일 실시예에 있어서, 상기 암호화 장치는 상기 소스 블록 시작 주소에서부터 상기 블록 사이즈 파라미터 만큼 상기 더미 문자로 상기 소스 파일의 상기 데이터 블록을 마스킹할 수 있다. In one embodiment of the present invention, the encryption device may mask the data block of the source file with the dummy character from the source block start address to the block size parameter.
상기한 본 발명의 다른 목적을 실현하기 위한 일 실시예에 따른 데이터 블록 기반의 근 실시간 데이터 암호화 방법은 응용 어플리케이션을 이용하여 소스 파일에 데이터를 기입하는 단계, 상기 소스 파일에 저장된 데이터를 블록 단위로 실시간으로 읽어들이는 단계, 읽어들인 상기 데이터 블록을 암호화하는 단계, 암호화된 상기 암호화 블록을 목적 파일에 기입하는 단계 및 암호화가 종료된 상기 소스 파일 내의 상기 데이터 블록을 더미 문자로 마스킹하는 단계를 포함한다. According to another aspect of the present invention, there is provided a data block-based near real-time data encryption method comprising: writing data into a source file using an application application; Reading in real time, encrypting the read data block, writing the encrypted encryption block to an object file, and masking the data block in the source file with encryption finished with a dummy character do.
본 발명에 따른 데이터 블록 기반의 근 실시간 데이터 암호화 시스템 및 방법에 따르면, 응용 어플리케이션에서 장 기간에 걸쳐 파일에 대한 종료 없이 실시간으로 쓰기가 이루어지는 환경에서 데이터의 손실 없이 별도의 암호화 장치를 이용하여 상기 데이터를 근 실시간으로 암호화할 수 있다. According to the data block-based near real-time data encryption system and method according to the present invention, in an environment in which application programs are written in real time without termination of a file for a long period of time, Can be encrypted in near real time.
또한, 원본 파일을 복사하는 방식이 아니므로, 원본 파일 복사 후 상기 원본 파일을 마스킹하는 과정 사이의 시차에 의해 상기 원본 파일의 데이터의 손실이 발생하지 않는다. In addition, since the original file is not copied, no loss of data of the original file occurs due to a time lag between the process of copying the original file and masking the original file.
도 1은 본 발명의 일 실시예에 따른 데이터 블록 기반의 근 실시간 데이터 암호화 시스템을 나타내는 블록도이다.
도 2는 도 1의 근 실시간 데이터 암호화 시스템의 동작을 나타내는 개념도이다.
도 3은 도 2의 암호화 장치의 파라미터들을 나타내는 표이다.1 is a block diagram illustrating a data block based near real time data encryption system in accordance with an embodiment of the present invention.
2 is a conceptual diagram showing the operation of the near real time data encryption system of FIG.
3 is a table showing the parameters of the encryption apparatus of FIG.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.For the embodiments of the invention disclosed herein, specific structural and functional descriptions are set forth for the purpose of describing an embodiment of the invention only, and it is to be understood that the embodiments of the invention may be practiced in various forms, The present invention should not be construed as limited to the embodiments described in Figs.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.The present invention is capable of various modifications and various forms, and specific embodiments are illustrated in the drawings and described in detail in the text. It is to be understood, however, that the invention is not intended to be limited to the particular forms disclosed, but on the contrary, is intended to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.The terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms may be used for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between. Other expressions that describe the relationship between components, such as "between" and "between" or "neighboring to" and "directly adjacent to" should be interpreted as well.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In this application, the words "comprising ", or" having ", and the like, specify that there is a stated feature, number, step, operation, But do not preclude the presence or addition of steps, operations, elements, parts, or combinations thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries should be construed as meaning consistent with meaning in the context of the relevant art and are not to be construed as ideal or overly formal in meaning unless expressly defined in the present application .
한편, 어떤 실시예가 달리 구현 가능한 경우에 특정 블록 내에 명기된 기능 또는 동작이 순서도에 명기된 순서와 다르게 일어날 수도 있다. 예를 들어, 연속하는 두 블록이 실제로는 실질적으로 동시에 수행될 수도 있고, 관련된 기능 또는 동작에 따라서는 상기 블록들이 거꾸로 수행될 수도 있다.On the other hand, if an embodiment is otherwise feasible, the functions or operations specified in a particular block may occur differently from the order specified in the flowchart. For example, two consecutive blocks may actually be performed at substantially the same time, and depending on the associated function or operation, the blocks may be performed backwards.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. The same reference numerals are used for the same constituent elements in the drawings and redundant explanations for the same constituent elements are omitted.
도 1은 본 발명의 일 실시예에 따른 데이터 블록 기반의 근 실시간 데이터 암호화 시스템을 나타내는 블록도이다.1 is a block diagram illustrating a data block based near real time data encryption system in accordance with an embodiment of the present invention.
도 1을 참조하면, 상기 데이터 블록 기반의 근 실시간 데이터 암호화 시스템은 응용 어플리케이션(100), 암호화 장치(200), 파일 시스템(300) 및 저장 장치(400)를 포함한다.Referring to FIG. 1, the data block based near real-time data encryption system includes an
상기 응용 어플리케이션(100)은 장 기간 동안 파일을 종료하지 않고 실시간으로 파일에 데이터 쓰기를 계속하는 어플리케이션일 수 있다. 예를 들어, 상기 응용 어플리케이션(100)은 영상이나 음악의 스트리밍 어플리케이션일 수 있다. 예를 들어, 상기 응용 어플리케이션(100)은 실시간으로 로그 파일을 작성하는 어플리케이션일 수 있다. The
상기 파일 시스템(300)은 상기 응용 어플리케이션(100)이 상기 저장 장치(400)의 소스 파일(SF)에 데이터를 기입하는 작업을 수행한다. 상기 파일 시스템(300)은 운영 체제 내의 파일 읽기 쓰기 모듈일 수 있다. The
상기 암호화 장치(200)는 상기 응용 어플리케이션(100)에서 실시간으로 쓰기가 발생하는 상기 소스 파일(SF)을 데이터 블록 단위로 읽어서 암호화 과정을 거쳐 암호화된 블록을 상기 저장 장치(400)의 목적 파일(OF)에 쓰기 과정을 통해 암호화를 수행한다.The
상기 저장 장치(400)는 상기 응용 어플리케이션(100)에 의해 쓰기가 수행되는 소스 파일(SF) 및 상기 암호화 장치(200)에 의해 쓰기가 수행되는 목적 파일(OF)을 저장한다.The
도 2는 도 1의 근 실시간 데이터 암호화 시스템의 동작을 나타내는 개념도이다. 도 3은 도 2의 암호화 장치의 파라미터들을 나타내는 표이다.2 is a conceptual diagram showing the operation of the near real time data encryption system of FIG. 3 is a table showing the parameters of the encryption apparatus of FIG.
도 1 내지 도 3을 참조하면, 상기 암호화 장치(200)는 상기 암호화를 수행하기 위해 파라미터들을 포함한다. 1 to 3, the
param.block_size는 상기 소스 파일(SF)에서 읽어들일 블록 크기를 의미한다. 예를 들어, param.block_size는 바이트 단위이고, param.block_size는 1024, 2048, 4096 등일 수 있다. and param.block_size indicates a block size to be read in the source file (SF). For example, param.block_size may be in units of bytes, and param.block_size may be 1024, 2048, 4096, and so on.
param.dummy_char는 상기 소스 파일(SF)의 데이터 블록을 마스킹하기 위한 더미 문자를 의미한다. 예를 들어, param.dummy_char는 1 바이트 문자이고, param.dummy_char는 ASCII 코드표 내의 1 바이트 문자일 수 있다. and param.dummy_char denotes a dummy character for masking a data block of the source file (SF). For example, param.dummy_char may be a one-byte character, and param.dummy_char may be a one-byte character within an ASCII code table.
param.algorithm은 상기 소스 파일(SF)에서 읽어들인 상기 데이터 블록을 암호화하기 위한 알고리즘을 의미한다. 예를 들어, param.algorithm은 대칭 키 알고리즘일 수 있다. 예를 들어, param.algorithm은 AES, SEED, ARIA 중 어느 하나일 수 있다. and param.algorithm means an algorithm for encrypting the data block read from the source file (SF). For example, param.algorithm may be a symmetric key algorithm. For example, param.algorithm can be one of AES, SEED, or ARIA.
param.counter는 상기 소스 파일(SF)에서 읽어들인 상기 데이터 블록의 개수를 의미한다. param.counter의 초기값은 0일 수 있다. param.counter는 0으로부터 시작하여 상기 데이터 블록이 늘어날수록 1씩 증가할 수 있다. and param.counter denotes the number of the data blocks read from the source file (SF). The initial value of param.counter may be zero. The param.counter may be incremented by 1 starting from 0 and increasing as the data block grows.
상기 응용 어플리케이션(100)은 상기 파일 시스템(300)을 이용하여 상기 소스 파일(SF)에 데이터를 기입한다.The
상기 암호화 장치(200)는 상기 파라미터들을 읽어들여 상기 암호화 장치(200)에 설정한다 (단계 S10). 상기 암호화 장치(200)는 상기 소스 파일(SF)의 시작 주소를(source_file_start_addr)을 설정할 수 있다. 상기 암호화 장치(200)는 상기 목적 파일(OF)의 시작 주소를(dest_file_start_addr)을 설정할 수 있다.The
상기 암호화 장치(200)는 상기 저장 장치(400)에 저장된 상기 소스 파일(SF)을 데이터 블록 단위(Plain Block)로 읽어들인다 (단계 S20). 상기 암호화 장치(200)는 소스 블록 시작 주소(source_block_start_addr)를 아래 수학식 1과 같이 계산한다. The
[수학식 1][Equation 1]
source_block_start_addr = source_file_start_addr + param.counter * param.block_sizesource_block_start_addr = source_file_start_addr + param.counter * param.block_size
상기 암호화 장치(200)는 상기 소스 블록 시작 주소(source_block_start_addr)로부터 블록 사이즈(param.block_size) 만큼 데이터(Plain Block)를 읽어들인다.The
상기 읽어들인 데이터 블록을 param.algorithm에서 정의된 암호화 알고리즘으로 암호화하여 암호화 블록(Encrypted Block)을 생성한다 (단계 S30). The read data block is encrypted with the encryption algorithm defined in param.algorithm to generate an encrypted block (step S30).
상기 암호화 장치(200)는 상기 암호화 블록(Encrypted Block)을 상기 저장 장치(400) 내에 위치한 상기 목적 파일(OF)에 데이터 블록 단위로 기입한다 (단계 S40). 상기 암호화 장치(200)는 목적 블록 시작 주소(dest_block_start_addr)를 아래 수학식 2와 같이 계산한다. The
[수학식 2]&Quot; (2) "
dest_block_start_addr = dest_file_start_addr + param.counter * param.block_sizedest_block_start_addr = dest_file_start_addr + param.counter * param.block_size
상기 암호화 장치(200)는 상기 암호화 블록(Encrypted Block)을 상기 목적 블록 시작 주소(dest_block_start_addr)에 상기 블록 사이즈(param.block_size) 만큼 기입한다.The
상기 암호화 장치(200)는 상기 소스 블록 시작 주소(source_block_start_addr)에서부터 상기 블록 사이즈(param.block_size) 만큼 상기 더미 문자(param.dummy_char)로 상기 소스 파일(SF)의 데이터 블록을 마스킹한다 (단계 S50). 상기 암호화가 완료된 상기 소스 파일(SF)의 데이터 블록을 마스킹하여, 상기 소스 파일(SF)의 원본 내용을 제3자가 확인할 수 없도록 한다. 상기 마스킹은 상기 소스 블록 데이터 초기화라고 할 수도 있다. The
상기 소스 파일(SF)의 데이터 블록을 마스킹한 후 암호화 장치(200)는 상기 param.counter를 1만큼 증가시킬 수 있다. After masking the data block of the source file SF, the
상기 S50 단계가 종료되면 다시 S20 단계로 돌아가 상기 증가한 param.counter를 기초로 다음 데이터 블록을 읽어들여 암호화할 수 있다.When the step S50 is finished, the process returns to step S20 and the next data block is read based on the increased param. Counter to encrypt the next data block.
상기 S20 단계에서 S50 단계는 데이터 블록의 크기에 따라 수 밀리초(millisecond, ms) 또는 수 초(second, s) 내에 이루어지며, 따라서 이를 근 실시간 데이터 암호화 시스템으로 명명할 수 있다. The operation S50 may be performed within several milliseconds (ms) or a few seconds (seconds) depending on the size of the data block, and may be referred to as a near real-time data encryption system.
본 실시예에 따르면, 상기 응용 어플리케이션(100)에서 장 기간에 걸쳐 파일에 대한 종료 없이 실시간으로 쓰기가 이루어지는 환경에서 데이터의 손실 없이 별도의 암호화 장치(200)를 이용하여 상기 데이터를 근 실시간으로 암호화할 수 있다. According to the present embodiment, in the environment where the
또한, 원본 파일(SF)을 복사하는 방식이 아니므로, 원본 파일 복사 후 상기 원본 파일(SF)을 마스킹하는 과정 사이의 시차에 의해 상기 원본 파일(SF)의 데이터의 손실이 발생하지 않는다. Also, since the original file (SF) is not copied, no loss of data of the original file (SF) occurs due to a time lag between the process of masking the original file (SF) after copying the original file.
본 발명은 응용 어플리케이션에서 저장 장치의 소스 파일에 데이터를 기입하는 컴퓨터 시스템 및 전자 시스템에 널리 적용될 수 있다. The present invention can be widely applied to a computer system and an electronic system that write data to a source file of a storage device in an application application.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the present invention as defined by the following claims. It will be understood.
100: 응용 어플리케이션 200: 암호화 장치
300: 파일 시스템 400: 저장 장치100: application application 200: encryption device
300: File system 400: Storage device
Claims (10)
상기 소스 파일에 데이터를 기입하는 응용 어플리케이션; 및
상기 소스 파일에 저장된 데이터를 블록 단위로 실시간으로 읽어들이고, 읽어들인 데이터 블록을 암호화하며, 암호화된 상기 데이터 블록인 암호화 블록을 상기 목적 파일에 기입하고, 암호화가 종료된 상기 소스 파일 내의 상기 데이터 블록은 더미 문자로 마스킹하는 암호화 장치를 포함하고,
상기 암호화 장치는
상기 소스 파일에서 읽어들이는 상기 데이터 블록의 크기를 나타내는 블록 사이즈 파라미터;
상기 소스 파일의 상기 데이터 블록을 마스킹하기 위한 상기 더미 문자를 나타내는 더미 문자 파라미터;
상기 소스 파일에서 읽어들인 상기 데이터 블록을 암호화하기 위한 알고리즘을 나타내는 알고리즘 파라미터; 및
상기 소스 파일에서 읽어들인 상기 데이터 블록의 개수를 나타내는 카운터 파라미터를 포함하며,
상기 암호화 장치는 상기 블록 사이즈 파라미터, 상기 더미 문자 파라미터, 상기 알고리즘 파라미터 및 상기 카운터 파라미터를 읽어들여 상기 암호화 장치를 초기화하고,
상기 암호화 장치는 소스 파일 시작 주소를 설정하며, 상기 암호화 장치는 목적 파일 시작 주소를 설정하며,
상기 암호화 장치는 소스 블록 시작 주소로부터 상기 블록 사이즈 파라미터 만큼 상기 소스 파일을 읽어들이고,
상기 소스 파일 시작 주소는 source_file_start_addr, 상기 소스 블록 시작 주소는 source_block_start_addr, 상기 블록 사이즈 파라미터는 param.block_size, 상기 카운터 파라미터는 param.counter라고 할 때, source_block_start_addr = source_file_start_addr + param.counter * param.block_size로 결정되는 것을 특징으로 하는 데이터 암호화 시스템.A storage device for storing the source file and the object file;
An application for writing data into the source file; And
Encrypts the read data block, writes the encrypted block, which is the encrypted data block, to the object file, and writes the data block in the source file whose encryption is completed, Includes a cryptographic device that masks with a dummy character,
The encryption device
A block size parameter indicating the size of the data block read from the source file;
A dummy character parameter indicating the dummy character for masking the data block of the source file;
An algorithm parameter indicating an algorithm for encrypting the data block read from the source file; And
And a counter parameter indicating the number of data blocks read from the source file,
The encryption device reads the block size parameter, the dummy character parameter, the algorithm parameter and the counter parameter to initialize the encryption device,
The encryption device sets a source file start address, the encryption device sets an object file start address,
The encryption device reads the source file from the source block start address by the block size parameter,
Source_file_start_addr + param.counter * param.block_size when the source file start address is source_file_start_addr, the source block start address is source_block_start_addr, the block size parameter is param.block_size, and the counter parameter is param.counter The data encryption system comprising:
상기 목적 파일 시작 주소는 dest_file_start_addr, 상기 목적 블록 시작 주소는 dest_block_start_addr라고 할 때, dest_block_start_addr = dest_file_start_addr + param.counter * param.block_size로 결정되는 것을 특징으로 하는 데이터 암호화 시스템.The encryption apparatus according to claim 7, wherein the encryption apparatus writes the encryption block to the target block start address by the block size parameter,
And dest_block_start_addr = dest_file_start_addr + param.counter * param.block_size when the object file start address is dest_file_start_addr and the destination block start address is dest_block_start_addr.
암호화 장치를 이용하여, 상기 소스 파일에 저장된 데이터를 블록 단위로 실시간으로 읽어들이는 단계;
상기 암호화 장치를 이용하여, 읽어들인 데이터 블록을 암호화하는 단계;
상기 암호화 장치를 이용하여, 암호화된 상기 데이터 블록인 암호화 블록을 목적 파일에 기입하는 단계; 및
상기 암호화 장치를 이용하여, 암호화가 종료된 상기 소스 파일 내의 상기 데이터 블록을 더미 문자로 마스킹하는 단계를 포함하고,
상기 암호화 장치는
상기 소스 파일에서 읽어들이는 상기 데이터 블록의 크기를 나타내는 블록 사이즈 파라미터;
상기 소스 파일의 상기 데이터 블록을 마스킹하기 위한 상기 더미 문자를 나타내는 더미 문자 파라미터;
상기 소스 파일에서 읽어들인 상기 데이터 블록을 암호화하기 위한 알고리즘을 나타내는 알고리즘 파라미터; 및
상기 소스 파일에서 읽어들인 상기 데이터 블록의 개수를 나타내는 카운터 파라미터를 포함하며,
상기 암호화 장치는 상기 블록 사이즈 파라미터, 상기 더미 문자 파라미터, 상기 알고리즘 파라미터 및 상기 카운터 파라미터를 읽어들여 상기 암호화 장치를 초기화하고,
상기 암호화 장치는 소스 파일 시작 주소를 설정하며, 상기 암호화 장치는 목적 파일 시작 주소를 설정하며,
상기 암호화 장치는 소스 블록 시작 주소로부터 상기 블록 사이즈 파라미터 만큼 상기 소스 파일을 읽어들이고,
상기 소스 파일 시작 주소는 source_file_start_addr, 상기 소스 블록 시작 주소는 source_block_start_addr, 상기 블록 사이즈 파라미터는 param.block_size, 상기 카운터 파라미터는 param.counter라고 할 때, source_block_start_addr = source_file_start_addr + param.counter * param.block_size로 결정되는 것을 특징으로 하는 데이터 암호화 방법.Writing data to a source file using an application application;
Reading data stored in the source file in real time on a block-by-block basis using an encryption device;
Encrypting the read data block using the encryption device;
Writing an encryption block, which is the encrypted data block, to an object file using the encryption device; And
Masking the data block in the source file that has been encrypted with a dummy character using the encryption device,
The encryption device
A block size parameter indicating the size of the data block read from the source file;
A dummy character parameter indicating the dummy character for masking the data block of the source file;
An algorithm parameter indicating an algorithm for encrypting the data block read from the source file; And
And a counter parameter indicating the number of data blocks read from the source file,
The encryption device reads the block size parameter, the dummy character parameter, the algorithm parameter and the counter parameter to initialize the encryption device,
The encryption device sets a source file start address, the encryption device sets an object file start address,
The encryption device reads the source file from the source block start address by the block size parameter,
Source_file_start_addr + param.counter * param.block_size when the source file start address is source_file_start_addr, the source block start address is source_block_start_addr, the block size parameter is param.block_size, and the counter parameter is param.counter And encrypting the encrypted data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180018564A KR101922955B1 (en) | 2018-02-14 | 2018-02-14 | Near real time data encryption system based on data block and method of encrypting data using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180018564A KR101922955B1 (en) | 2018-02-14 | 2018-02-14 | Near real time data encryption system based on data block and method of encrypting data using the same |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101922955B1 true KR101922955B1 (en) | 2018-11-28 |
Family
ID=64561802
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180018564A KR101922955B1 (en) | 2018-02-14 | 2018-02-14 | Near real time data encryption system based on data block and method of encrypting data using the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101922955B1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006039206A (en) | 2004-07-27 | 2006-02-09 | Canon Inc | Ciphering device and deciphering device |
KR100583635B1 (en) * | 2003-01-24 | 2006-05-26 | 삼성전자주식회사 | Cryptographic apparatus for supporting multiple modes |
KR100725169B1 (en) * | 2005-01-27 | 2007-06-04 | 삼성전자주식회사 | Apparatus and method for performing logical operation being secure against differential power analysis |
-
2018
- 2018-02-14 KR KR1020180018564A patent/KR101922955B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100583635B1 (en) * | 2003-01-24 | 2006-05-26 | 삼성전자주식회사 | Cryptographic apparatus for supporting multiple modes |
JP2006039206A (en) | 2004-07-27 | 2006-02-09 | Canon Inc | Ciphering device and deciphering device |
KR100725169B1 (en) * | 2005-01-27 | 2007-06-04 | 삼성전자주식회사 | Apparatus and method for performing logical operation being secure against differential power analysis |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109040090B (en) | A kind of data ciphering method and device | |
JP4060271B2 (en) | Content processing apparatus and content protection program | |
CN101231622B (en) | Data storage method and equipment base on flash memory, as well as data fetch method and apparatu | |
JP5337411B2 (en) | Information concealment method and information concealment device | |
JP2006277411A (en) | Processor, memory, computer system and data transfer method | |
CN103946856A (en) | Encryption and decryption process method, apparatus and device | |
CN110210591B (en) | Writing method of intelligent IC card personalized data, computer device and computer readable storage medium | |
CN107231490A (en) | Dynamic updates method, client and the server of IOS system applications | |
CN110062014A (en) | The encryption and decryption method and system of network model | |
JP2009245227A (en) | Information storage device | |
JP2007179317A (en) | Microcomputer, program writing method to microcomputer, and writing processing system | |
CN103475463A (en) | Encryption realization method and apparatus | |
KR101688811B1 (en) | Method of encrypting and decrypting data | |
JP6343869B2 (en) | Portable terminal device and decryption processing program | |
KR101922955B1 (en) | Near real time data encryption system based on data block and method of encrypting data using the same | |
CN110309083B (en) | Memory data scrambling method | |
CN109558341A (en) | Calculator memory data guard method and computer | |
CN107463808B (en) | Method for calling functional module integrated in operating system | |
CN109560927A (en) | A kind of device-fingerprint implementation method and device | |
CN112311536B (en) | Key hierarchical management method and system | |
CN111881474B (en) | Private key management method and device based on trusted computing environment | |
CN115225933A (en) | Encryption method and decryption method of video file, server and terminal equipment | |
JP6752247B2 (en) | Information distribution device, distribution target device, information distribution system, information distribution method and program | |
JP2019121955A (en) | Semiconductor device and generating method of encryption key | |
CN112800467A (en) | Online model training method, device and equipment based on data privacy protection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |