Patent Description:
The necessity of a single security system is emerging to securely protect data under multiple system operating environments including a cloud environment and an on-premise environment.

In order to provide a single security system, a method of directly expanding a network, a method of directly registering a cryptographic key for data encryption in a key management system provided in a cloud environment, a method of constructing a distributor's cryptographic key management system for each cloud, etc. have been proposed, but these methods are used only in a limited way due to cost and performance problems. <CIT> refers to IAAS-aided access control for information centric networking with internet-of-things. A producer communicates over a network with a user application in an infrastructure-as-a-service, laaS, and an laaS node. The producer encrypts content with first encryption using a first key and second encryption using a second key, to produce twice encrypted content. The producer encrypts the second key with attribute-based encryption and symmetric encryption using an laaS key, to produce a twice encrypted second key. The producer provides to the user application the twice encrypted content, the twice encrypted second key, and key information configured to remove the first encryption from the twice encrypted content. The producer provides to the laaS node the laaS key to enable the laaS node to remove the symmetric encryption from the twice encrypted second key, such that the user application and the laaS node are constrained to exchange with each other key-related information and intermediate decryption results in order to recover the content.

It is the object of the present invention to provide improved data encryption/decryption apparatus and improved data encryption/decryption methods.

Embodiments disclosed herein are for securely protecting data.

In addition, embodiments disclosed herein are to provide a data encryption apparatus that considers an environment to which data is intended to be distributed and an application that accesses data.

In addition, embodiments disclosed herein are to provide a data decryption apparatus that considers an environment to which data is intended to be distributed and an application that accesses data.

A data encryption apparatus according to an embodiment including a receptor to receive distribution target data including one or more distribution target cryptographic keys and a distribution target application from a distributor environment, an encryptor to superencipher the distribution target data using a distribution target environment cryptographic key acquired from a distribution target environment and access information on the distribution target data, and a transmitter to transmit the superenciphered distribution target data and the distribution target application to the distribution target environment.

The distribution target data may further include at least one of one or more call information constituting the distribution target application and one or more environment variables of the distribution target application.

The access information may include ID information and password information referenced when the distribution target application is driven.

The distribution target application is an application to which a code sign has been applied, and the distribution target data may further include a public key to verify the code sign.

The distribution target data may further include a ciphertext obtained by encrypting the distribution target environment cryptographic key in the distribution target environment.

The encryptor may primarily encrypts the distribution target data using the access information, and secondarily encrypts the primarily encrypted distribution target data using the distribution target environment cryptographic key.

A data decryption apparatus according to an embodiment including a receptor to receive distribution target data including one or more cryptographic keys intended to be distributed to a distribution target environment and superenciphered using a distribution target environment cryptographic key acquired from the distribution target environment and access information on the distribution target data, a decryptor to primarily decrypt the superenciphered distribution target data using a decryption key acquired from the distribution target environment and to secondarily decrypt the primarily decrypted distribution target data using the access information on the distribution target data when the primary decryption is successful, and a verifier to verify a code sign of a distribution target application using a code signing public key included in the distribution target data when the decryptor succeeds in the secondary decryption.

A data encryption method according to an embodiment including receiving distribution target data including one or more distribution target cryptographic keys and a distribution target application from a distributor environment, distributing access information on the distribution target data and the distribution target application to a distribution target environment, superenciphering the distribution target data using a distribution target environment cryptographic key acquired from a distribution target environment and access information on the distribution target data, and transmitting the superenciphered distribution target data to the distribution target environment.

The distribution target application is an application to which a code sign has been applied, and the distribution target data may further include a public key for verifying the code sign.

In the superenciphering, the distribution target data may be primarily encrypted using the access information and the primarily encrypted distribution target data may be secondarily encrypted using the distribution target environment cryptographic key.

A data decryption method according to an embodiment including receiving distribution target data including one or more cryptographic keys intended to be distributed to a distribution target environment and superenciphered using a distribution target environment cryptographic key acquired from the distribution target environment and access information on the distribution target data, primarily decrypting the superenciphered distribution target data using a decryption key acquired from the distribution target environment, secondarily decrypting the primarily decrypted distribution target data using the access information on the distribution target data when the primary decryption is successful, and verifying a code sign of a distribution target application using a code signing public key included in the distribution target data when the secondary decryption is successful.

