Apparatus and method for encryption
10469258 · 2019-11-05
Assignee
Inventors
Cpc classification
G09C1/00
PHYSICS
H04L9/083
ELECTRICITY
H04L63/0428
ELECTRICITY
H04L9/0861
ELECTRICITY
H04L9/0618
ELECTRICITY
International classification
H04L9/06
ELECTRICITY
G09C1/00
PHYSICS
Abstract
Disclosed are an encryption apparatus and method. The encryption apparatus includes a storage configured to store a static key table, and at least one processor configured to implement an authenticator configured to perform authentication with an external apparatus and acquire authentication information and a key table generator configured to generate a dynamic key table using authentication information acquired through the authentication.
Claims
1. An encryption apparatus comprising: a storage configured to store a cipher algorithm including at least one static key table; and at least one processor configured to implement: an authenticator configured to perform authentication with an external apparatus storing the at least one static key table; a key table generator configured to generate at least one dynamic key table using authentication information acquired through the authentication; and an encryption/decryption unit configured to add the at least one dynamic key table to the cipher algorithm and perform encryption or decryption using the cipher algorithm to which the at least one dynamic key table is added, wherein each of the at least one static key table is an unchanged lookup table that is applied in advance during generation of the cipher algorithm, and wherein the key table generator is further configured to generate the at least one dynamic key table using the at least one static key table included in the cipher algorithm and the authentication information.
2. The encryption apparatus of claim 1, wherein the at least one processor is further configured to implement a key table provider configured to provide the at least one dynamic key table to the external apparatus.
3. An encryption apparatus comprising: a storage configured to store a cipher algorithm including at least one static key table; and at least one processor configured to implement: an authenticator configured to perform authentication with an external apparatus storing the at least one static key table; a key table acquirer configured to transmit authentication information acquired through the authentication to a key table generation server and receive at least one dynamic key table generated using the transmitted authentication information from the key table generation server; and an encryption/decryption unit configured to add the at least one dynamic key table to the cipher algorithm and perform encryption or decryption using the cipher algorithm to which the at least one dynamic key table is added, wherein each of the at least one static key table is an unchanged lookup table that is applied in advance during generation of the cipher algorithm, and wherein the key table acquirer is further configured to receive the at least one dynamic key table generated using the at least one static key table stored in the key table generation server and the transmitted authentication information from the key table generation server.
4. An encryption apparatus comprising: a storage configured to store a cipher algorithm including at least one static key table; and at least one processor configured to implement: an authenticator configured to perform authentication with an external apparatus storing the at least one static key table; a key table acquirer configured to receive, from the external apparatus, at least one dynamic key table generated using authentication information acquired through the authentication; and an encryption/decryption unit configured to add the at least one dynamic key table to the cipher algorithm and perform encryption or decryption using the cipher algorithm to which the at least one dynamic key table is added, wherein each of the at least one static key table is an unchanged lookup table that is applied in advance during generation of the cipher algorithm, and wherein the key table acquirer is further configured to receive the at least one dynamic key table generated using the at least one static key table stored in the external apparatus and the authentication information from the external apparatus.
5. An encryption method comprising: storing a cipher algorithm including at least one static key table; performing authentication with an external apparatus storing the at least one static key table; generating at least one dynamic key table using authentication information acquired through the authentication; adding the at least one dynamic key table to the cipher algorithm; and performing encryption or decryption using the cipher algorithm to which the at least one dynamic key table is added, wherein each of the at least one static key table is an unchanged lookup table that is applied in advance during generation of the cipher algorithm, and wherein generating at least one dynamic key table generates the at least one dynamic key table using the at least one static key table included in the cipher algorithm and the authentication information.
6. The encryption method of claim 5, further comprising providing the at least one dynamic key table to the external apparatus.
7. An encryption method comprising: storing a cipher algorithm including at least one static key table; performing authentication with an external apparatus storing the at least one static key table; transmitting authentication information acquired through the authentication to a key table generation server; receiving, from the key table generation server, at least one dynamic key table generated using the transmitted authentication information; adding the at least one dynamic key table to the cipher algorithm; and performing encryption or decryption using the cipher algorithm to which the at least one dynamic key table is added, wherein each of the at least one static key table is an unchanged lookup table that is applied in advance during generation of the cipher algorithm, and wherein receiving the at least one dynamic key table receives the at least one dynamic key table generated using at least one static key table stored in the key table generation server and the transmitted authentication information from the key table generation server.
8. An encryption method comprising: storing a cipher algorithm including at least one static key table; performing authentication with an external apparatus storing the at least one static key table; receiving, from the external apparatus, at least one dynamic key table generated using authentication information acquired through the authentication; adding the at least one dynamic key table to the cipher algorithm; and performing encryption or decryption using the cipher algorithm to which the at least one dynamic key table is added, wherein each of the at least one static key table is an unchanged lookup table that is applied in advance during generation of the cipher algorithm, and wherein receiving the at least one dynamic key table receives the at least one dynamic key table generated using the at least one static key table stored in the external apparatus and the authentication information from the external apparatus.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The above and other objects, features and advantages of the present disclosure will become more apparent to those of ordinary skill in the art by describing in detail exemplary embodiments thereof with reference to the accompanying drawings, in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS
(13) Hereinafter, embodiments of the present disclosure will be described in detail with reference to the accompanying drawings. The following detailed description is provided to assist the reader in gaining a comprehensive understanding of the methods, apparatuses, and/or systems described herein. However, the description is only an example, and the present disclosure is not limited thereto.
(14) In describing embodiments of the present disclosure, when it is determined that a detailed description of known techniques associated with the present disclosure would unnecessarily obscure the subject matter of the present disclosure, the detailed description thereof will be omitted. Also, terms used herein are defined in consideration of the functions of the present disclosure and may be changed depending on a user, the intent of an operator, or a custom. Accordingly, the terms must be defined based on the following overall description of this specification. The terminology used herein is for the purpose of only describing embodiments of the present disclosure and should not be restrictive. The singular forms a, an, and the are intended to include the plural forms as well, unless the context clearly indicates otherwise. It should be understood that the terms comprises, comprising, includes, and/or including specify the presence of stated features, integers, steps, operations, elements, and/or components when used herein, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
(15)
(16) Referring to
(17) The storage 110 stores a portion of a cipher algorithm for encryption or decryption. In detail, the cipher algorithm may be implemented to perform encryption or decryption with at least one static key table and at least one dynamic key table, and the storage 110 may store the remaining portion of the cipher algorithm other than the dynamic key table. For example, when the cipher algorithm is composed of at least one static key table and at least one dynamic key table, the storage 110 may store the static key table.
(18) In this case, the key table may refer to a lookup table composed of random values induced from a seed value. Also, the static key table may refer to an unchanged key table that is applied in advance during generation of the cipher algorithm, and the dynamic key table may refer to a key table that is generated later and then added to or updated.
(19) The static key table may be independent of the dynamic key table. In this case, the static key table being independent means that the static key table is independently generated irrespective of the dynamic key table, and thus is not changed according to a change of the dynamic key table in the cipher algorithm.
(20) According to an embodiment of the present disclosure, the cipher algorithm may be a white-box cipher algorithm that is implemented by applying at least one static key table and at least one dynamic key table to a block cipher algorithm.
(21) For example, the cipher algorithm may be a white-box cipher algorithm that is implemented by applying a plurality of key tables to a block cipher algorithm such as an Advanced Encryption Standard (AES) algorithm, a Data Encryption Standard (DES) algorithm, an International Data Encryption (IDEA) algorithm, and a Blowfish algorithm.
(22) For example, as shown in
(23) The substitution function F may refer to any form of function that is cryptographically safe and configured to output input values as different values having the same length, and may include a block cipher algorithm such as, for example, an AES algorithm, a DES algorithm, a 3DES algorithm, an IDEA algorithm, and a Blowfish algorithm.
(24) As another example, the cipher algorithm may be a cipher algorithm obtained by applying the key tables to each round function F of a Feistel structure of a Feistel-structured block cipher algorithm such as, for example, a DES algorithm, as shown in
(25) In an implementation step for a cipher algorithm, a developer may predetermine the number of static key tables and dynamic key tables included in the cipher algorithm and positions at which the static key tables and the dynamic key tables are to be applied. Also, the remaining portion of the cipher algorithm other than the dynamic key tables may be stored in advance in the encryption apparatus 100 and provided to a user or may be received from a separate server through a safe channel and then stored.
(26) The authenticator 120 performs authentication with an external apparatus. In this case, the external apparatus may be an apparatus that shares the remaining portion of the cipher algorithm stored in the storage 110.
(27) In order to perform the authentication, the authenticator 120 may use various well-known authentication methods for sharing authentication information between both parties through authentication, for example, a password-based authentication method, a challenge-response authentication method, etc.
(28) The key table generator 130 generates at least one dynamic key table using authentication information acquired through the authentication performed by the authenticator 120.
(29) In detail, the key table generator 130 may generate the at least one dynamic key table using authentication information shared with the external apparatus through the authentication performed by the authenticator 120. In this case, the authentication information may be different depending on an authentication method used for the authentication.
(30) In detail, referring to
(31) The random number generator 131 may receive the authentication information from the authenticator 120 and repeatedly generate a random number ki.
(32) For example, when it is assumed that three random numbers are generated, the random number generator 131 may generate a first random number from the received authentication information and then generate a second random number from the generated first random number. Subsequently, the random number generator 131 may generate a third random number from the generated second random number.
(33) The operation unit 133 may generate random values for configuring a dynamic key table from the random numbers generated by the random number generator 131, and may generate at least one dynamic random key table including the generated random values.
(34) In detail, the operation unit 133 may generate random values by using a round function for generating a random value and apply the random number ki generated by the random number generator 131 to the round function every round.
(35) In detail,
(36) Referring to
(37) Subsequently, the operation unit 133 may perform a matrix operation between output result values of the two S-boxes to generate a random value ri. In this case, various matrix operations with characteristics for maximizing a diffusion effect on an input value, such as a matrix operation using a maximum distance separable (MDS) matrix, may be used as the matrix operation.
(38) The generation of a dynamic key table performed by the key table generator 130 is not necessarily limited to the examples shown in
(39) Also, according to an embodiment of the present disclosure, the key table generator 130 may additionally use a variety of information shared with the external apparatus other than the authentication information acquired through the authentication process to generate the dynamic key table. As a detailed example, since the external apparatus pre-shares the remaining portion of the cipher algorithm other than the dynamic key table as described above, the key table generator 130 may use a static key table stored in the storage 110 as well as the authentication information shared through the authentication process performed with the external apparatus to generate a dynamic key table.
(40) The encryption/decryption unit 140 performs encryption or decryption using the dynamic key table generated by the key table generator 130 and the static key table stored in the storage 110.
(41) In detail, the encryption/decryption unit 140 may add at least one dynamic key table generated by the key table generator 130 to the remaining portion of the cipher algorithm stored in the storage 110. In this case, a position at which the dynamic key table is applied in the cipher algorithm may be preset by a developer of the cipher algorithm, and the encryption/decryption unit 140 may add the dynamic key table to the remaining portion of the cipher algorithm stored in the storage 110.
(42) In an embodiment, the storage 110, the authenticator 120, the key table generator 130, and the encryption/decryption unit 140 shown in
(43)
(44) Referring to
(45) In the example shown in
(46) When a dynamic key table is generated by the key table generator 130, the key table provider 150 provides the generated dynamic key table to an external apparatus. In detail, the encryption apparatus 100 and the external apparatus share the same dynamic key table in the embodiment shown in
(47) In an embodiment, the storage 110, the authenticator 120, the key table generator 130, the encryption/decryption unit 140, and the key table provider 150 shown in
(48)
(49) Referring to
(50) In the example shown in
(51) The key table acquirer 730 acquires at least one dynamic key table from an external apparatus or a key table generation server.
(52) For example, the key table acquirer 730 may receive at least one dynamic key table generated using authentication information shared through an authentication process with an external apparatus. In this case, the external apparatus may be, for example, the encryption apparatus 600 shown in
(53) As another example, the key table acquirer 730 may provide authentication information shared with an external apparatus through the authentication process to a key table generation server. In this case, the key table generation server may generate at least one dynamic key table using the provided authentication information, and the key table acquirer 730 may receive the dynamic key table generated by the key table generation server. Also, the external apparatus may receive the dynamic key table generated by the key table generation server. Accordingly, the external apparatus and the encryption apparatus 700 share the same dynamic key table.
(54) In an embodiment, the storage 710, the authenticator 720, the key table acquirer 730, and the encryption/decryption unit 740 shown in
(55)
(56) For example, the method shown in
(57) Referring to
(58) In this case, when the authentication is successful (820), the encryption apparatus 100 generates at least one dynamic key table using the authentication information shared with the external apparatus through the authentication (830).
(59) In this case, according to an embodiment, the encryption apparatus 100 may generate the at least one dynamic key table using the shared authentication information and the static key table of the cipher algorithm.
(60) Subsequently, the encryption apparatus 100 adds the generated dynamic key table to the remaining portion of the cipher algorithm (840).
(61) Subsequently, the encryption apparatus 100 performs encryption or decryption using the cipher algorithm to which the dynamic key table is added (850).
(62)
(63) For example, the method shown in
(64) Referring to
(65) In this case, when the authentication is successful (920), the encryption apparatus 600 generates at least one dynamic key table using the authentication information shared with the external apparatus through the authentication (930).
(66) In this case, according to an embodiment, the encryption apparatus 600 may generate the at least one dynamic key table using the shared authentication information and the static key table of the cipher algorithm.
(67) Subsequently, the encryption apparatus 600 adds the generated dynamic key table to the remaining portion of the cipher algorithm (940).
(68) Subsequently, the encryption apparatus 600 provides the generated dynamic key table to the external apparatus (950).
(69) Subsequently, the encryption apparatus 600 performs encryption or decryption using the cipher algorithm to which the dynamic key table is added (960).
(70)
(71) For example, the method shown in
(72) Referring to
(73) In this case, when the authentication is successful (1020), the encryption apparatus 700 receives at least one dynamic key table generated using the authentication information shared through the authentication process from the external apparatus (1030).
(74) In this case, depending on the embodiment, the received dynamic key table may be generated using the static key table and the shared authentication information.
(75) Subsequently, the encryption apparatus 700 adds the received dynamic key table to the remaining portion of the cipher algorithm (1040).
(76) Subsequently, the encryption apparatus 700 performs encryption or decryption using the cipher algorithm to which the dynamic key table is added (1050).
(77)
(78) For example, the method shown in
(79) Referring to
(80) In this case, when the authentication is successful (1120), the encryption apparatus 700 provides authentication information shared with the external apparatus through the authentication process to the key table generation server (1130).
(81) Subsequently, the encryption apparatus 700 receives at least one dynamic key table generated using the authentication information from the key table generation server (1140).
(82) Subsequently, the encryption apparatus 700 adds the received dynamic key table to the remaining portion of the cipher algorithm (1150).
(83) Subsequently, the encryption apparatus 700 performs encryption or encryption using the cipher algorithm to which the dynamic key table is added (1160).
(84) In the flowcharts shown in
(85) Embodiments of the present disclosure may include a computer-readable recording medium including a program for executing the methods described herein on a computer. The computer-readable recording medium may include any one or a combination of a program instruction, a local data file, a local data structure, etc. The medium may be designed and configured specifically for the present disclosure or can be typically available in the field of computer software. Examples of the computer-readable recording medium include a magnetic medium, such as a hard disk, a floppy disk, and a magnetic tape, an optical recording medium, such as a CD-ROM and a DVD, a magneto-optical medium, such as a floptical disk, and a hardware device specially configured to store and perform a program instruction, such as a ROM, a RAM, and a flash memory. Examples of the program instruction may include a machine code generated by a compiler and a high-level language code that can be executed in a computer using an interpreter.
(86) According to embodiments of the present disclosure, by sharing only a portion of an implementation of a cipher algorithm, instead of sharing the entire implementation of the cipher algorithm, and then generating the remaining portion through authentication when an encryption/decryption service is applied to share the generated portion, it is possible to prevent use of an unauthorized user and enhance safety in various embodiments including an Internet of things (IoT) that is vulnerable to an attack such as an attack for stealing an algorithm.
(87) Although example embodiments of the present disclosure have been described in detail, it will be understood by those skilled in the art that various changes may be made without departing from the spirit or scope of the present disclosure. Thus, the scope of the present disclosure is to be determined by the following claims and their equivalents, and shall not be restricted or limited by the foregoing detailed description.