Patent Description:
As the demand for data security increases, secure booting of a booting apparatus is becoming mandatory. However, in order to further strengthen security, as the complexity of an encryption algorithm increases according to secure boot, the time it takes to complete booting is gradually increasing.

Accordingly, there is a need for a method of improving the booting speed while the booting apparatus operates according to an encryption algorithm for security.

<CIT>, <CIT>, and <NPL>; [<NPL> are relevant prior art.

The present invention provides a secure booting apparatus with enhanced security and speed, and a method of operating the same.

A secure booting apparatus is provided according to claim <NUM>.

A method of operating a secure booting apparatus is provided according to claim <NUM>. The further embodiments are defined in dependent clamis.

According to embodiments of the present invention, because some steps of the Montgomery algorithm are performed in a preparation operation, verification is completed by performing the remaining steps of the Montgomery algorithm in a booting operation, thereby providing a secure booting apparatus with enhanced security and speed and a method of operating the same.

Since the present invention may have diverse modified embodiments, preferred embodiments are illustrated in the drawings and are described in the detailed description. However, this does not limit the present invention within specific embodiments and it should be understood that the present invention covers all the modifications, equivalents, and replacements within the idea and technical scope of the present invention. In the description of the present invention, certain detailed explanations of the related art are omitted when it is deemed that they may unnecessarily obscure the essence of the present invention.

The terms used herein, only certain embodiments have been used to describe, is not intended to limit the present invention. It will be further understood that the terms "comprises" and/or "comprising" when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.

Embodiments of the present invention may be represented by the functional block configurations and various processing steps. Such functional blocks may be realized by a multiple number of hardware configurations performing particular functions and/or software configurations. For example, embodiments of the present invention may adopt IC formations such as memory, processors, logic units and look-up tables, which can perform various functions by controlling more than one microprocessor or by other control systems. Similarly to formation elements being capable of being executable by software programming or software factors, embodiments of the present invention may be realized by programming or scripting languages such as C, C++, Java and assembler, including various algorithms realized by a combination of data structures, processes, routines or other programming formations. Functional aspects may be realized by algorithms executed in more than one processor. In addition, embodiments of the present invention may adopt related-art technology for electronic environment set-up, signal processing, and/or data processing, etc. Terms such as "mechanism", "element", "means", and "formation" may be widely used, and not limited to mechanical and physical formations. The terms above may include meanings of series of routines of software related to a processor, etc..

Reference will now be made in detail to embodiments of the present invention, examples of which are illustrated in the accompanying drawings.

<FIG> is a block diagram illustrating a configuration of a secure booting apparatus <NUM> according to an embodiment.

Referring to <FIG>, the secure booting apparatus <NUM> according to an embodiment includes a memory <NUM> and a processor <NUM>. The secure booting apparatus <NUM> may further inlcude a communication interface <NUM>, and a user interface <NUM>.

The memory <NUM> may include a first memory <NUM>, a second memory <NUM>, and a third memory <NUM>. The first memory <NUM>, the second memory <NUM>, and the third memory <NUM> may be nonvolatile memories. The first memory <NUM>, the second memory <NUM>, and the third memory <NUM> may store different pieces of data, respectively.

The first memory <NUM> stores encrypted data and an encrypted header. The first memory <NUM> may be a NAND memory.

The second memory <NUM> stores a reference hashed public key and an Advanced Encryption Standard (AES) key. The second memory <NUM> may be a One Time Programmable (OTP) memory.

The third memory <NUM> stores a software-specific comparison magic number. Software may include, but is not limited to, a boot loader, a kernel, an operating system, an application, and the like. The third memory <NUM> may be boot read only memory (ROM).

The processor <NUM> generates decrypted data and decrypted header by applying an AES algorithm using the AES key stored in the second memory <NUM> to the encrypted data and encrypted header stored in the first memory <NUM>, the decrypted header including an RSA (Rivest, Schamir, Adelman) public key, a signature, and a pre key, generates a comparison hashed message by applying a secure hash algorithm (SHA) to the decrypted data, generates a final verification value by applying an RSA algorithm using the RAS public key and the pre key to the signature, compares a comparison hashed message with the final verification value, and determines that booting has failed if the comparison hashed message and the final verification value are different from each other.

The processor <NUM> may apply the RSA algorithm for sequentially performing Equations <NUM> to <NUM> to the signature. Equations <NUM> to <NUM> may be at least a portion of the Montgomery algorithm, which is a type of the RSA algorithm.

S may indicate the signature, P may indicate the pre key, and n may indicate a portion of an RSA public key (k, n).

A may indicate A in the left term of Equation <NUM>. k may indicate a portion of the RSA public key (k, n).

B may indicate B of the left term of Equation <NUM>. n may indicate a portion of the RSA public key (k, n), and R may indicate a final verification value.

The signature may be generated by applying the RSA algorithm using an RSA private key to a reference-hashed message generated by applying an SHA algorithm performing Equation <NUM> to unencrypted data.

M may indicate a reference-hashed message. An RSA private key (d, n) may be paired with the RSA public key (k, n).

Meanwhile, the pre key is be a result obtained by calculating Equation <NUM>.

P may be a pre key, C may be a constant, and n may be the RSA public key (k, n). C may be, for example, <NUM>^<NUM>, but is not limited thereto. Equation <NUM> may be at least a portion of the Montgomery algorithm, which is a type of the RSA algorithm.

The processor <NUM> may apply the SHA algorithm to the RSA public key to generate a comparison hashed public key, may compare the reference hashed public key stored in the second memory <NUM> and the comparison hashed public key, and may determine that booting has failed when the reference hashed public key and the comparison hashed public key are different from each other.

The processor <NUM> may compare the comparison magic number included in the third memory <NUM> with the reference magic number included in the decrypted header, and may determine that booting has failed if the comparison magic number and the reference magic number are different from each other.

The processor <NUM> may determine that booting is successful when the comparison hashed message and the final verification value are identical, the reference hashed public key and the comparison hashed public key are identical, and the comparison magic number and the reference magic number are identical. For example, when the comparison magic number and the reference magic number are the same, the reference hashed public key and the comparison hashed public key are the same, and the comparison hashed message and the final verification value are the same, the processor <NUM> may determine that booting is successful.

<FIG> and <FIG> are flowcharts for explaining a preparation operation method of a secure booting apparatus <NUM> according to an embodiment.

A preparation operation of the secure booting apparatus <NUM> is performed during the process of the secure booting apparatus <NUM>, and corresponds to an operation of storing data about a boot loader, a kernel, an operating system, and an application in the memory <NUM>. The preparation operation of the secure booting apparatus <NUM> may be performed by the secure booting apparatus <NUM> or by a process processor (not shown) other than the secure booting apparatus <NUM>, but is not limited thereto.

Hereinafter, a process in which the preparation operation is performed by the process processor (not shown) will be described in detail, which may be applied to the preparation operation performed by the secure booting apparatus <NUM> or other devices.

Referring to <FIG>, in operation S210, the process processor (not shown) generates an AES key, an RSA public key, and an RSA private key.

An RSA public key (k, n) and an RSA private key (d, n) may be paired.

Next, in operation S220, the process processor (not shown) generates a reference-hashed message by applying an SHA algorithm to the data.

The data may be images of the boot loader, the kernel, the operating system, the application, etc., but is not limited thereto.

Next, in operation S230, the process processor (not shown) generates a signature by applying an RSA algorithm using the RSA private key to the reference-hashed message.

In this case, the process processor (not shown) may generate a signature using Equation <NUM>.

Next, in operation S240, the process processor (not shown) generates a pre key by applying a portion of the RSA algorithm using the RSA public key.

In this case, the process processor (not shown) may generate a pre key using Equation <NUM>.

Next, in operation S250, the process processor (not shown) adds a reference magic number, the signature, the RSA public key, and the pre key to a header of the data.

Next, in operation S260, the process processor (not shown) generates encrypted data and encrypted header by applying an AES algorithm using the AES key to the data and header, and in operation S270, stores the encrypted data and encrypted header in the first memory <NUM>.

Referring to <FIG>, in operation S310, the process processor (not shown) generates a reference hashed public key by applying the SHA algorithm to the RSA public key.

Next, in operation S320, the process processor (not shown) stores the reference hashed public key and the AES key in the second memory <NUM>.

Although not shown in <FIG> and <FIG>, in addition to Equation <NUM>, other operations that do not affect security may be performed in the preparation operation of the secure booting apparatus <NUM> of the present invention. Accordingly, secure booting with enhanced security and speed may be performed because verification is completed by performing only operations affecting security in a booting operation.

<FIG> is a view for describing in detail a method of booting a secure booting apparatus according to an embodiment.

A booting operation of the secure booting apparatus <NUM> corresponds to an operation of verifying data about a boot loader, a kernel, an operating system, and an application stored in the memory <NUM> by a preparation operation of the secure booting apparatus <NUM> described above with reference to <FIG> and <FIG>. The booting operation of the secure booting apparatus <NUM> may be performed by the secure booting apparatus <NUM>, but is not limited thereto.

Referring to <FIG>, in operation S410, the processor <NUM> generates decrypted data and decrypted header by applying an AES algorithm using an AES key to encrypted data and encrypted header stored in the first memory <NUM>.

Next, in operation S420, the processor <NUM> compares the software-specific comparison magic number stored in the third memory <NUM> with a reference magic number included in the decrypted header.

Because of the comparison, in operation S490, if the comparison magic number and the reference magic number are different from each other, the processor <NUM> determines that booting has failed.

According to embodiments of the present invention, because the secure booting apparatus <NUM> is booted only when software-specific comparison information stored in the third memory <NUM> is verified using a result of decrypting software-specific information encrypted in the process and stored in the first memory <NUM>, boot security may be further strengthened.

On the other hand, if the comparison magic number and the reference magic number are the same, in operation S430, the processor <NUM> generates a comparison hashed public key by applying an SHA algorithm to an RSA public key included in the decrypted header.

Next, in operation S440, the processor <NUM> compares a reference hashed public key stored in the second memory <NUM> with the comparison hashed public key.

Because of the comparison, if the reference hashed public key and the comparison hashed public key are different from each other, in operation S490, the processor <NUM> determines that booting has failed.

According to embodiments of the present invention, because the secure booting apparatus <NUM> is booted only when encryption key information stored in the second memory <NUM> in the process is verified in the process by using a result of decrypting encryption key information encrypted in the process and stored in the first memory <NUM>, boot security may be further strengthened.

On the other hand, if the reference hashed public key and the comparison hashed public key are the same, in operation S450, the processor <NUM> generates a comparison-hashed message by applying the SHA algorithm to the decrypted data.

Next, in operation S460, the processor <NUM> generates a final verification value by applying an RSA algorithm using the RSA public key and the pre key included in the decrypted header to a signature included in the decrypted header.

In this case, the processor <NUM> may apply the RSA algorithm for sequentially performing Equations <NUM> to <NUM> to the signature included in the decrypted header.

Meanwhile, Montgomery algorithm is an algorithm for verifying encrypted information by sequentially applying Equation <NUM>, Equation <NUM>, Equation <NUM>, and Equation <NUM>. According to embodiments of the present invention, because some steps of the Montgomery algorithm applying Equation <NUM> have already been performed in the preparation operation, verification is completed only by performing the remaining steps of the Montgomery algorithm applying Equations <NUM> to <NUM> in the booting operation, so secure booting speed may be greatly improved.

Next, in operation S470, the processor <NUM> compares the comparison hashed message, a public key, and the final verification value.

Because of the comparison, if the comparison hash message and the final verification value are different from each other, in operation S490, the processor <NUM> determines that booting has failed.

According to embodiments of the present invention, because the secure booting apparatus <NUM> is booted only when a result of decrypting the header stored in the first memory <NUM> after being encrypted in the process is verified by using a result of decrypting the data encrypted in the process and stored in the first memory <NUM>, boot security may be further strengthened.

On the other hand, if the comparison hashed message and the final verification value are the same, in operation S480, the processor <NUM> determines that booting is successful.

According to embodiments of the present invention, because the secure booting apparatus <NUM> is booted only when verification of various information is completed in various ways, boot security may be further strengthened.

The present invention has been described above with reference to preferred embodiments thereof. Those of ordinary skill in the art to which the present invention pertains will understand that the present invention can be implemented in modified forms without departing from the essential characteristics of the present invention.

Claim 1:
A secure booting apparatus comprising:
a memory (<NUM>) configured to store encrypted data, an encrypted header, and a symmetric key, wherein the encrypted header includes a public key, a signature, and a pre key; and a processor (<NUM>) configured to generate decrypted data and a decrypted header by applying a symmetric key algorithm using the symmetric key to the encrypted data and the encrypted header, to generate a comparison hashed message by applying a hash algorithm to the decrypted data, to generate a final verification value by applying a public key algorithm using the public key and the pre key to the signature, and to determine whether booting is successful or not according to the result of comparing the comparison hashed message with the final verification value,
wherein the pre key is a result obtained by calculating P = (C ^ <NUM>) mod n,
where P indicates the pre key, C indicates a constant, and n indicates a portion of the public key.