According to the disclosed embodiments, it is possible to allow access to the cryptographic key of the distribution target data only under an intended environment and an intended application by decrypting the superenciphered data to be distributed in the primary and secondary stages.

In addition, according to the disclosed embodiments, a cryptographic key for data encryption may be managed by the distributor's application, not the distribution target environment, thereby capable of allowing the distributor to take an initiative in data security.

In addition, according to the disclosed embodiments, network configuration costs can be reduced by not requiring a network connection to provide cryptographic keys between distribution target environments.

Hereinafter, specific embodiments of the present invention will be described with reference to the accompanying drawings. The following detailed description is provided to aid in a comprehensive understanding of a method, a device and/or a system described in the present specification. However, the detailed description is only for illustrative purpose and the present invention is not limited thereto.

In describing the embodiments of the present invention, when it is determined that a detailed description of known technology related to the present invention may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted. In addition, terms to be described later are terms defined in consideration of functions in the present invention, which may vary depending on intention or custom of a user or operator. Therefore, the definition of these terms should be made based on the contents throughout this specification. The terms used in the detailed description are only for describing the embodiments of the present invention and should not be used in a limiting sense. Unless explicitly used otherwise, an expression in a singular form includes a meaning of a plural form. In this description, expressions such as "including" or "comprising" are intended to indicate certain properties, numbers, steps, elements, and some or combinations thereof, and such expressions should not be interpreted to exclude the presence or possibility of one or more other properties, numbers, steps, elements other than those described, and some or combinations thereof.

In some embodiments, a communication network may include the Internet, one or more local area networks, wide area networks, cellular networks, mobile networks, other types of networks, or a combination of these networks.

<FIG> is a diagram illustrating a data encryption system <NUM> according to an embodiment.

Referring to <FIG>, the data encryption system <NUM> according to an embodiment includes a distributor environment <NUM>, a data encryption apparatus <NUM>, and a distribution target environment <NUM>.

According to an embodiment, the distributor environment <NUM> means a system that distributes an application or cryptographic key to the distribution target environment <NUM>, and may also be referred to as an on-premise environment, on-prem environment, etc..

According to an embodiment, the data encryption apparatus <NUM> may mean an apparatus that performs a function of encrypting data received from a distributor environment so that the data can be decrypted only under a specific distribution target environment <NUM> and transmitting the data to the distribution target environment <NUM>.

According to an embodiment, the distribution target environment (DTE) <NUM> may mean a system which is located outside the distributor environment <NUM> and to which information including an application or a cryptographic key is distributed.

For example, a 'cloud environment', which is a representative distribution target environment <NUM>, is an environment that provides virtualized system resources through the Internet, and through this, a distributor can process a specific operation or task with a processing device in the cloud environment rather than a processing device owned by the distributor.

In addition, the distribution target application means an apparatus that is distributed to various distribution target environments <NUM> by the distributor to perform an information exchange function between a key management system in the distribution target environment <NUM>, a data decryption apparatus <NUM> and a database in the distribution target environment <NUM>, and accesses distribution target data under the control of the data decryption device <NUM> when receiving a driving command from the distributor.

In addition, the 'key management system (KMS) in the distribution target environment <NUM>' means an apparatus that generates a cryptographic key from the distribution target environment <NUM>, encrypts the cryptographic key, and transmits the cryptographic key generated from the distribution target environment <NUM> and a value obtained by encrypting the cryptographic key to the distributor environment <NUM>.

In addition, the 'database in the distribution target environment <NUM>' is an apparatus that stores a plurality of pieces of information transmitted to the distribution target environment <NUM>, and the 'database in the distributor environment <NUM>' means an apparatus that stores a plurality of pieces of information transmitted to the distributor environment <NUM>.

In addition, 'distribution target data' means a set of a series of information generated in the distributor environment <NUM>, encrypted in the data encryption apparatus, and transmitted to the data decryption apparatus <NUM>. For example, the 'distribution target data' may include one or more distribution target cryptographic keys. Hereinafter, it will be described in detail with reference to <FIG>.

In addition, 'access information on distribution target data' means a set of information used to encrypt and decrypt the distribution target data.

In addition, 'access information based encryption (AIE)' means an encryption technique that encrypts distribution target data based on specific access information corresponding to a specific distribution target application so that only specific distribution target applications can access the distribution target data.

<FIG> is a block diagram illustrating a data encryption apparatus <NUM> according to an embodiment. Referring to <FIG>, the data encryption apparatus <NUM> according to an embodiment includes a receptor <NUM>, an encryptor <NUM>, and a transmitter <NUM>.

The receptor <NUM> receives distribution target data including one or more distribution target cryptographic keys and a distribution target application from the distributor environment <NUM>.

According to an embodiment, the distribution target data may further include at least one of one or more call information constituting the distribution target application and one or more environment variables of the distribution target application.

Specifically, one or more call information may include class information constituting a distribution target application and method information constituting a class.

In addition, specifically, one or more environment variables of the distribution target application are information that the data decryption device <NUM> checks when the distribution target application accesses the distribution target data for driving, and these environment variables may include at least one of one or more white list information and one or more black list information.

In more detail, the white list information is one or more conditions that should be satisfied in order to drive a distribution target application that accesses the distribution target data, and may include a location on a path in which the distribution target application is executed, an operating system version of the distribution target application, a host name of a distribution target application system, etc..

In addition, the black list information is one or more conditions that should not to be satisfied in order to drive the distribution target application that accesses the distribution target data, and may include a value of specific parameter, specific setting, etc. that should not be satisfied when the distribution target application is normally driven.

According to an embodiment, the distribution target application may be an application to which a code has been applied, and the distribution target data may further include a code signing public key for verifying this code sign.

In this case, the 'code sign' may perform a function of ensuring that portions of the code included in a signing object are unchanged and reliable.

The encryptor <NUM> superenciphers the distribution target data using a distribution target environment cryptographic key acquired from the distribution target environment <NUM> and access information on the distribution target data.

According to an embodiment, the distribution target environment cryptographic key acquired from the distribution target environment <NUM> may be generated by the key management system in the distribution target environment <NUM>.

According to an embodiment, the access information on the distribution target data may include ID information and password information referenced when the distribution target application is driven.

According to an embodiment, the distribution target data may further include a ciphertext obtained by encrypting the distribution target environment cryptographic key in the distribution target environment <NUM>.

According to an embodiment, the encryptor <NUM> may primarily encrypt the distribution target data using access information on the distribution target data and secondarily encrypt the primarily encrypted distribution target data using the distribution target environment cryptographic key.

Specifically, the encryptor <NUM> may primarily encrypt the distribution target data by including a value, which is obtained by encrypting a code signing public key for verifying a code-signed distribution target application using access information on the distribution target data, in the distribution target data.

In addition, the encryptor <NUM> may secondarily encrypt the distribution target data by including a value, which is obtained by encrypting the distribution target environment cryptographic key acquired from the distribution target environment <NUM> using a key management system in the distribution target environment <NUM>, in the distribution target environment <NUM>.

The transmitter <NUM> transmits superenciphered distribution target data and the distribution target application to the distribution target environment <NUM>.

According to an embodiment, when the receptor <NUM> receives a distribution request from the distributor environment <NUM>, the transmitter <NUM> may transmit the superenciphered distribution target data to the distribution target environment <NUM>.

In this case, the 'distribution request' may be a command or signal requesting the data encryption apparatus <NUM> to transmit the superenciphered distribution target data to the data decryption apparatus <NUM> in the distribution target environment <NUM>.

<FIG> is a block diagram illustrating the data decryption apparatus <NUM> according to an embodiment.

Referring to <FIG>, the data decryption apparatus <NUM> according to an embodiment includes a receptor <NUM>, a decryptor <NUM>, and a verifier <NUM>.

The data decryption apparatus <NUM> means an apparatus that is distributed to various distribution target environments <NUM> by a distributor and receives encrypted distribution target data from the data encryption apparatus <NUM>, one or more pieces of information and one or more cryptographic keys for data decryption and, using this, controls the encrypted distribution target data distributed to the distribution target environment <NUM> to be decrypted only under preset conditions. For example, the data decryption apparatus <NUM> may be a device that executes one or more commands for the control described above.

In addition, when the data decryption device <NUM> performs the control described above without the intervention of a distributor, the data decryption device <NUM> may be referred to as an agent.

According to an embodiment, if a network for receiving the distribution target data is connected to the data decryption apparatus <NUM>, the data decryption apparatus <NUM> may perform functions described in the following embodiments even if there is no other physical or electrical connection between the distributor environment <NUM> or the data encryption apparatus <NUM>.

According to an embodiment, before receiving the distribution target data from the data encryption apparatus <NUM>, the data decryption apparatus <NUM> may be distributed together when a distribution target application is distributed to the distribution target environment <NUM>.

The receptor <NUM> receives distribution target data including one or more cryptographic keys intended to be distributed to the distribution target environment <NUM> and superenciphered using a distribution target environment cryptographic key acquired from the distribution target environment and access information on distribution target data.

The decryptor <NUM> primarily decrypts the superenciphered distribution target data using a decryption key acquired from the distribution target environment <NUM>, and secondarily decrypts the primarily decrypted distribution target data using access information on the distribution target data when the primary decryption is successful,.

Specifically, first, in the primary decryption, the decryptor <NUM> decrypts a value, which is obtained by encrypting the distribution target environment cryptographic key obtained from the distribution target environment <NUM> using a key management system in the distribution target environment <NUM>, using the key management system in the distribution target environment <NUM>.

Thereafter, the decryptor <NUM> decrypts the distribution target data using the decryption key acquired from the distribution target environment <NUM> corresponding to the distribution target environment cryptographic key acquired from the distribution target environment <NUM>.

In addition, in the secondary decryption, the decryptor <NUM> checks whether preset access information required to access the distribution target data decrypted through the primary decryption and precreated access information in a setting item of the distribution target application are identical information, and decrypts the distribution target data only when the two access information are identical.

When the decryptor <NUM> succeeds in the secondary decryption, the verifier <NUM> verifies the code sign of the distribution target application using the code signing public key included in the distribution target data.

Specifically, the verifier <NUM> verifies that the corresponding distribution target application is distributed from the distributor environment <NUM> by checking the code sign of the distribution target application using the code signing public key in the distribution target data. If the code sign of the distribution target application is not checked using the code signing public key in the distribution target data, the verifier <NUM> may determine that the distribution target application is distributed from an untrusted environment and may not allow the distribution target application to be driven.

According to an embodiment, when it is determined that the code sign of the distribution target application is reliable, the verifier <NUM> may determine whether to drive the distribution target application by comparing data in the distribution target application with the distribution target data.

For example, the verifier <NUM> compares the call information and environment variables among the data in the distribution target application with the call information and environment variables among the distribution target data, and allow the distribution target application to be driven when a preset ratio or more among all the call information and environment variables which are comparison targets is the same.

According to an embodiment, when the verification of the code sign of the distribution target application is successful, the verifier <NUM> can perform code sign verification according to a preset cycle when the distribution target application for which code sign verification is successful.

Specifically, when the verifier <NUM> receives a driving request for the corresponding distribution target application again from the distributor environment <NUM> after the distribution target application for which code sign verification is successful is driven, if the corresponding driving request is received before a preset period has elapsed from the latest driving time point of the distribution target application, the verifier <NUM> may allow the distribution target application to be driven without verifying the code sign for the distribution target application.

<FIG> is a diagram for describing distribution target data according to an embodiment.

Referring to <FIG>, the distribution target data according to an embodiment is composed of a header field and a data field.

The header field may include a header length <NUM>, a timestamp <NUM>, a data length <NUM>, and an encrypted distribution target environment cryptographic key <NUM>.

Specifically, the header length <NUM> means information on a length of the header field in the distribution target data.

In addition, the timestamp <NUM> means information on the time taken to generate the distribution target data.

In addition, the data length <NUM> means information on the total length of the data field of the decrypted distribution target data.

In addition, the encrypted distribution target environment cryptographic key <NUM> may include a result value obtained by encrypting the cryptographic key generated by the key management system in the distribution target environment <NUM> using the key management system in the distribution target environment <NUM>, and the encrypted result value can be decrypted only when the key management system in the distribution target environment <NUM> is used.

