KR20170128667A - encryption method, decryption method and apparatus thereof - Google Patents

encryption method, decryption method and apparatus thereof Download PDF

Info

Publication number
KR20170128667A
KR20170128667A KR1020160058202A KR20160058202A KR20170128667A KR 20170128667 A KR20170128667 A KR 20170128667A KR 1020160058202 A KR1020160058202 A KR 1020160058202A KR 20160058202 A KR20160058202 A KR 20160058202A KR 20170128667 A KR20170128667 A KR 20170128667A
Authority
KR
South Korea
Prior art keywords
secret key
data
time data
current
time
Prior art date
Application number
KR1020160058202A
Other languages
Korean (ko)
Other versions
KR101817424B1 (en
Inventor
심귀보
박승민
유제훈
이성원
Original Assignee
중앙대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 중앙대학교 산학협력단 filed Critical 중앙대학교 산학협력단
Priority to KR1020160058202A priority Critical patent/KR101817424B1/en
Publication of KR20170128667A publication Critical patent/KR20170128667A/en
Application granted granted Critical
Publication of KR101817424B1 publication Critical patent/KR101817424B1/en

Links

Images

Classifications

    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0872Generation of secret information including derivation or calculation of cryptographic keys or passwords using geo-location information, e.g. location data, time, relative position or proximity to other entities
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

An encryption method, a decryption method, and an apparatus thereof are disclosed. A method for encrypting data comprises the steps of: (a) receiving time data by accessing a server; (b) updating a current secret key by using the time data and the current secret key; (c) primarily encrypting the data by using the updated secret key in an n-bit unit, wherein n is a natural number; and (d) secondarily encrypting the primarily encrypted data by using a matrix secret key.

Description

암호화 방법, 복호화 방법 및 그 장치{encryption method, decryption method and apparatus thereof}[0001] The present invention relates to an encryption method, a decryption method,

본 발명은 시간 동기화 방식에 기반한 암호화 방법, 복호화 방법 및 그 장치에 관한 것이다.
The present invention relates to an encryption method, a decryption method, and an apparatus based on a time synchronization scheme.

네트워크 통신의 발달로 사물인터넷(Internet of Things)은 산업단지나 홈 네트워크 등 다양한 분야에 빠르게 보급화 되어가고 있다. 하지만 사물인터넷은 네트워크를 활용한 시스템으로 해킹에 대한 취약점을 가지고 있다. 해킹은 네트워크를 통해 상대방의 시스템에 접근하여 악영향을 끼치는 행위로 데이터를 위조, 복조 시켜 통신을 방해하거나 바이러스를 심어 정보를 유출 시키는 등의 피해를 입힐 수 있다. 또한 최근 개발되고 있는 무인 자동차도 해킹에 의해 제어될 수 있어 데이터 보안의 중요성이 강조되고 있다.With the development of network communication, the Internet of Things is rapidly becoming popular in various fields such as industrial parks and home networks. However, the Internet of things has a vulnerability to hacking with a networked system. Hacking accesses the system of the other party through the network and acts as an adverse effect, forcing data to be forged or demodulated, which can interfere with communications or cause viruses to be leaked and leaked. Also, recently developed unmanned vehicles can be controlled by hacking, which emphasizes the importance of data security.

보안 알고리즘으로는 대칭형 알고리즘과 비대칭형 알고리즘으로 구분된다. 비대칭형 알고리즘은 대표적으로 RSA(Rivest, Shamir, Adleman), DSA(Digital Signature Algorithm)가 있다. 비대칭형 알고리즘은 암호화 키와 복호화 키가 동일하지 않아 복잡한 산술연산을 통해 복호화를 수행하며 대칭형 알고리즘에 비해 보안성이 좋은 반면 암호화와 복호화 하는 시간이 많이 소요된다. 이러한 이유로 인증서나 전자서명에 주로 사용된다. 대칭형 알고리즘은 대표적으로 SEED, LEA(Lightweight Encryption Algorithm), HIGHT(High security and light weigHT) 등이 있다. 대칭형 알고리즘은 송신 측과 수신 측의 비밀 키가 같아 암호화, 복호화 속도가 빠르다는 장점을 가지고 있다. 이중 SEED 알고리즘은 국내 정보통신기술협회(KISA)에서 개발하였으며 ISO/IEC 국제표준에 제정되었다.Security algorithms are classified into symmetric algorithms and asymmetric algorithms. Asymmetric algorithms are typically RSA (Rivest, Shamir, Adleman) and DSA (Digital Signature Algorithm). Asymmetric algorithms perform decryption through complex arithmetic operations because the encryption key and the decryption key are not the same. Security is better than symmetric algorithm, but encryption and decryption are time consuming. For this reason, it is mainly used for certificates and electronic signatures. Symmetric algorithms are typically SEED, Lightweight Encryption Algorithm (LEA), High security and light weigHT (HIGHT). The symmetric algorithm has the advantage that the encryption and decryption speed is fast because the secret keys of the sender and the receiver are the same. The SEED algorithm was developed by KISA (Korea Information and Communications Technology Association) and was established by ISO / IEC international standard.

SEED 알고리즘은 s-box 테이블과 비밀 키를 사용하여 암호화, 복호화를 수행한다. 이때 사용되는 비밀 키는 외부에 노출되면 속수무책으로 정보가 유출되는 문제가 있다. 또한 알고리즘의 보안성을 위해 주기적으로 비밀 키는 변경해 주어야 하는 문제점이 있다. 이러한 문제점으로 인해 SEED 알고리즘의 취약점이나 결함을 찾아 개선하는 등 다양한 연구가 진행되고 있다.
The SEED algorithm performs encryption and decryption using the s-box table and secret key. The secret key used at this time has a problem that information is leaked to the outside when exposed to the outside. Also, there is a problem that the secret key must be periodically changed for the security of the algorithm. Due to these problems, a variety of researches are being conducted, such as finding and correcting weaknesses or defects of the SEED algorithm.

본 발명은 시간 동기화 방식에 기반한 암호화 방법, 복호화 방법 및 그 장치를 제공하기 위한 것이다.
The present invention provides an encryption method, a decryption method, and an apparatus based on a time synchronization method.

본 발명의 일 실시예에 따르면, 시간 동기화 방식에 기반한 암호화 방법, 복호화 방법이 제공된다.According to an embodiment of the present invention, an encryption method and a decryption method based on a time synchronization method are provided.

본 발명의 일 실시예에 따르면, 데이터를 암호화하는 방법에 있어서, (a) 서버로의 접속에 따라 시간 데이터를 수신하는 단계; (b) 상기 시간 데이터와 현재 비밀키를 이용하여 상기 현재 비밀키를 갱신하는 단계; (c) 갱신된 비밀키를 이용하여 상기 데이터를 n비트 단위로 1차 암호화하는 단계-상기 n은 자연수임; 및 (d) 상기 1차 암호화된 데이터를 행렬 비밀키를 이용하여 2차 암호화하는 단계를 포함하는 암호화 방법이 제공될 수 있다.According to an embodiment of the present invention, there is provided a method of encrypting data comprising the steps of: (a) receiving time data in accordance with a connection to a server; (b) updating the current secret key using the time data and the current secret key; (c) first encrypting the data in units of n bits using an updated secret key, wherein n is a natural number; And (d) secondary encrypting the primary encrypted data using a matrix secret key.

상기 시간 데이터는 주기적으로 수신되되, 상기 시간 데이터의 주기적 수신에 따라 상기 (b) 단계도 주기적으로 수행될 수 있다.The time data is periodically received, and the step (b) may be periodically performed according to the periodic reception of the time data.

상기 (b) 단계는, 상기 시간 데이터의 각 요소값과 상기 현재 비밀키의 자리값들을 이용하여 상기 현재 비밀키의 각 자리값을 변경할 수 있다.The step (b) may change each digit value of the current secret key using the element values of the time data and the current secret key position values.

상기 (b) 단계는, 상기 현재 비밀키의 자리값들과 상기 시간 데이터의 각 요소값들을 이용한 모듈로 연산 및 XOR 연산을 통해 상기 현재 비밀키의 각 자리값을 변경할 수 있다.In the step (b), each digit value of the current secret key may be changed through a modulo operation and an XOR operation using the current secret key position values and the element values of the time data.

상기 (d) 단계는, 상기 1차 암호화된 데이터는 m 비트 단위로 m 자리 행렬 비밀키를 이용한 행렬 연산을 통해 2차 암호화될 수 있다.In the step (d), the primary encrypted data may be secondarily encrypted by a matrix operation using an m-digit matrix secret key in units of m bits.

상기 (d) 단계는, 상기 2차 암호화는 하기 수학식을 이용하여 m비트 단위로 수행되되,In the step (d), the secondary encryption is performed in units of m bits using the following equation,

Figure pat00001
Figure pat00001

여기서, C0, C1, C2, C3는 1차 암호화된 데이터의 각각의 자리의 값을 나타내고, M0, M1, M2, M3는 행렬 비밀키의 각 키값을 나타낸다.
Here, C0, C1, C2, and C3 represent the values of the respective positions of the primary encrypted data, and M0, M1, M2, and M3 represent the respective key values of the matrix secret key.

본 발명의 다른 실시예에 따르면, 복호화 방법에 있어서, (aa) 클라이언트 디바이스의 접속에 따라 현재 시간을 검출하고, 상기 검출된 현재 시간을 시간 데이터로 재구성하는 단계; (bb) 상기 시간 데이터와 현재 비밀키를 이용하여 상기 현재 비밀키를 갱신하는 단계; (cc) 상기 클라이언트 디바이스로부터 암호화된 데이터를 수신하는 단계; (dd) 상기 암호화된 데이터를 행렬 비밀키를 이용한 역행렬 연산하여 1차 복호하는 단계; 및 (ee) 상기 1차 복호된 데이터를 상기 갱신된 비밀키를 이용하여 2차 복호하는 단계를 포함하는 복호화 방법이 제공될 수 있다.According to another embodiment of the present invention, there is provided a decoding method comprising the steps of: (aa) detecting a current time according to a connection of a client device, and reconstructing the detected current time with time data; (bb) updating the current secret key using the time data and the current secret key; (cc) receiving encrypted data from the client device; (dd) performing an inverse matrix operation on the encrypted data using a matrix secret key to perform first-order decoding; And (ee) performing a second-order decoding of the primary decoded data using the updated secret key.

상기 재구성된 시간 데이터를 상기 클라이언트 디바이스로 전송하되, 주기적으로 현재 시간을 검출하여 시간 데이터로 재구성하여 상기 클라이언트 디바이스로 전송할 수 있다.Transmits the reconstructed time data to the client device, periodically detects the current time, reconstructs the time data, and transmits the reconstructed time data to the client device.

상기 (dd) 단계는 상기 암호화된 데이터를 m(상기 m은 자연수) 비트 단위로 상기 행렬 비밀키를 이용하여 1차 복호하며, 상기 (ee) 단계는 n(상기 n은 자연수) 비트 단위로 상기 1차 복호된 데이터를 상기 갱신된 비밀키로 2차 복호할 수 있다.
Wherein the step (dd) performs first-order decoding of the encrypted data using the matrix secret key in units of m (m is a natural number) bits, and the step (ee) The primary decrypted data can be secondarily decrypted using the updated secret key.

본 발명의 다른 측면에 따르면, 시간 동기화 방식에 기반한 암호화 및 복호화를 위한 장치가 제공될 수 있다.According to another aspect of the present invention, an apparatus for encryption and decryption based on a time synchronization scheme can be provided.

본 발명의 일 실시예에 따르면, 암호화 장치에 있어서, 서버로부터 시간 데이터를 수신하는 통신부; 상기 시간 데이터와 현재 비밀키를 이용하여 상기 현재 비밀키를 비밀키 갱신하는 갱신부; 및 갱신된 비밀키를 이용하여 데이터를 n(상기 n은 자연수임)비트 단위로 1차 암호화하고, 상기 1차 암호화된 데이터를 행렬 비밀키를 이용하여 2차 암호화하는 암호화부를 포함하는 암호화 장치가 제공될 수 있다.
According to an embodiment of the present invention, there is provided an encryption apparatus comprising: a communication unit for receiving time data from a server; An update unit configured to update the current secret key using the time data and the current secret key; And an encrypting unit for encrypting the data by n (n is a natural number) bit unit by using the updated secret key, and encrypting the primary encrypted data by using the matrix secret key Can be provided.

본 발명의 다른 측면에 따르면, 클라이언트 디바이스의 접속에 따라 현재 시간을 검출하고, 상기 검출된 현재 시간을 시간 데이터로 재구성하는 동기화부; 상기 시간 데이터와 현재 비밀키를 이용하여 상기 현재 비밀키를 갱신하는 비밀키 갱신부; 상기 클라이언트 디바이스로부터 암호화된 데이터를 수신하는 통신부; 및 상기 암호화된 데이터를 행렬 비밀키를 이용한 역행렬 연산하여 1차 복호하고, 상기 1차 복호된 데이터를 상기 갱신된 비밀키를 이용하여 2차 복호하는 복호화부를 포함하는 복호화 장치가 제공될 수 있다.According to another aspect of the present invention, there is provided a client apparatus comprising: a synchronization unit that detects a current time according to a connection of a client device, and reconfigures the detected current time as time data; A secret key updating unit updating the current secret key using the time data and the current secret key; A communication unit for receiving encrypted data from the client device; And a decoding unit for performing an inverse operation on the encrypted data by inverse matrix operation using a matrix secret key, and performing a second-order decoding on the first-decoded data using the updated secret key.

상기 동기화부는 상기 시간 데이터를 상기 통신부를 통해 상기 클라이언트 디바이스로 전송할 수 있다.
The synchronization unit may transmit the time data to the client device through the communication unit.

본 발명의 일 실시예에 따른 암호화 방법, 복호화 방법 및 그 장치를 제공함으로써, 해킹에도 암호 해독이 어려워 보안이 강화된 이점이 있다.By providing the encryption method, the decryption method, and the apparatus according to the embodiment of the present invention, there is an advantage in that security is enhanced because it is difficult to decrypt the encrypted data.

또한, 본 발명은 시간 동기화 방식에 기반하여 비밀키가 지속적으로 갱신됨으로써, 데이터 유출이 어려운 이점이 있다.
In addition, the present invention is advantageous in that data leakage is difficult because the secret key is continuously updated based on the time synchronization scheme.

도 1은 본 발명의 일 실시예에 따른 암호화 방법을 나타낸 순서도.
도 2 및 도 3은 본 발명의 일 실시예에 따른 비밀키 갱신을 설명하기 위해 도시한 도면.
도 4는 도 1과 같이 암호화된 데이터를 복호하는 방법을 나타낸 순서도.
도 5는 본 발명의 일 실시예에 따른 시간 데이터를 재구성하는 방법을 설명하기 위해 도시한 도면.
도 6은 본 발명의 일 실시예에 따른 암호화 장치의 내부 구성을 개략적으로 도시한 블록도.
도 7은 본 발명의 일 실시예에 따른 복호화 장치의 내부 구성을 개략적으로 도시한 블록도.
1 is a flow chart illustrating an encryption method according to an embodiment of the present invention;
FIG. 2 and FIG. 3 are diagrams for explaining a secret key update according to an embodiment of the present invention; FIG.
4 is a flowchart showing a method of decrypting encrypted data as shown in FIG.
5 is a diagram illustrating a method for reconstructing time data according to an embodiment of the present invention;
6 is a block diagram schematically illustrating an internal configuration of an encryption apparatus according to an embodiment of the present invention;
FIG. 7 is a block diagram schematically illustrating an internal configuration of a decoding apparatus according to an embodiment of the present invention; FIG.

본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "구성된다" 또는 "포함한다" 등의 용어는 명세서상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.As used herein, the singular forms "a", "an" and "the" include plural referents unless the context clearly dictates otherwise. In this specification, the terms "comprising ", or" comprising "and the like should not be construed as necessarily including the various elements or steps described in the specification, Or may be further comprised of additional components or steps. Also, the terms "part," " module, "and the like described in the specification mean units for processing at least one function or operation, which may be implemented in hardware or software or a combination of hardware and software .

본 발명은 시간 동기화 방식에 기반한 시드(SEED) 알고리즘을 이용하여 데이터를 암호화하고 복호화하기 위한 것이다. The present invention is for encrypting and decrypting data using a seed (SEED) algorithm based on a time synchronization scheme.

이를 위해, 본 발명은 암호화 주체인 클라이언트 디바이스가 서버에 접속시, 서버에서 클라이언트 디바이스와의 시간 동기화를 위해 서버의 시간을 검출한 후 시간 데이터를 재구성하여 클라이언트 디바이스와 공유할 수 있다. To this end, according to the present invention, when the client device, which is the encryption subject, connects to the server, the server detects the server time for time synchronization with the client device, and reconstructs the time data to share with the client device.

이어, 클라이언트 디바이스와 서버는 재구성된 시간 데이터를 기반으로 암호 및 복호를 위해 동기화된 비밀키를 갱신할 수 있다.The client device and the server may then update the synchronized secret key for encryption and decryption based on the reconstructed time data.

서버는 클라이언트 디바이스가 접속한 이후 주기적으로 시간을 검출하여 시간 데이터를 재구성하여 클라이언트 디바이스로 전송하므로, 클라이언트 디바이스와 서버는 주기적으로 비밀키를 갱신하고, 이를 이용하여 데이터를 암호화 및 복호화할 수 있다. Since the server periodically detects the time after the client device connects and reconstructs the time data to transmit to the client device, the client device and the server periodically update the secret key, and can encrypt and decrypt the data using the updated secret key.

이하에서는 서버를 복호화 장치로 통칭하고, 클라이언트 디바이스를 암호화 장치로 통칭하여 설명하기로 한다. 서버에서도 데이터를 암호화할 수 있으며, 클라이언트 디바이스에서도 암호화된 데이터를 복호할 수 있음은 당연하다.Hereinafter, the server will be referred to as a decryption device and the client device will be collectively referred to as an encryption device. The server can also encrypt the data, and it is natural that the client device can also decrypt the encrypted data.

이하, 첨부된 도면들을 참조하여 본 발명의 실시예를 상세히 설명한다.
Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 암호화 방법을 나타낸 순서도이고, 도 2 및 도 3은 본 발명의 일 실시예에 따른 비밀키 갱신을 설명하기 위해 도시한 도면이다.FIG. 1 is a flowchart illustrating an encryption method according to an embodiment of the present invention. FIG. 2 and FIG. 3 are diagrams for explaining a secret key update according to an embodiment of the present invention.

단계 110에서 암호화 장치(600)는 복호화 장치(700)로부터 시간 데이터가 수신되었는지 여부를 판단한다.In step 110, the encryption apparatus 600 determines whether time data has been received from the decryption apparatus 700. [

만일 시간 데이터가 수신된 경우, 단계 115에서 암호화 장치(600)는 시간 데이터를 이용하여 현재 비밀키를 갱신한다.If time data is received, the encryption device 600 updates the current secret key using the time data in step 115. [

시간 데이터는 일, 시, 분, 초의 시간을 일, 시, 분, 초를 이용한 모듈로 연산 및 XOR 연산을 통해 값이 재구성된 데이터이다. 시간 데이터의 재구성은 복호화 장치(700)로 명명되는 서버단에서 수행되므로, 복호화 방법을 설명하는 과정에서 보다 상세히 설명하기로 한다.The time data is data in which the values are reconstructed by modulo operation and XOR operation using days, hours, minutes and seconds as days, hours, minutes and seconds. Since the reconstruction of the time data is performed at the server terminal called the decoding apparatus 700, the decoding method will be described in more detail.

시간 데이터를 이용하여 비밀키를 갱신하는 방법에 대해 보다 상세히 설명하기로 한다.A method for updating the secret key using time data will be described in more detail.

본 발명의 일 실시예에 따른 암호화 장치(600)는 시드 알고리즘에 기반하여 데이터를 암호화할 수 있다. 본 명세서에서는 이해와 설명의 편의를 도모하기 위해 128비트 시드 알고리즘에 기반하여 데이터를 암호화하는 것을 가정하기로 한다.The encryption apparatus 600 according to an embodiment of the present invention can encrypt data based on a seed algorithm. In the present specification, it is assumed that data is encrypted based on a 128-bit seed algorithm in order to facilitate understanding and explanation.

따라서, 비밀키는 128비트일 수 있다.Thus, the secret key may be 128 bits.

본 발명의 일 실시예에 따른 암호화 장치(600)는 비밀키를 64비트로 나누어 비밀키의 각 자리의 키값들을 변경할 수 있다. The encryption apparatus 600 according to an embodiment of the present invention divides the secret key into 64 bits and can change the key values of each position of the secret key.

이하에서는 하위 64비트의 비밀키의 키값을 변경하는 방법에 대해 설명하기로 한다.Hereinafter, a method of changing the key value of the lower 64-bit secret key will be described.

비밀키의 하위 64비트의 각 자리의 키값을 예를 들어, K0, K1, K2, K3, K4, K5, K6, K7이라고 가정하자. 각각의 비밀키를 64비트씩 나누어 비밀키를 변경하되, 64비트는 다시 8비트씩 나뉘어 동일한 방식으로 변경될 수 있다.Let K0, K1, K2, K3, K4, K5, K6 and K7 be the key values of the lower 64 bits of the secret key. Each secret key is divided into 64 bits to change the secret key, and 64 bits can be changed in the same manner by being divided into 8 bits again.

따라서, K0, K1, K2, K3의 비밀키값을 변경하는 방법에 대해서만 설명하기로 한다.Therefore, only the method of changing the secret key values of K0, K1, K2, and K3 will be described.

예를 들어, 비밀키의 제1 자리의 키값(이하, 제1 키값이라 칭하기로 함)(K0)은 제2 자리의 키값(제2 키값이라 칭함)과 시간 데이터의 제4 요소값를 XOR 연산한 결과값과 비밀키의 제4 자리의 키값(제4 키값이라 칭함)을 모듈로 연산한 결과값으로 갱신될 수 있다.For example, a key value (hereinafter referred to as a first key value) K0 of the first secret key is XORed with a key value of a second key (called a second key value) and a fourth element value of the time data The result value and the fourth key value of the secret key (referred to as a fourth key value) may be updated to a result of module operation.

또한, 비밀키의 제2 키값은 제1 키값과 시간 데이터의 제3 요소값을 XOR 연산한 결과값과 제3 키값을 모듈로 연산한 결과값으로 갱신될 수 있다.The second key value of the secret key may be updated to a value obtained by performing an XOR operation on the first key value and the third element value of the time data, and a result obtained by modulo computing the third key value.

또한, 비밀키의 제3 키값은 제3 키값과 시간 데이터의 제2 요소값을 XOR 연산한 결과값과 제2 키값을 모듈로 연산한 결과값으로 갱신될 수 있다.The third key value of the secret key may be updated to a value obtained by performing an XOR operation on the third key value and the second element value of the time data, and a result obtained by performing a module operation on the second key value.

마지막으로, 비밀키의 제4 키값은 제3 키값과 시간 데이터의 제1 요소값을 XOR 연산한 결과값과 제1 키값을 모듈로 연산한 결과값으로 갱신될 수 있다.Finally, the fourth key value of the secret key may be updated to a value obtained by performing an XOR operation on the third key value and the first element value of the time data, and a result obtained by performing a module operation on the first key value.

이를 수학식으로 나타내면 수학식 1과 같다.This can be expressed by the following equation (1).

Figure pat00002
Figure pat00002

여기서, K0’, K1’, K2’, K3’는 각각 변경된 비밀키의 제1 키값, 제2 키값, 제3 키값 및 제4 키값을 나타내며, K0 내지 K3는 현재 비밀키의 하위 64비트 중 8자리의 비밀키의 키값들을 나타낸다. 또한, tK0, tK1, tK2, tK3는 시간 데이터의 제1 요소값 내지 제4 요소값을 각각 나타낸다.Here, K0 ', K1', K2 'and K3' represent a first key value, a second key value, a third key value and a fourth key value of the changed secret key, respectively. K0 to K3 denote 8 And the key values of the secret key of the place. In addition, tK0, tK1, tK2, and tK3 represent the first to fourth element values of the time data, respectively.

이를 도식화하여 나타내면 도 2와 같다.This is illustrated in FIG.

도 2와 마찬가지로 나머지 K4 내지 K7도 동일한 방식으로 키값을 갱신할 수 있다.As in the case of FIG. 2, the key values can be updated in the same manner in the remaining K4 to K7.

K4 내지 K7도 수학식 1 및 도 2에 도시된 바와 동일한 방식으로 각각의 키값들이 갱신될 수 있다.K4 to K7 can also be updated with respective key values in the same manner as shown in Equations (1) and (2).

비밀키의 상위 64비트의 8자리의 비밀키는 수학식 2와 같이 변경될 수 있다.The 8-digit secret key of the upper 64 bits of the secret key can be changed as shown in Equation (2).

Figure pat00003
Figure pat00003

이를 도식화하면 도 3와 같다.This is illustrated in FIG.

상위 64비트의 나머지 8자리는 수학식 2 및 도 3에 도시된 바와 같이 변경될 수 있다.The remaining 8 digits of the upper 64 bits may be changed as shown in Equation (2) and (3).

이는 위에서 전술한 바와 유사하며 연산에 이용되는 키값들의 조합 및 시간 데이터가 상이할 뿐이므로 중복되는 설명은 생략하기로 한다.This is similar to that described above, and the combination of the key values and the time data used for the operation are different, and the duplicated description will be omitted.

상술한 바와 같이, 비밀키의 각 키값은 비밀키의 키값들 및 시간 데이터의 요소값들을 이용하여 갱신될 수 있다. As described above, each key value of the secret key can be updated using the key values of the secret key and the element values of the time data.

비밀키의 각 키값들의 갱신에 이용되는 비밀키의 키값들 및 시간 데이터의 요소값들의 연산 과정을 다르게 하여 비밀키가 갱신될 수 있다.The secret key can be updated by changing the calculation procedure of the key values of the secret key and the element values of the time data used for updating the respective key values of the secret key.

이와 같은 비밀키의 갱신 과정은 시간 데이터가 수신될 때마다 반복하여 수행될 수 있다.The updating process of the secret key may be repeatedly performed each time the time data is received.

본 발명의 일 실시예에서는 암호화 장치(600)가 시간 데이터를 수신하고, 이를 이용하여 비밀키를 갱신한 후 이를 이용하여 데이터를 암호화하는 것을 가정하여 설명하고 있다.In an embodiment of the present invention, it is assumed that the encryption apparatus 600 receives the time data, updates the secret key using the received time data, and encrypts the data using the updated secret key.

그러나, 암호화 장치(600)는 현재 비밀키를 이용하여 데이터를 최소 한번은 암호화할 수 있으며, 그 이후에 시간 데이터가 수신됨에 따라 비밀키를 갱신한 후 암호화에 이용될 수도 있다.However, the encryption apparatus 600 can encrypt the data at least once using the current secret key, and may be used for encryption after updating the secret key as time data is received thereafter.

단계 120에서 암호화 장치(600)는 현재 비밀키를 이용하여 데이터를 1차 암호화한다.In operation 120, the encryption apparatus 600 first encodes the data using the current secret key.

본 발명의 일 실시예에 따른 암호화 장치(600)는 128비트 시드 알고리즘에 기반하여 데이터를 1차 암호화할 수 있다. 따라서, 비밀키를 이용하여 데이터를 128비트 블록 단위로 분리하여 1차 암호화할 수 있다.The encryption apparatus 600 according to an embodiment of the present invention can primarily encrypt data based on a 128-bit seed algorithm. Therefore, the data can be divided into 128-bit block units using the secret key and then subjected to primary encryption.

시드 알고리즘 자체는 공지된 사항이므로 이에 대한 별도의 상세한 설명은 생략하기로 한다.Since the seed algorithm itself is a known matter, a detailed description thereof will be omitted.

단계 125에서 암호화 장치(600)는 1차 암호화된 데이터를 행렬 비밀키를 이용하여 2차 암호화한다.In operation 125, the encryption apparatus 600 secondary-encrypts the primary encrypted data using the matrix secret key.

암호화 장치(600)는 행렬 비밀키를 이용하여 1차 암호화된 데이터를 m비트 단위로 행렬 연산하여 2차 암호화할 수 있다.The encryption apparatus 600 can perform secondary encryption by matrix-computing the first-encrypted data in units of m bits using the matrix secret key.

이를 수학식으로 나타내면 수학식 1과 같다.This can be expressed by the following equation (1).

Figure pat00004
Figure pat00004

여기서, C0, C1, C2, C3는 1차 암호화된 데이터의 각 자리의 값을 나타내고, M0, M1, M2, M3는 행렬 비밀키의 각각의 키값을 나타낸다.Here, C0, C1, C2, and C3 represent the values of each digit of the primary encrypted data, and M0, M1, M2, and M3 represent the respective key values of the matrix secret key.

여기서, 행렬 비밀키는 m 자리의 키값으로 구성될 수 있다. 여기서, m은 자연수일 수 있다.Here, the matrix secret key may be composed of an m-key key value. Here, m may be a natural number.

이를 보다 상세히 설명하면 다음과 같다.This will be described in more detail as follows.

예를 들어, 1차 암호화된 데이터를 C라고 칭하기로 하며, C={(1,2,3,4,), (5,6, 7, 8), (9, 10, 11, 12), (13, 14, 15, 16)}이라고 가정하며, 행렬 비밀키 M={1, 2, 3, 4}라고 가정하기로 하자. 행렬 비밀키가 4자리이므로, 1차 암호화된 데이터는 4자리씩 나뉘어 암호화될 수 있다.For example, the primary encrypted data is referred to as C, and C = {(1,2,3,4), (5,6,7,8), (9,10,11,12) (13, 14, 15, 16)} and the matrix secret key M = {1, 2, 3, 4}. Since the matrix secret key is 4 digits, the primary encrypted data can be encrypted by dividing into 4 digits.

우선, C=(1, 2, 3, 4)가 행렬 비밀키와의 행렬 연산에 의해 2차 암호화된다. 이를 행렬식으로 표현하면, 다음과 같다.First, C = (1, 2, 3, 4) is secondarily encrypted by a matrix operation with a matrix secret key. This is expressed as a determinant.

Figure pat00005
Figure pat00005

이를 수학식 3을 이용하여 연산하면, C'=(5, 11, 11, 25)와 같이 암호화될 수 있다.When this is calculated using Equation (3), C '= (5, 11, 11, 25).

이와 같은 방식으로, C=(5, 6, 7, 8)이 행렬 비밀키를 이용한 행렬 연산에 의해 C'=(19, 22, 43, 50)으로 2차 암호화되고, C=(9, 10, 11, 12)가 행렬 비밀키를 이용한 행렬 연산에 의해 C'=(31, 34, 71, 78)로 2차 암호화되며, C=(13, 14, 15, 16)은 행렬 비킬키를 이용한 행렬 연산에 의해 C'=(43, 46, 99, 106)으로 2차 암호화될 수 있다.In this way, C = (5, 6, 7, 8) is secondarily encrypted with C '= (19,22, 43,50) by a matrix operation using a matrix secret key and C = , 11, 12) are secondarily encrypted with C '= (31, 34, 71, 78) by a matrix operation using the matrix secret key, and C = (13,14,15,16) Can be secondarily encrypted with C '= (43, 46, 99, 106) by matrix operation.

암호화 장치(600)는 이와 같이 암호화된 데이터를 복호화 장치(700)로 전송할 수 있다.
The encryption apparatus 600 can transmit the encrypted data to the decryption apparatus 700.

도 4는 도 1과 같이 암호화된 데이터를 복호하는 방법을 나타낸 순서도이고, 도 5는 본 발명의 일 실시예에 따른 시간 데이터를 재구성하는 방법을 설명하기 위해 도시한 도면이다.FIG. 4 is a flowchart illustrating a method of decoding encrypted data as shown in FIG. 1, and FIG. 5 is a diagram illustrating a method of reconstructing time data according to an embodiment of the present invention.

단계 410에서 복호화 장치(700)는 암호화 장치(600)의 접속 여부를 판단한다.In step 410, the decryption apparatus 700 determines whether or not the encryption apparatus 600 is connected.

만일 암호화 장치(600)가 접속한 경우, 단계 415에서 복호화 장치(700)는 복호화 장치(700)의 현재 시간을 검출하고, 검출된 시간을 시간 데이터로 재구성한다.If the encrypting apparatus 600 is connected, in step 415, the decrypting apparatus 700 detects the current time of the decrypting apparatus 700, and reconstructs the detected time into time data.

시간 데이터를 재구성하는 방법에 대해 간단하게 설명하기로 한다.A method of reconstructing time data will be briefly described.

복호화 장치(700)는 일, 시, 분 및 초를 포함하는 시간을 검출한다. 이해와 설명의 편의를 도모하기 위해 이를 각각 요소값이라 칭하기로 한다.The decoding apparatus 700 detects a time including days, hours, minutes, and seconds. In order to facilitate understanding and explanation, these are referred to as element values, respectively.

이때, 시간 요소값이 중복될 수 있으므로, 복호화 장치(700)는 검출된 시간을 그대로 이용하지 않고, 이를 시간 데이터로 재구성하여 이용할 수 있다.At this time, since the time element values may overlap, the decoding apparatus 700 can reconstruct the time data without using the detected time as it is.

우선, 검출된 시간의 일, 시, 분에 해당하는 각 요소값은 초에 해당하는 요소값에 의해 모듈로 연산한 결과값으로 변경될 수 있다.First, each element value corresponding to the day, hour, and minute of the detected time can be changed to the result value modulo-operated by the element value corresponding to the second.

이해와 설명의 편의를 도모하기 위해, 일, 시, 분, 초에 해당하는 각 요소값을 제1 요소값, 제2 요소값, 제3 요소값 및 제4 요소값이라 칭하기로 한다.In order to facilitate understanding and explanation, each element value corresponding to day, hour, minute, and second will be referred to as a first element value, a second element value, a third element value, and a fourth element value.

시간 데이터가 중복하여 출력되는 것을 방지하기 위해, 제1 요소값 내지 제3 요소값은 제4 요소값과 조합하여 시간 데이터를 재구성하였다.In order to prevent the time data from being output in an overlapping manner, the first element value to the third element value are reconstructed in combination with the fourth element value.

즉, 제1 요소값, 제2 요소값 및 제3 요소값은 각각 제4 요소값과의 모듈로 연산을 통해 제1 요소값, 제2 요소값 및 제3 요소값이 재구성될 수 있다.That is, the first element value, the second element value, and the third element value may be reconstructed through a modulo operation with the fourth element value, respectively.

이어, 제4 요소값은 제2 요소값과 제3 요소값을 모듈로 연산한 결과값에 제4 요소값을 XOR 연산하여 재구성될 수 있다.The fourth element value may be reconstructed by XORing the fourth element value with a result obtained by modulo-computing the second element value and the third element value.

이를 도식화하면 도 5와 같이 나타낼 수 있다.This can be expressed as shown in FIG.

상술한 바와 같이, 복호화 장치(700)는 암호화 장치(600)의 접속에 따라 복호화 장치(700)의 현재 시간을 검출하고, 검출된 시간에 모듈로 연산 및 XOR 연산 중 적어도 하나를 적용하여 시간 데이터를 재구성할 수 있다.As described above, the decoding apparatus 700 detects the current time of the decoding apparatus 700 in accordance with the connection of the encrypting apparatus 600, applies at least one of the modulo operation and the XOR operation at the detected time, Lt; / RTI >

복호화 장치(700)는 암호화 장치(600)가 접속한 이후 주기적으로(예를 들어, 10초) 시간을 검출하여 시간 데이터를 재구성한 후 이를 암호화 장치(600)로 전송할 수 있다.The decryption apparatus 700 may periodically (for example, 10 seconds) detect the time since the encryption apparatus 600 is connected, reconfigure the time data, and transmit the time data to the encryption apparatus 600. [

단계 415에서 복호화 장치(700)는 시간 데이터를 이용하여 비밀키를 변경한다. 여기서, 비밀키는 암호화 장치(600)와 공유되는 비밀키이다.In step 415, the decryption apparatus 700 changes the secret key using the time data. Here, the secret key is a secret key that is shared with the encryption apparatus 600.

시간 데이터를 이용하여 비밀키를 변경(갱신)하는 방법은 도 1에서 설명한 바와 동일하므로 중복되는 설명은 생략하기로 한다.The method of changing (updating) the secret key using the time data is the same as that described with reference to FIG. 1, so that redundant description will be omitted.

단계 420에서 복호화 장치(700)는 암호화 장치(600)로부터 암호화된 데이터가 수신되었는지 여부를 판단한다. In operation 420, the decryption apparatus 700 determines whether or not encrypted data has been received from the encryption apparatus 600.

만일 암호화된 데이터가 수신되지 않으면, 단계 410으로 진행한다.If encrypted data is not received, step 410 is proceeded to.

그러나, 만일 암호화된 데이터가 수신된 경우, 단계 425에서 복호화 장치(700)는 행렬 비밀키를 이용하여 암호화된 데이터를 1차 복호한다.However, if encrypted data is received, the decryption apparatus 700 first decrypts the encrypted data using the matrix secret key in step 425.

이미 전술한 바와 같이, 암호화 장치(600)는 비밀키를 이용하여 데이터를 지정된 크기의 블록 단위로 1차 암호화하고 이를 다시 행렬 비밀키를 이용하여 2차 암호화한다.As described above, the encryption apparatus 600 first encrypts data using a secret key, and then encrypts the data with a matrix secret key.

따라서, 복호화 장치(700)는 암호화된 데이터를 복호하기 위해 행렬 비밀키를 이용하여 지정된 크기 단위로 역행렬 연산하여 1차 복호한 후 이를 다시 비밀키를 이용하여 2차 복호하는 과정을 거쳐야 한다.Accordingly, the decryption apparatus 700 must perform inverse matrix operation on the designated size unit using the matrix secret key to decrypt the encrypted data, perform first-order decoding, and then perform second-order decoding using the secret key.

1차 복호가 완료되면, 단계 430에서 복호화 장치(700)는 1차 복호된 데이터를 비밀키를 이용하여 지정된 크기의 블록 단위로 2차 복호한다.
When the primary decoding is completed, the decoding apparatus 700 secondary-decodes the primary-decoded data at a block unit of a designated size using the secret key at step 430. [

도 6은 본 발명의 일 실시예에 따른 암호화 장치의 내부 구성을 개략적으로 도시한 블록도이다. 6 is a block diagram schematically illustrating an internal configuration of an encryption apparatus according to an embodiment of the present invention.

도 6을 참조하면, 암호화 장치(600)는 통신부(610), 비밀키 갱신부(615), 암호화부(620), 메모리(625) 및 프로세서(630)를 포함하여 구성된다.6, the encryption apparatus 600 includes a communication unit 610, a secret key renewal unit 615, an encryption unit 620, a memory 625, and a processor 630.

통신부(610)는 통신망을 통해 데이터를 송수신하기 위한 수단이다.The communication unit 610 is a means for transmitting and receiving data through a communication network.

예를 들어, 통신부(610)는 복호화 장치(700)로부터 시간 데이터를 주기적으로 획득할 수 있다.For example, the communication unit 610 may periodically acquire time data from the decryption apparatus 700. [

또한, 통신부(610)는 프로세서(630)의 제어에 따라 암호화된 데이터를 복호화 장치(700)로 전송할 수도 있다. The communication unit 610 may transmit the encrypted data to the decryption apparatus 700 under the control of the processor 630. [

본 발명의 일 실시예에서 암호화 장치(600)는 클라이언트 디바이스일 수 있으며, 복호화 장치는 서버일 수 있다. In an embodiment of the present invention, the encryption apparatus 600 may be a client device, and the decryption apparatus may be a server.

이해와 설명의 편의를 도모하기 위해 암호화 장치와 복호화 장치를 구분하여 설명하나, 암호화 장치 및 복호화 장치는 하나의 장치일 수도 있다. In order to facilitate understanding and explanation, the encryption apparatus and the decryption apparatus are separately described, but the encrypting apparatus and the decrypting apparatus may be one apparatus.

비밀키 갱신부(615)는 서버로부터 수신된 시간 데이터를 이용하여 현재 비밀키를 갱신하기 위한 수단이다. 이는 도 1에서 설명한 바와 동일하므로 중복되는 설명은 생략하기로 한다.The secret-key updating unit 615 is means for updating the current secret key using the time data received from the server. This is the same as that described with reference to FIG. 1, so duplicate descriptions will be omitted.

암호화부(620)는 데이터를 암호화하기 위한 수단이다.The encryption unit 620 is a means for encrypting data.

예를 들어, 암호화부(620)는 비밀키를 이용하여 데이터를 지정된 제1 크기의 블록 단위로 1차 암호화할 수 있다. 이어, 암호화부(620)는 행렬 비밀키를 이용하여 1차 암호화된 데이터를 지정된 제2 크기 단위로 2차 암호화할 수 있다.For example, the encrypting unit 620 can encrypt the data by using the secret key in units of blocks of the designated first size. Then, the encryption unit 620 can encrypt the primary encrypted data by using the matrix secret key in the second unit of size.

여기서, 비밀키는 행렬 비밀키와는 다른 비밀키이며, 크기 또한 상이할 수 있다.Here, the secret key is a secret key different from the matrix secret key, and the size may also be different.

비밀키 및 행렬 비밀키를 이용하여 데이터를 암호화하는 방법에 대해서는 도 1에서 설명한 바와 동일하므로 중복되는 설명은 생략하기로 한다.The method of encrypting data using the secret key and the matrix secret key is the same as that described with reference to FIG. 1, so that a duplicate description will be omitted.

메모리(625)는 본 발명의 일 실시예에 따른 시간 동기화 방식에 기반한 시드 알고리즘에 따라 데이터를 암호화하기 위한 방법을 수행하기 위해 필요한 다양한 알고리즘, 데이터, 이 과정에서 파생된 다양한 데이터 등을 저장하기 위한 수단이다.The memory 625 stores various algorithms, data, various data derived in this process, etc. necessary for performing a method for encrypting data according to a seed algorithm based on a time synchronization scheme according to an embodiment of the present invention It is means.

프로세서(630)는 본 발명의 일 실시예에 따른 암호화 장치(600)의 내부 구성 요소들(예를 들어, 통신부(610), 비밀키 갱신부(615), 암호화부(620), 메모리(625) 등)을 제어하기 위한 수단이다.
Processor 630 may be coupled to internal components (e.g., communication unit 610, secret key update unit 615, encryption unit 620, memory 625, etc.) of cryptographic apparatus 600 according to an embodiment of the present invention. ), And the like).

도 7은 본 발명의 일 실시예에 따른 복호화 장치의 내부 구성을 개략적으로 도시한 블록도이다.FIG. 7 is a block diagram schematically illustrating an internal configuration of a decoding apparatus according to an embodiment of the present invention. Referring to FIG.

본 명세서에서는 암호화 장치(600)와 복호화 장치(700)가 서로 상이한 장치인 것을 가정하여 이를 중심으로 설명하나 암호화 장치(600) 및 복호화 장치(700)는 동일한 장치일 수도 있다.In this specification, it is assumed that the encrypting apparatus 600 and the decrypting apparatus 700 are different from each other. However, the encrypting apparatus 600 and the decrypting apparatus 700 may be the same apparatus.

도 7을 참조하면, 본 발명의 일 실시예에 따른 복호화 장치(700)는 통신부(710), 동기화부(715), 비밀키 갱신부(720), 복호화부(725), 메모리(730) 및 프로세서(735)를 포함하여 구성된다.7, a decoding apparatus 700 according to an exemplary embodiment of the present invention includes a communication unit 710, a synchronization unit 715, a secret key update unit 720, a decryption unit 725, a memory 730, And a processor 735.

통신부(710)는 통신망을 통해 다른 장치(예를 들어, 암호화 장치(600))와 데이터 통신을 수행하기 위한 수단이다.The communication unit 710 is a means for performing data communication with another device (for example, the encryption device 600) via a communication network.

예를 들어, 통신부(710)는 통신망을 통해 암호화 장치(600)로 재구성된 시간 데이터를 전송할 수 있다. 또한, 통신부(710)는 암호화 장치(600)로부터 암호화된 데이터를 수신할 수도 있다.For example, the communication unit 710 can transmit the reconstructed time data to the encryption apparatus 600 via the communication network. The communication unit 710 may also receive the encrypted data from the encryption apparatus 600. [

동기화부(715)는 암호화 장치(600)와 시간 동기화를 위한 수단으로, 암호화 장치(600)의 접속에 따라 복호화 장치(700)의 현재 시간을 검출하고, 이를 시간 데이터로 재구성하기 위한 수단이다.The synchronization unit 715 is means for time synchronization with the encryption apparatus 600 and is means for detecting the current time of the decryption apparatus 700 according to the connection of the encryption apparatus 600 and reconstructing it into time data.

또한, 동기화부(715)는 재구성된 시간 데이터를 통신부(710)를 통해 암호화 장치(600)로 전송하도록 할 수 있다.The synchronization unit 715 may transmit the reconstructed time data to the encryption apparatus 600 through the communication unit 710. [

비밀키 갱신부(720)는 암호화 장치(600)와 공유하는 비밀키를 동기화하여 갱신하기 위해, 시간 데이터를 이용하여 비밀키를 갱신하기 위한 수단이다. 이는 도 1에서 설명한 바와 동일하므로 중복되는 설명은 생략하기로 한다.The secret key renewing unit 720 is means for updating the secret key using the time data in order to synchronously update the secret key shared with the encryption apparatus 600. [ This is the same as that described with reference to FIG. 1, so duplicate descriptions will be omitted.

복호화부(725)는 비밀키 및 행렬 비밀키를 이용하여 암호화 장치(600)로부터 수신된 암호화된 데이터를 복호하기 위한 수단이다.The decryption unit 725 is means for decrypting the encrypted data received from the encryption apparatus 600 using the secret key and the matrix secret key.

예를 들어, 복호화부(725)는 도 4에서 이미 설명한 바와 같이, 암호화된 데이터를 행렬 비밀키를 이용하여 지정된 크기 단위로 역행렬 연산하여 1차 복호하고, 1차 복호된 데이터를 비밀키를 이용하여 지정된 크기의 블록 단위로 2차 복호할 수 있다.For example, as described above with reference to FIG. 4, the decryption unit 725 performs inverse matrix operation on the encrypted data using a matrix secret key in units of a designated size, performs first-order decoding, and uses the first- And can perform secondary decoding on a block unit of a designated size.

이는 이미 도 4에서 설명한 바와 동일하므로 중복되는 설명은 생략하기로 한다.Since this is the same as that described above with reference to FIG. 4, redundant description will be omitted.

메모리(730)는 시간 동기화 방식에 기반하여 암호화된 데이터를 복호하는 방법을 수행하기 위해 필요한 다양한 알고리즘, 이 과정에서 파생된 다양한 데이터를 저장하기 위한 수단이다.The memory 730 is a means for storing various algorithms necessary for performing a method of decoding the encrypted data based on the time synchronization scheme, various data derived from the process.

프로세서(735)는 본 발명의 일 실시예에 따른 복호화 장치(700)의 내부 구성 요소들(예를 들어, 통신부(710), 동기화부(715), 비밀키 갱신부(720), 복호화부(725), 메모리(730) 등)을 제어하기 위한 수단이다.
The processor 735 may include internal components (e.g., a communication unit 710, a synchronization unit 715, a secret-key update unit 720, a decryption unit 710, and a decryption unit 720) of the decryption apparatus 700 according to an embodiment of the present invention. 725, memory 730, etc.).

한편, 전술된 실시예의 구성 요소는 프로세스적인 관점에서 용이하게 파악될 수 있다. 즉, 각각의 구성 요소는 각각의 프로세스로 파악될 수 있다. 또한 전술된 실시예의 프로세스는 장치의 구성 요소 관점에서 용이하게 파악될 수 있다.On the other hand, the components of the above-described embodiment can be easily grasped from a process viewpoint. That is, each component can be identified as a respective process. Further, the process of the above-described embodiment can be easily grasped from the viewpoint of the components of the apparatus.

또한 앞서 설명한 기술적 내용들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예들을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 하드웨어 장치는 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
In addition, the above-described technical features may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware device may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

상기한 본 발명의 실시예는 예시의 목적을 위해 개시된 것이고, 본 발명에 대한 통상의 지식을 가지는 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가가 가능할 것이며, 이러한 수정, 변경 및 부가는 하기의 특허청구범위에 속하는 것으로 보아야 할 것이다.
It will be apparent to those skilled in the art that various modifications, additions and substitutions are possible, without departing from the spirit and scope of the invention as defined by the appended claims. Should be regarded as belonging to the following claims.

600: 암호화 장치
610: 통신부
615: 비밀키 갱신부
620: 암호화부
625: 메모리
630: 프로세서
600: Encryption device
610:
615: secret key renewal unit
620:
625: Memory
630: Processor

Claims (12)

데이터를 암호화하는 방법에 있어서,
(a) 서버로의 접속에 따라 시간 데이터를 수신하는 단계;
(b) 상기 시간 데이터와 현재 비밀키를 이용하여 상기 현재 비밀키를 갱신하는 단계;
(c) 갱신된 비밀키를 이용하여 상기 데이터를 n비트 단위로 1차 암호화하는 단계-상기 n은 자연수임; 및
(d) 상기 1차 암호화된 데이터를 행렬 비밀키를 이용하여 2차 암호화하는 단계를 포함하는 암호화 방법.
A method for encrypting data,
(a) receiving time data according to a connection to a server;
(b) updating the current secret key using the time data and the current secret key;
(c) first encrypting the data in units of n bits using an updated secret key, wherein n is a natural number; And
(d) secondary encrypting the primary encrypted data using a matrix secret key.
제1 항에 있어서,
상기 시간 데이터는 주기적으로 수신되되,
상기 시간 데이터의 주기적 수신에 따라 상기 (b) 단계도 주기적으로 수행되는 것을 특징으로 하는 암호화 방법.
The method according to claim 1,
Wherein the time data is periodically received,
And the step (b) is periodically performed according to the periodic reception of the time data.
제1 항에 있어서, 상기 (b) 단계는,
상기 시간 데이터의 각 요소값과 상기 현재 비밀키의 자리값들을 이용하여 상기 현재 비밀키의 각 자리값을 변경하는 것을 특징으로 하는 암호화 방법.
The method of claim 1, wherein the step (b)
Wherein each digit value of the current secret key is changed using each element value of the time data and the place value of the current secret key.
제1 항에 있어서, 상기 (b) 단계는,
상기 현재 비밀키의 자리값들과 상기 시간 데이터의 각 요소값들을 이용한 모듈로 연산 및 XOR 연산을 통해 상기 현재 비밀키의 각 자리값을 갱신하는 것을 특징으로 하는 암호화 방법.
The method of claim 1, wherein the step (b)
Wherein each digit value of the current secret key is updated through a modulo operation and an XOR operation using the current secret key position values and each element value of the time data.
제1 항에 있어서, 상기 (d) 단계는,
상기 1차 암호화된 데이터는 m 비트 단위로 m 자리 행렬 비밀키를 이용한 행렬 연산을 통해 2차 암호화되는 것을 특징으로 하는 암호화 방법.
The method of claim 1, wherein the step (d)
Wherein the primary encrypted data is secondarily encrypted by a matrix operation using an m-digit matrix secret key in units of m bits.
제5 항에 있어서, 상기 (d) 단계는,
상기 2차 암호화는 하기 수학식을 이용하여 m비트 단위로 수행되는 것을 특징으로 하는 암호화 방법.
Figure pat00006

여기서, C0, C1, C2, C3는 1차 암호화된 데이터의 각각의 자리의 값을 나타내고, M0, M1, M2, M3는 행렬 비밀키의 각 키값을 나타냄.
6. The method of claim 5, wherein step (d)
Wherein the second encryption is performed in units of m bits using the following equation.
Figure pat00006

Here, C0, C1, C2, and C3 represent the values of respective digits of the primary encrypted data, and M0, M1, M2, and M3 represent the respective key values of the matrix secret key.
암호화 장치에 있어서,
서버로부터 시간 데이터를 수신하는 통신부;
상기 시간 데이터와 현재 비밀키를 이용하여 상기 현재 비밀키를 비밀키 갱신하는 갱신부; 및
갱신된 비밀키를 이용하여 데이터를 n(상기 n은 자연수임)비트 단위로 1차 암호화하고, 상기 1차 암호화된 데이터를 행렬 비밀키를 이용하여 2차 암호화하는 암호화부를 포함하는 암호화 장치.
An encryption apparatus comprising:
A communication unit for receiving time data from a server;
An update unit configured to update the current secret key using the time data and the current secret key; And
And an encrypting unit for first encrypting the data using n (n is a natural number) bit unit using the updated secret key, and performing second encryption using the matrix secret key.
복호화 방법에 있어서,
(aa) 클라이언트 디바이스의 접속에 따라 현재 시간을 검출하고, 상기 검출된 현재 시간을 시간 데이터로 재구성하는 단계;
(bb) 상기 시간 데이터와 현재 비밀키를 이용하여 상기 현재 비밀키를 갱신하는 단계;
(cc) 상기 클라이언트 디바이스로부터 암호화된 데이터를 수신하는 단계;
(dd) 상기 암호화된 데이터를 행렬 비밀키를 이용한 역행렬 연산하여 1차 복호하는 단계; 및
(ee) 상기 1차 복호된 데이터를 상기 갱신된 비밀키를 이용하여 2차 복호하는 단계를 포함하는 복호화 방법.
In the decoding method,
(aa) detecting a current time according to a connection of the client device, and reconstructing the detected current time with time data;
(bb) updating the current secret key using the time data and the current secret key;
(cc) receiving encrypted data from the client device;
(dd) performing an inverse matrix operation on the encrypted data using a matrix secret key to perform first-order decoding; And
(ee) secondary decoding the primary decrypted data using the updated secret key.
제8 항에 있어서,
상기 재구성된 시간 데이터를 상기 클라이언트 디바이스로 전송하되,
주기적으로 현재 시간을 검출하여 시간 데이터로 재구성하여 상기 클라이언트 디바이스로 전송하는 것을 특징으로 하는 복호화 방법.
9. The method of claim 8,
Transmitting the reconfigured time data to the client device,
Wherein the client device periodically detects the current time, reconstructs the time data, and transmits the reconstructed time data to the client device.
제8 항에 있어서,
상기 (dd) 단계는 상기 암호화된 데이터를 m(상기 m은 자연수) 비트 단위로 상기 행렬 비밀키를 이용하여 1차 복호하며,
상기 (ee) 단계는 n(상기 n은 자연수) 비트 단위로 상기 1차 복호된 데이터를 상기 갱신된 비밀키로 2차 복호하는 것을 특징으로 하는 복호화 방법.
9. The method of claim 8,
Wherein the step (dd) performs the first-order decoding of the encrypted data using the matrix secret key in units of m (m is a natural number) bits,
Wherein the step (ee) secondarily decrypts the primary decrypted data with n (n is a natural number) bit unit using the updated secret key.
클라이언트 디바이스의 접속에 따라 현재 시간을 검출하고, 상기 검출된 현재 시간을 시간 데이터로 재구성하는 동기화부;
상기 시간 데이터와 현재 비밀키를 이용하여 상기 현재 비밀키를 갱신하는 비밀키 갱신부;
상기 클라이언트 디바이스로부터 암호화된 데이터를 수신하는 통신부; 및
상기 암호화된 데이터를 행렬 비밀키를 이용한 역행렬 연산하여 1차 복호하고, 상기 1차 복호된 데이터를 상기 갱신된 비밀키를 이용하여 2차 복호하는 복호화부를 포함하는 복호화 장치.
A synchronization unit for detecting the current time according to the connection of the client device and reconstructing the detected current time as time data;
A secret key updating unit updating the current secret key using the time data and the current secret key;
A communication unit for receiving encrypted data from the client device; And
And decrypting the encrypted data by inverse matrix computation using a matrix secret key to perform first-order decoding, and secondarily decoding the first-decoded data using the updated secret key.
제11 항에 있어서,
상기 동기화부는 상기 시간 데이터를 상기 통신부를 통해 상기 클라이언트 디바이스로 전송하는 것을 특징으로 하는 복호화 장치.

12. The method of claim 11,
Wherein the synchronization unit transmits the time data to the client device through the communication unit.

KR1020160058202A 2016-05-12 2016-05-12 encryption method, decryption method and apparatus thereof KR101817424B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160058202A KR101817424B1 (en) 2016-05-12 2016-05-12 encryption method, decryption method and apparatus thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160058202A KR101817424B1 (en) 2016-05-12 2016-05-12 encryption method, decryption method and apparatus thereof

Publications (2)

Publication Number Publication Date
KR20170128667A true KR20170128667A (en) 2017-11-23
KR101817424B1 KR101817424B1 (en) 2018-02-22

Family

ID=60809583

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160058202A KR101817424B1 (en) 2016-05-12 2016-05-12 encryption method, decryption method and apparatus thereof

Country Status (1)

Country Link
KR (1) KR101817424B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190073665A (en) * 2017-12-19 2019-06-27 동서대학교 산학협력단 reliable data checking method of wireless encrypted communication

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190135663A (en) 2018-05-29 2019-12-09 한국항공우주연구원 Security-enhanced OFB mode encryption method
KR102276669B1 (en) * 2021-04-12 2021-07-13 (주)한컴인텔리전스 Fish-shoal ecosystem monitoring system apparatus for detecting the abnormality of fish-shoal ecosystem and the operating method thereof

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101077973B1 (en) * 2009-12-14 2011-10-31 고려대학교 산학협력단 Method of encryption for binary data and System thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190073665A (en) * 2017-12-19 2019-06-27 동서대학교 산학협력단 reliable data checking method of wireless encrypted communication

Also Published As

Publication number Publication date
KR101817424B1 (en) 2018-02-22

Similar Documents

Publication Publication Date Title
CN108200028B (en) Method and system for safely acquiring trusted data of server by using block chain
JP6221014B1 (en) Secure shared key sharing system and method
US20200259647A1 (en) Quantum-augmentable hybrid encryption system and method
JP7454564B2 (en) Methods, user devices, management devices, storage media and computer program products for key management
US10880100B2 (en) Apparatus and method for certificate enrollment
JP5855696B2 (en) Block encryption method and block decryption method including integrity verification
JP6139804B2 (en) Re-encryption key generation device, re-encryption device, encryption device, decryption device, and program
EP3831013A1 (en) System and method to protect data privacy of lightweight devices using blockchain and multi-party computation
US20150350196A1 (en) Terminal authentication system, server device, and terminal authentication method
US9374222B2 (en) Secure communication of data between devices
EP3624418B1 (en) Method for data transmission, battery management system, and storage medium
US20160380768A1 (en) Data management device, system, re-encryption device, data sharing device, and storage medium
US20150341172A1 (en) Key sharing network device and configuration thereof
JP2016158189A (en) Change direction with key control system and change direction with key control method
CN114008967A (en) Authenticated lattice-based key agreement or key encapsulation
CN113890731B (en) Key management method, device, electronic equipment and storage medium
KR101817424B1 (en) encryption method, decryption method and apparatus thereof
CN112997448A (en) Public/private key system with reduced public key size
US20210266175A1 (en) Device for data encryption and integrity
CN112818404B (en) Data access permission updating method, device, equipment and readable storage medium
US9825920B1 (en) Systems and methods for multi-function and multi-purpose cryptography
US20180167205A1 (en) Communication apparatus and cryptographic processing system
CN106534077B (en) A kind of identifiable proxy re-encryption system and method based on symmetric cryptography
CN113132078B (en) Block chain privacy protection method and block chain system based on homomorphism promise
CN113890759B (en) File transmission method, device, electronic equipment and storage medium

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant