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 PDF

Info

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
Application number
KR1020180018564A
Other languages
Korean (ko)
Inventor
어성율
Original Assignee
(주)케이사인
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)케이사인 filed Critical (주)케이사인
Priority to KR1020180018564A priority Critical patent/KR101922955B1/en
Application granted granted Critical
Publication of KR101922955B1 publication Critical patent/KR101922955B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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

A system for encrypting data in near real time based on a data block comprises: a storage device for storing a source file and a destination file; an application for writing data in the source file; and an encryption device for reading the data stored in the source file in a block unit, encrypting the read data block, writing an encrypted encryption block in the destination file, and masking, as a dummy block, the data block in the source file in which the encryption is terminated.

Description

데이터 블록 기반의 근 실시간 데이터 암호화 시스템 및 방법 {NEAR REAL TIME DATA ENCRYPTION SYSTEM BASED ON DATA BLOCK AND METHOD OF ENCRYPTING DATA USING THE SAME}TECHNICAL FIELD [0001] The present invention relates to a data-block-based near real-time data encryption system and a data-

본 발명은 데이터 블록 기반의 근 실시간 데이터 암호화 시스템 및 방법에 관한 것으로, 보다 구체적으로는 응용 어플리케이션에서 실시간으로 생성되는 파일을 상기 응용 어플리케이션의 수정 없이 별도의 암호화 장치를 이용하여 근 실시간으로 파일의 데이터를 암호화하는 데이터 블록 기반의 근 실시간 데이터 암호화 시스템에 관한 것이다. 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 application application 100, an encryption device 200, a file system 300, and a storage device 400.

상기 응용 어플리케이션(100)은 장 기간 동안 파일을 종료하지 않고 실시간으로 파일에 데이터 쓰기를 계속하는 어플리케이션일 수 있다. 예를 들어, 상기 응용 어플리케이션(100)은 영상이나 음악의 스트리밍 어플리케이션일 수 있다. 예를 들어, 상기 응용 어플리케이션(100)은 실시간으로 로그 파일을 작성하는 어플리케이션일 수 있다. The application application 100 may be an application that continues writing data to a file in real time without terminating the file for a long period of time. For example, the application 100 may be a video or music streaming application. For example, the application application 100 may be an application for creating a log file in real time.

상기 파일 시스템(300)은 상기 응용 어플리케이션(100)이 상기 저장 장치(400)의 소스 파일(SF)에 데이터를 기입하는 작업을 수행한다. 상기 파일 시스템(300)은 운영 체제 내의 파일 읽기 쓰기 모듈일 수 있다. The file system 300 performs an operation of writing the data into the source file SF of the storage device 400 by the application application 100. The file system 300 may be a file read / write module within the operating system.

상기 암호화 장치(200)는 상기 응용 어플리케이션(100)에서 실시간으로 쓰기가 발생하는 상기 소스 파일(SF)을 데이터 블록 단위로 읽어서 암호화 과정을 거쳐 암호화된 블록을 상기 저장 장치(400)의 목적 파일(OF)에 쓰기 과정을 통해 암호화를 수행한다.The encryption apparatus 200 reads the source file SF in which data is written in real time in the application application 100 and enciphers the encrypted block in an object file of the storage apparatus 400 OF). ≪ / RTI >

상기 저장 장치(400)는 상기 응용 어플리케이션(100)에 의해 쓰기가 수행되는 소스 파일(SF) 및 상기 암호화 장치(200)에 의해 쓰기가 수행되는 목적 파일(OF)을 저장한다.The storage device 400 stores a source file SF to be written by the application application 100 and an object file OF to be written by the encryption device 200.

도 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 encryption apparatus 200 includes parameters for performing the encryption.

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 application application 100 writes data in the source file (SF) using the file system 300.

상기 암호화 장치(200)는 상기 파라미터들을 읽어들여 상기 암호화 장치(200)에 설정한다 (단계 S10). 상기 암호화 장치(200)는 상기 소스 파일(SF)의 시작 주소를(source_file_start_addr)을 설정할 수 있다. 상기 암호화 장치(200)는 상기 목적 파일(OF)의 시작 주소를(dest_file_start_addr)을 설정할 수 있다.The encryption apparatus 200 reads the parameters and sets them in the encryption apparatus 200 (step S10). The encryption apparatus 200 may set a source address (source_file_start_addr) of the source file (SF). The encryption apparatus 200 can set the start address (dest_file_start_addr) of the object file OF.

상기 암호화 장치(200)는 상기 저장 장치(400)에 저장된 상기 소스 파일(SF)을 데이터 블록 단위(Plain Block)로 읽어들인다 (단계 S20). 상기 암호화 장치(200)는 소스 블록 시작 주소(source_block_start_addr)를 아래 수학식 1과 같이 계산한다. The encryption apparatus 200 reads the source file SF stored in the storage 400 into a data block unit (step S20). The encryption apparatus 200 calculates a source block start address (source_block_start_addr) according to Equation (1) below.

[수학식 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 encryption apparatus 200 reads the plaint block by the block size (param.block_size) from the source block start address (source_block_start_addr).

상기 읽어들인 데이터 블록을 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 encryption apparatus 200 writes the encrypted block into the object file OF located in the storage device 400 in data block units (step S40). The encryption apparatus 200 calculates a destination block start address (dest_block_start_addr) according to the following equation (2).

[수학식 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 encryption apparatus 200 writes the encrypted block at the target block start address dest_block_start_addr by the block size param.block_size.

상기 암호화 장치(200)는 상기 소스 블록 시작 주소(source_block_start_addr)에서부터 상기 블록 사이즈(param.block_size) 만큼 상기 더미 문자(param.dummy_char)로 상기 소스 파일(SF)의 데이터 블록을 마스킹한다 (단계 S50). 상기 암호화가 완료된 상기 소스 파일(SF)의 데이터 블록을 마스킹하여, 상기 소스 파일(SF)의 원본 내용을 제3자가 확인할 수 없도록 한다. 상기 마스킹은 상기 소스 블록 데이터 초기화라고 할 수도 있다. The encryption apparatus 200 masks the data block of the source file SF by the dummy character (param.dummy_char) from the source block start address (source_block_start_addr) to the block size (param.block_size) (step S50) . The data block of the source file (SF) in which the encryption is completed is masked so that the third party can not confirm the original contents of the source file (SF). The masking may be referred to as initialization of the source block data.

상기 소스 파일(SF)의 데이터 블록을 마스킹한 후 암호화 장치(200)는 상기 param.counter를 1만큼 증가시킬 수 있다. After masking the data block of the source file SF, the encryption apparatus 200 may increase the param.counter by one.

상기 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 application application 100 writes in real time without termination of the file for a long period of time, the data is encrypted in the near real time using a separate encryption device 200 without loss of data can do.

또한, 원본 파일(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:
제1항에 있어서, 상기 응용 어플리케이션 및 상기 저장 장치 사이에 배치되며 상기 응용 어플리케이션으로부터 상기 소스 파일에 상기 데이터를 기입하도록 하는 파일 쓰기 모듈을 포함하는 파일 시스템을 더 포함하는 것을 특징으로 하는 데이터 암호화 시스템. The data encryption system of claim 1, further comprising a file system that is disposed between the application and the storage device and includes a file writing module for writing the data from the application application to the source file. . 삭제delete 제1항에 있어서, 상기 더미 문자 파라미터는 1 바이트 문자인 것을 특징으로 하는 데이터 암호화 시스템.The data encryption system according to claim 1, wherein the dummy character parameter is a 1-byte character. 삭제delete 삭제delete 제1항에 있어서, 상기 암호화 장치는 상기 읽어들인 데이터 블록을 상기 알고리즘 파라미터에서 정의된 암호화 알고리즘으로 암호화하여 상기 암호화 블록을 생성하는 것을 특징으로 하는 데이터 암호화 시스템.The data encryption system according to claim 1, wherein the encryption device encrypts the read data block with an encryption algorithm defined in the algorithm parameter to generate the encryption block. 제7항에 있어서, 상기 암호화 장치는 상기 암호화 블록을 상기 목적 블록 시작 주소에 상기 블록 사이즈 파라미터 만큼 기입하고,
상기 목적 파일 시작 주소는 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.
제8항에 있어서, 상기 암호화 장치는 상기 소스 블록 시작 주소에서부터 상기 블록 사이즈 파라미터 만큼 상기 더미 문자로 상기 소스 파일의 상기 데이터 블록을 마스킹하는 것을 특징으로 하는 데이터 암호화 시스템.9. The data encryption system of claim 8, wherein the encryption device masks the data block of the source file with the dummy character as much as the block size parameter from the source block 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로 결정되는 것을 특징으로 하는 데이터 암호화 방법.
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.
KR1020180018564A 2018-02-14 2018-02-14 Near real time data encryption system based on data block and method of encrypting data using the same KR101922955B1 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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