According to an embodiment, the key management system in the distribution target environment <NUM> may use a hardware token method, a password-based encryption (PBE) method, etc..

The data field may include a distribution target environment encryption length <NUM> and a distribution target environment encryption data <NUM>, and the distribution target environment encryption data <NUM> may include an access information based encryption (AIE) length <NUM> and AIE encrypted data.

Specifically, the distribution target environment encryption length <NUM> means information on the length of the distribution target data encrypted using a cryptographic key generated by the key management system in the distribution target environment <NUM>.

In addition, the distribution target environment encryption data <NUM> means information on distribution target data encrypted by the key management system in the distributor environment <NUM> using the cryptographic key generated by the key management system in the distribution target environment <NUM>.

In addition, the AIE encryption length <NUM> means information on the length of the distribution target data encrypted using the access information on the distribution target data.

In addition, the AIE encrypted data means information on the distribution target data encrypted by the key management system in the distributor environment <NUM> using access information on the distribution target data.

For example, AIE encrypted data may include at least one of an AIE encryption cryptographic key <NUM>, an AIE encryption code signing public key <NUM>, AIE encryption call information <NUM>, and an AIE encryption environment variable <NUM>.

In this case, the AIE encryption cryptographic key <NUM> means information on the cryptographic key encrypted by the key management system in the distributor environment <NUM> using access information on the distribution target data.

In addition, the AIE encryption code signing public key <NUM> means information on a public key for code sign verification for the distribution target application, which is encrypted by the key management system in the distributor environment (<NUM>) using the access information on the distribution target data.

In addition, the AIE encryption call information <NUM> means information on a class and a method in the distribution target application, which is encrypted by the key management system in the distributor environment <NUM> using the access information on distribution target data.

In addition, the AIE encryption environment variable <NUM> means information referenced when driving the distribution target application, which is encrypted by the key management system in the distributor environment <NUM> using access information on the distribution target data.

<FIG> is a flowchart illustrating a data encryption method according to an embodiment.

The method illustrated in <FIG> may be performed, for example, by the data encryption apparatus <NUM> described above.

Referring to <FIG>, first, the data encryption apparatus <NUM> receives distribution target data including one or more distribution target cryptographic keys and a distribution target application from the distributor environment <NUM> (<NUM>).

Thereafter, the data encryption apparatus <NUM> distributes access information on the distribution target data and the distribution target application to the distribution target environment <NUM> (<NUM>).

Thereafter, the distribution target data is superenciphered using the distribution target environment cryptographic key acquired from the distribution target environment <NUM> and access information on the distribution target data (<NUM>).

Thereafter, the data encryption apparatus <NUM> transmits the superenciphered distribution target data to the distribution target environment <NUM> (<NUM>).

In the flowchart illustrated in <FIG>, the method is described by dividing the method into a plurality of steps, but at least some of the steps may be performed in a different order, performed together by being combined with other steps, omitted, performed by being divided into detailed steps, or performed by being added with one or more steps (not illustrated).

<FIG> is a flowchart illustrating a data decryption method according to an embodiment.

The method illustrated in <FIG> may be performed, for example, by the data decryption apparatus <NUM> described above.

Referring to <FIG>, first, the data decryption apparatus <NUM> includes one or more distribution target cryptographic keys intended to be distributed to the distribution target environment <NUM>, and receives the superenciphered distribution target data using the distribution target environment cryptographic key acquired from the distribution target environment <NUM> and access information on the distribution target data (<NUM>).

Thereafter, the data decryption apparatus <NUM> primarily decrypts the superenciphered distribution target data using the decryption key acquired from the distribution target environment <NUM> (<NUM>).

Thereafter, when the primary decryption of the superenciphered distribution target data is successful, the data decryption apparatus <NUM> secondarily decrypts the primarily decrypted distribution target data using access information on the distribution target data (<NUM>, <NUM>).

Thereafter, when the secondary decryption of the primarily decrypted distribution target data is successful, the data decryption apparatus <NUM> verifies the code sign of the distribution target application using the code signing public key included in the distribution target data (<NUM>, <NUM>).

<FIG> is a flowchart illustrating a data decryption method according to another embodiment.

Steps <NUM> to <NUM> respectively corresponding to steps <NUM> to <NUM> in an embodiment described with reference to <FIG> are the same or similar steps as described in an embodiment, and thus a more detailed description thereof will be omitted.

The data decryption apparatus <NUM> may be distributed together when the distribution target application is distributed to the distribution target environment <NUM> before receiving the superenciphered distribution target data from the data encryption apparatus <NUM> (<NUM>).

<FIG> is a block diagram for illustratively describing a computing environment <NUM> that includes a computing device suitable for use in exemplary embodiments. In the illustrated embodiment, each component may have different functions and capabilities in addition to those described below, and additional components may be included in addition to those described below.

The illustrated computing environment <NUM> includes a computing device <NUM>. In an embodiment, the computing device <NUM> may be the data encryption apparatus <NUM>. In addition, the computing device <NUM> may be the data decryption apparatus <NUM>.

The computing device <NUM> includes at least one processor <NUM>, a computer-readable storage medium <NUM>, and a communication bus <NUM>. The processor <NUM> may cause the computing device <NUM> to operate according to the exemplary embodiment described above. For example, the processor <NUM> may execute one or more programs stored on the computer-readable storage medium <NUM>. The one or more programs may include one or more computer-executable instructions, which, when executed by the processor <NUM>, may be configured to cause the computing device <NUM> to perform operations according to the exemplary embodiment.

The computer-readable storage medium <NUM> is configured to store the computer-executable instruction or program code, program data, and/or other suitable forms of information. A program <NUM> stored in the computer-readable storage medium <NUM> includes a set of instructions executable by the processor <NUM>. In one embodiment, the computer-readable storage medium <NUM> may be a memory (volatile memory such as a random access memory, non-volatile memory, or any suitable combination thereof), one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, other types of storage media that are accessible by the computing device <NUM> and store desired information, or any suitable combination thereof.

The communication bus <NUM> interconnects various other components of the computing device <NUM>, including the processor <NUM> and the computer-readable storage medium <NUM>.

The computing device <NUM> may also include one or more input/output interfaces <NUM> that provide an interface for one or more input/output devices <NUM>, and one or more network communication interfaces <NUM>. The input/output interface <NUM> and the network communication interface <NUM> are connected to the communication bus <NUM>. The input/output device <NUM> may be connected to other components of the computing device <NUM> through the input/output interface <NUM>. The exemplary input/output device <NUM> may include a pointing device (such as a mouse or trackpad), a keyboard, a touch input device (such as a touch pad or touch screen), a voice or sound input device, input devices such as various types of sensor devices and/or photographing devices, and/or output devices such as a display device, a printer, a speaker, and/or a network card. The exemplary input/output device <NUM> may be included inside the computing device <NUM> as a component constituting the computing device <NUM>, or may be connected to the computing device <NUM> as a separate device distinct from the computing device <NUM>.

Meanwhile, the embodiment of the present invention may include a program for performing the methods described in this specification on a computer, and a computer-readable recording medium containing the program. The computer-readable recording medium may contain program instructions, local data files, local data structures, etc., alone or in combination. The computer-readable recording medium may be specially designed and constructed for the present invention, or may be commonly used in the field of computer software. Examples of computer-readable recording media include magnetic media such as a hard disk, a floppy disk, and a magnetic tape, optical recording media such as a CD-ROM and a DVD, and hardware devices such as a ROM, a RAM, a flash memory, etc., that are specially configured to store and execute program instructions are included. Examples of the program may include high-level language code that can be executed by a computer using an interpreter, etc., as well as machine language code generated by a compiler.

Claim 1:
A data encryption apparatus, comprising:
a receptor (<NUM>) configured to receive distribution target data including one or more distribution target cryptographic keys and a distribution target application from a distributor environment (<NUM>);
an encryptor (<NUM>) configured to superencipher the distribution target data by primarily encrypting the distribution target data using access information on the distribution target data, and by secondarily encrypting the primarily encrypted distribution target data using a distribution target environment cryptographic key acquired from a distribution target environment (<NUM>); and
a transmitter (<NUM>) configured to transmit the superenciphered distribution target data and the distribution target application to the distribution target environment (<NUM>),
wherein the distribution target application is an application to which a code sign has been applied, and the distribution target data further includes a public key to verify the code sign.