WO2021071090A1 - 보안 부팅 장치 및 그 동작 방법 - Google Patents

보안 부팅 장치 및 그 동작 방법 Download PDF

Info

Publication number
WO2021071090A1
WO2021071090A1 PCT/KR2020/011608 KR2020011608W WO2021071090A1 WO 2021071090 A1 WO2021071090 A1 WO 2021071090A1 KR 2020011608 W KR2020011608 W KR 2020011608W WO 2021071090 A1 WO2021071090 A1 WO 2021071090A1
Authority
WO
WIPO (PCT)
Prior art keywords
public key
key
comparison
header
applying
Prior art date
Application number
PCT/KR2020/011608
Other languages
English (en)
French (fr)
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 EP20873436.8A priority Critical patent/EP4044056A4/en
Priority to US17/767,714 priority patent/US20240086543A1/en
Priority to CN202080071074.8A priority patent/CN114514725A/zh
Publication of WO2021071090A1 publication Critical patent/WO2021071090A1/ko

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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • 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
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Definitions

  • the present invention relates to a secure boot device with improved speed and a method of operating the same.
  • the problem to be solved by the present invention is to provide a secure boot device with enhanced security and speed, and a method of operating the same.
  • a secure boot device includes a memory for storing encrypted data, a header, and a symmetric key; Decrypted data and header are generated by applying a symmetric key algorithm using the symmetric key to the encrypted data and header, and the decrypted header includes a public key and a free key generated from the public key, and the decrypted A comparison hashed message is generated by applying a hash algorithm to data, and a final verification value is generated by applying a public key algorithm using the public key and the free key to the decrypted header, and the comparison hashed message and the final And a processor that compares a verification value and determines that a boot fails when the comparison hashed message and the final verification value are different.
  • a signature is further included in the decrypted header, and the processor may generate the final verification value by applying a public key algorithm using the public key and the free key to the signature.
  • the decoded header further includes a signature
  • B (A ⁇ k) mod n
  • R B mod n
  • S denotes the signature
  • P denotes the free key
  • k and n denotes the public key
  • R denotes the final verification value
  • the signature is generated by applying a public key algorithm using a private key to a reference hashed message generated by applying a hash algorithm to unencrypted data, and the private key is a pair of the public key. It can be achieved.
  • the memory further stores a reference hashed public key
  • the processor generates a comparison hashed public key by applying a hash algorithm to the public key, compares the reference hashed public key with the comparison hashed public key, and compares the reference hashed public key with the comparison hashed public key. If the keys are different, it can be determined as a boot failure.
  • the memory further stores a software-specific comparison magic number
  • the decoded header further includes a reference magic number
  • the processor compares the comparison magic number with the reference magic number, and If the comparison magic number and the reference magic number are different, it may be determined as booting failure.
  • the encrypted data and header may be stored in a NAND memory
  • the symmetric key may be stored in a One Time Programmable (OTP) memory different from the NAND memory.
  • OTP One Time Programmable
  • a symmetric key algorithm using a symmetric key stored in the memory is applied to the encrypted data and header stored in the memory by a processor.
  • the decrypted header includes a public key and a free key, and generating, by the processor, a final verification value by applying the public key and a public key algorithm using the free key to the decrypted header; And comparing the comparison hashed message with the final verification value, and determining a boot failure if the comparison hashed message and the final verification value are different from each other.
  • the decrypted header further includes a signature
  • generating the final verification value comprises generating the final verification value by applying a public key algorithm using the public key and the free key to the signature. It may be a step to do.
  • the decoded header further includes a signature, and generating the final verification value;
  • A (S * P) mod n
  • B (A ⁇ k) mod n
  • R B
  • S may indicate the signature
  • P may indicate the free key
  • k and n indicate the public key
  • R may indicate the final verification value.
  • the processor compares the software-specific comparison magic number stored in the memory with a reference magic number included in the decoded header, and if the comparison magic number and the reference magic number are different, a boot failure occurs. It may further include a step of determining.
  • the processor generates a comparison hashed public key by applying a hash algorithm to the public key, compares the reference hashed public key stored in the memory with the comparison hashed public key, and the reference If the hashed public key and the comparison hashed public key are different, determining a boot failure; may further include.
  • the preparation step is, by a processor, symmetric Generating a key, a public key, and a private key paired with the public key; Generating, by the processor, a reference hashed message by applying a hash algorithm to data, and generating a signature by applying a public key algorithm using the private key to the reference hashed message; Generating, by the processor, a free key from the public key by performing at least a part of a public key algorithm; Adding, by the processor, the signature, the public key, and the free key to a header; Generating, by the processor, an encrypted data and header by applying a symmetric key algorithm using a symmetric key to the data and the header, and storing the encrypted data and header by a memory; And generating, by the processor, a reference hashed public key by applying a hash algorithm
  • the booting step includes, by the processor, generating decrypted data and a header by applying a symmetric key algorithm using the symmetric key to the encrypted data and header; Generating, by the processor, a comparison hashed message by applying a hash algorithm to the decrypted data;
  • the decrypted header includes a public key and a free key, and generating, by the processor, a final verification value by applying the public key and a public key algorithm using the free key to the decrypted header; And comparing the comparison hashed message with the final verification value, and determining a boot failure if the comparison hashed message and the final verification value are different from each other.
  • preparation step and the booting step may be performed as separate steps, respectively.
  • generating the prekey and generating the final verification value may be performed as separate steps.
  • FIG. 1 is a block diagram illustrating a configuration of a secure boot device according to an exemplary embodiment.
  • FIGS. 2 and 3 are flowcharts illustrating a method of preparing a secure boot device according to an exemplary embodiment.
  • FIG. 4 is a diagram for describing in detail a method of booting a secure boot device according to an exemplary embodiment.
  • Embodiments of the present invention may be represented by functional block configurations and various processing steps. These functional blocks may be implemented with various numbers of hardware or/and software configurations that perform specific functions. For example, embodiments of the present invention can directly control one or more microprocessors or execute various functions by other control devices, such as memory, processing, logic, and look-up tables. Circuit configurations can be employed. Similar to how the components of an embodiment of the present invention can be implemented with software programming or software elements, an embodiment of the present invention includes various algorithms implemented with a combination of data structures, processes, routines or other programming components. , C, C++, Java, assembler (assembler), such as programming or scripting language. Functional aspects can be implemented with an algorithm running on one or more processors.
  • embodiments of the present invention may employ conventional techniques for electronic environment setting, signal processing, and/or data processing.
  • Terms such as mechanism, element, means, and configuration may be widely used, and are not limited to mechanical and physical configurations.
  • the term may include the meaning of a series of routines of software in connection with a processor or the like.
  • FIG. 1 is a block diagram illustrating a configuration of a secure boot device 100 according to an exemplary embodiment.
  • a secure boot device 100 may include a memory 110, a processor 120, a communication interface 130, and a user interface 140.
  • the memory 110 may include a first memory 111, a second memory 113, and a third memory 115.
  • the first memory 111, the second memory 113, and the third memory 115 may be nonvolatile memories.
  • the first memory 111, the second memory 113, and the third memory 115 may store different data.
  • the first memory 111 stores encrypted data and a header.
  • the first memory 111 may be a NAND memory.
  • the second memory 113 stores a reference hashed public key and an Advanced Encryption Standard (AES) key.
  • the second memory 113 may be a One Time Programmable (OTP) memory.
  • the third memory 115 stores a software-specific comparison magic number.
  • the software may include a boot loader, a kernel, an operating system, and an application, but is not limited thereto.
  • the third memory 115 may be a boot ROM (Read Only Memory).
  • the processor 120 generates the decrypted data and header by applying the AES algorithm using the AES key stored in the second memory 113 to the encrypted data and header stored in the first memory 111, and RSA (Rivest, Schamir, Adelman) public key, signature, and pre key are included, and a comparative hashed message is generated by applying SHA (Secure Hash Algorithm) to the decrypted data, and The final verification value is generated by applying the RSA algorithm using the RAS public key and the free key, the comparison hashed message and the final verification value are compared, and if the comparison hashed message and the final verification value are different, the boot failure is determined.
  • the processor 120 may apply an RSA algorithm that sequentially performs Equations 1 to 3 to the signature.
  • Equations 1 to 3 may be at least a part of a Montgomery algorithm, which is a kind of RSA algorithm.
  • S may represent a signature
  • P may represent a free key
  • n may represent a part of the RSA public key (k, n).
  • A may refer to A in the left term of Equation 1.
  • k may mean a part of the RSA public key (k, n).
  • B may refer to B in the left term of Equation 2.
  • n may represent a part of the RSA public key (k, n), and R may represent a final verification value.
  • the signature may be generated by applying the RSA algorithm using the RSA private key to the reference hashed message generated by applying the SHA algorithm performing Equation 4 to unencrypted data.
  • M may mean a reference hashed message.
  • the RSA private key (d, n) can be paired with the RSA public key (k, n).
  • the free key may be a result calculated by Equation (5).
  • Equation 5 may be at least a part of a Montgomery algorithm, which is a kind of RSA algorithm.
  • the processor 120 applies the SHA algorithm to the RSA public key to generate a comparison hashed public key, compares the reference hashed public key stored in the second memory 113 with the comparison hashed public key, and discloses the reference hashed public key. If the key and the comparison hashed public key are different, it can be determined as a boot failure.
  • the processor 120 may compare the comparison magic number included in the third memory 115 with the reference magic number included in the decoded header, and determine a boot failure if the comparison magic number and the reference magic number are different.
  • the processor 120 may determine the booting success if the sameness of the comparison hashed message and the final verification value, the identity of the reference hashed public key and the comparison hashed public key, and the identity of the comparison magic number and the reference magic number are recognized. For example, if 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 120 determines the booting success. I can.
  • FIGS. 2 and 3 are flowcharts illustrating a preparation operation method of the secure boot device 100 according to an exemplary embodiment.
  • the preparation operation of the secure boot device 100 is performed during the process of the secure boot device 100 and corresponds to an operation of storing data on a boot loader, a kernel, an operating system, and an application in the memory 110.
  • the preparation operation of the secure boot device 100 may be performed by the secure boot device 100 or may be performed by a process processor (not shown) other than the secure boot device 100, but is not limited thereto.
  • a process processor (not shown) generates an AES key, an RSA public key, and an RSA private key (S210).
  • the RSA public key (k, n) and the RSA private key (d, n) can be paired.
  • the process processor (not shown) generates a reference hashed message by applying the SHA algorithm to the data (S220).
  • the data may be an image of a boot loader, kernel, operating system, application, etc., but is not limited thereto.
  • the process processor (not shown) generates a signature by applying the RSA algorithm using the RSA private key to the reference hashed message (S230).
  • the process processor (not shown) may generate a signature using Equation 4.
  • the process processor (not shown) generates a free key by applying a part of the RSA algorithm using the RSA public key (S240).
  • the process processor (not shown) may generate a free key using Equation 5.
  • the process processor (not shown) adds a reference magic number, signature, RSA public key, and free key to the header of the data (S250).
  • the process processor (not shown) generates encrypted data and headers by applying an AES algorithm using an AES key to the data and headers (S260), and stores the encrypted data and headers in the first memory 111. (S270).
  • a process processor (not shown) generates a reference hashed public key by applying a SHA algorithm to the RSA public key (S310).
  • the process processor (not shown) stores the reference hashed public key and the AES key in the second memory 113 (320).
  • Equation 5 Although not shown in FIGS. 2 and 3, other operations that do not affect security other than Equation 5 may be performed in the preparation operation of the secure boot device 100 of the present invention, and thus, the security is affected in the boot operation. Since verification is completed by performing only the operations that affect the system, it is possible to perform a secure boot with enhanced security and speed.
  • FIG. 4 is a diagram for describing in detail a method of booting a secure boot device according to an exemplary embodiment.
  • the booting operation of the secure boot device 100 verifies data on the boot loader, kernel, operating system, application, etc. stored in the memory 110 by the preparation operation of the secure boot device 100 described with reference to FIGS. 2 and 3 above. It corresponds to the action that you do.
  • the booting operation of the secure boot device 100 may be performed by the secure boot device 100, but is not limited thereto.
  • the processor 120 generates decrypted data and headers by applying an AES algorithm using an AES key to encrypted data and headers stored in the first memory 111 (S410).
  • the processor 120 compares the software-specific comparison magic number stored in the third memory 115 with the reference magic number included in the decoded header (S420).
  • the processor 120 determines that the booting fails (S490).
  • the software-specific comparison information stored in the third memory 115 is verified using the result of decrypting the software-specific information stored in the first memory 111 that is encrypted in the process. Since booting of the secure booting device 100 is performed only in a case, the security of booting can be further strengthened.
  • the processor 120 determines whether the comparison magic number and the reference magic number are the same. If the comparison magic number and the reference magic number are the same, the processor 120 generates a comparison hashed public key by applying the SHA algorithm to the RSA public key included in the decrypted header (S430).
  • the processor 120 compares the reference hashed public key stored in the second memory 113 with the comparison hashed public key (S440).
  • the processor 120 determines that booting has failed (S490).
  • the encryption key information stored in the second memory 113 is verified during the process by using the result of decrypting the encryption key information stored in the first memory 111 that is encrypted in the process. Since booting of the secure booting device 100 is performed only in a case, the security of booting can be further strengthened.
  • the processor 120 generates a comparison hashed message by applying the SHA algorithm to the decrypted data (S450).
  • the processor 120 generates a final verification value by applying an RSA algorithm using the RSA public key and the free key included in the decrypted header to the signature included in the decrypted header (S460).
  • the processor 120 may apply an RSA algorithm that sequentially performs Equations 1 to 3 to the signature included in the decoded header.
  • the Montgomery algorithm is an algorithm for verifying encrypted information by sequentially applying Equation 5, Equation 1, Equation 2, and Equation 3. According to embodiments of the present invention, since some steps of the Montgomery algorithm applying Equation 5 have already been performed in the preparation operation, only the remaining steps of the Montgomery algorithm applying Equations 1 to 3 are performed in the boot operation. Since verification is completed just by doing so, the speed of secure boot can be greatly improved.
  • the processor 120 compares the comparison hashed message, the public key, and the final verification value (S470).
  • the processor 120 determines that the booting fails (S490).
  • the result of decrypting the header encrypted in the process and stored in the first memory 111 by using the result of decrypting the data encrypted in the process process and stored in the first memory 111 Since booting of the secure booting device 100 is performed only in the case of verification, the security of booting can be further strengthened.
  • the processor 120 determines that booting is successful (S480).
  • booting of the secure booting device 100 is performed only when verification of various information is completed in various ways, so that the security of booting can be further enhanced.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명이 해결하고자 하는 보안성과 속도 강화라는 과제를 해결하기 위한 일 실시예에 따른 보안 부팅 장치는 암호화된 데이터 및 헤더, 대칭키를 저장하는 메모리; 상기 암호화된 데이터 및 헤더에 상기 대칭키를 사용하는 대칭키 알고리즘을 적용하여 복호화된 데이터 및 헤더를 생성하고, 상기 복호화된 헤더에는 공개키 및 프리키가 포함되고, 상기 복호화된 데이터에 해시 알고리즘을 적용하여 비교 해시드 메시지를 생성하고, 상기 복호화된 헤더에 상기 공개키 및 상기 프리키를 사용하는 공개키 알고리즘을 적용하여 최종 검증 값을 생성하고, 상기 비교 해시드 메시지와 상기 최종 검증 값을 비교하고, 상기 비교 해시드 메시지와 상기 최종 검증 값이 상이하면 부팅 실패로 결정하는 프로세서;를 포함한다.

Description

보안 부팅 장치 및 그 동작 방법
본 발명은 속도가 향상된 보안 부팅 장치 및 그 동작 방법 에 관한 것이다.
데이터 보안의 요구가 커지면서, 부팅 장치의 보안 부팅이 의무화되고 있다. 다만, 보안을 보다 강화하기 위하여 보안 부팅에 따른 암호 알고리즘의 복잡도가 증가하면서 부팅이 완료되기까지 걸리는 시간이 점점 증가하고 있다.
이에, 부팅 장치가 보안을 위해 암호 알고리즘에 따라 동작하면서도 부팅 속도를 향상시키기 위한 방안이 요구된다.
본 발명이 해결하고자 하는 과제는 보안성과 속도가 강화된 보안 부팅 장치 및 그 동작 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 과제를 해결하기 위한 일 실시예에 따른 보안 부팅 장치는 암호화된 데이터 및 헤더, 대칭키를 저장하는 메모리; 상기 암호화된 데이터 및 헤더에 상기 대칭키를 사용하는 대칭키 알고리즘을 적용하여 복호화된 데이터 및 헤더를 생성하고, 상기 복호화된 헤더에는 공개키 및 상기 공개키로부터 생성된 프리키가 포함되고, 상기 복호화된 데이터에 해시 알고리즘을 적용하여 비교 해시드 메시지를 생성하고, 상기 복호화된 헤더에 상기 공개키 및 상기 프리키를 사용하는 공개키 알고리즘을 적용하여 최종 검증 값을 생성하고, 상기 비교 해시드 메시지와 상기 최종 검증 값을 비교하고, 상기 비교 해시드 메시지와 상기 최종 검증 값이 상이하면 부팅 실패로 결정하는 프로세서;를 포함한다.
본 실시예에서, 상기 프리키는, P = (C ^ 2) mod n에 의해 산출된 결과이고, P는 상기 프리키, C는 상수, n은 상기 공개키의 일부를 의미할 수 있다.
본 실시예에서, 상기 복호화된 헤더에는 시그니처가 더 포함되고, 상기 프로세서는 상기 시그니처에 상기 공개키 및 상기 프리키를 사용하는 공개키 알고리즘을 적용하여 상기 최종 검증 값을 생성할 수 있다.
본 실시예에서, 상기 복호화된 헤더에는 시그니처가 더 포함되고, 상기 프로세서는, A = (S * P) mod n, B = (A ^ k) mod n, 및 R = B mod n를 순차적으로 수행함으로써 공개키 알고리즘을 적용하고, S는 상기 시그니처, P는 상기 프리키, k 및 n은 상기 공개키, R은 상기 최종 검증 값을 의미할 수 있다.
본 실시예에서, 상기 시그니처는, 암호화되지 않은 데이터에 해시 알고리즘이 적용되어 생성된 기준 해시드 메시지에 개인키가 사용되는 공개키 알고리즘이 적용되어 생성되고, 상기 개인키는 상기 공개키와 쌍을 이룰 수 있다.
본 실시예에서, 상기 메모리는 기준 해시드 공개키를 더 저장하고,
상기 프로세서는 상기 공개키에 해시 알고리즘을 적용하여 비교 해시드 공개키를 생성하고, 상기 기준 해시드 공개키와 상기 비교 해시드 공개키를 비교하고, 상기 기준 해시드 공개키와 상기 비교 해시드 공개키가 상이하면 부팅 실패로 결정할 수 있다.
본 실시예에서, 상기 메모리는 소프트웨어 고유의 비교 매직넘버를 더 저장하고, 상기 복호화된 헤더에는 기준 매직넘버가 더 포함되고, 상기 프로세서는, 상기 비교 매직넘버와 상기 기준 매직넘버를 비교하고, 상기 비교 매직넘버와 상기 기준 매직넘버가 상이하면 부팅 실패로 결정할 수 있다.
본 실시예에서, 상기 암호화된 데이터 및 헤더는 NAND 메모리에 저장되고, 상기 대칭키는 상기 NAND 메모리와 상이한 OTP(One Time Programmable) 메모리에 저장될 수 있다.
본 발명이 해결하고자 하는 과제를 해결하기 위한 일 실시예에 따른 보안 부팅 장치의 동작 방법은 프로세서에 의해, 메모리에 저장된 암호화된 데이터 및 헤더에 상기 메모리에 저장된 대칭키를 사용하는 대칭키 알고리즘을 적용하여 복호화된 데이터 및 헤더를 생성하는 단계; 상기 프로세서에 의해, 상기 복호화된 데이터에 해시 알고리즘을 적용하여 비교 해시드 메시지를 생성하는 단계; 상기 복호화된 헤더는 공개키 및 프리키를 포함하고, 상기 프로세서에 의해, 상기 복호화된 헤더에 상기 공개키 및 상기 프리키를 사용하는 공개키 알고리즘을 적용하여 최종 검증 값을 생성하는 단계; 및 상기 비교 해시드 메시지와 상기 최종 검증 값을 비교하고, 상기 비교 해시드 메시지와 상기 최종 검증 값이 상이하면 부팅 실패로 결정하는 단계;를 포함한다.
본 실시예에서, 상기 프리키는, P = (C ^ 2) mod n에 의해 산출된 결과로서, P는 상기 프리키, C는 상수, n은 상기 공개키의 일부를 의미할 수 있다.
본 실시예에서, 상기 복호화된 헤더는 시그니처를 더 포함하고, 상기 최종 검증 값을 생성하는 단계는, 상기 시그니처에 상기 공개키 및 상기 프리키를 사용하는 공개키 알고리즘을 적용하여 상기 최종 검증 값을 생성하는 단계일 수 있다.
본 실시예에서, 상기 복호화된 헤더는 시그니처를 더 포함하고, 상기 최종 검증 값을 생성하는 단계;는 A = (S * P) mod n, B = (A ^ k) mod n, 및 R = B mod n를 순차적으로 수행하는 단계이며, S는 상기 시그니처, P는 상기 프리키, k 및 n은 상기 공개키, R은 상기 최종 검증 값을 의미할 수 있다.
본 실시예에서, 상기 프로세서에 의해, 상기 메모리에 저장된 소프트웨어 고유의 비교 매직넘버와 상기 복호화된 헤더에 포함된 기준 매직 넘버를 비교하고, 상기 비교 매직넘버와 상기 기준 매직넘버가 상이하면 부팅 실패로 결정하는 단계;를 더 포함할 수 있다.
본 실시예에서, 상기 프로세서에 의해, 상기 공개키에 해시 알고리즘을 적용하여 비교 해시드 공개키를 생성하고, 상기 메모리에 저장된 기준 해시드 공개키와 상기 비교 해시드 공개키를 비교하고, 상기 기준 해시드 공개키와 상기 비교 해시드 공개키가 상이하면 부팅 실패로 결정하는 단계;를 더 포함할 수 있다.
본 발명이 해결하고자 하는 과제를 해결하기 위한 일 실시예에 따른 보안 부팅 장치의 동작 방법은 준비 단계 및 부팅 단계를 포함하는 보안 부팅 장치의 동작 방법에 있어서, 상기 준비 단계는, 프로세서에 의해, 대칭키, 공개키, 및 상기 공개키와 쌍을 이루는 개인키를 생성하는 단계; 상기 프로세서에 의해, 데이터에 해시 알고리즘을 적용하여 기준 해시드 메시지를 생성하고, 상기 기준 해시드 메시지에 상기 개인키를 사용하는 공개키 알고리즘을 적용하여 시그니처를 생성하는 단계; 상기 프로세서에 의해, 공개키 알고리즘의 적어도 일부를 수행하여 상기 공개키로부터 프리키를 생성하는 단계; 상기 프로세서에 의해, 헤더에 상기 시그니처, 상기 공개키, 및 상기 프리키를 추가하는 단계; 상기 프로세서에 의해, 상기 데이터 및 상기 헤더에 대칭키를 사용하는 대칭키 알고리즘을 적용하여 암호화된 데이터 및 헤더를 생성하고, 메모리에 의해, 상기 암호화된 데이터 및 헤더를 저장하는 단계; 및 상기 프로세서에 의해, 상기 공개키에 해시 알고리즘을 적용하여 기준 해시드 공개키를 생성하고, 상기 메모리에 의해, 상기 기준 해시드 공개키 및 상기 대칭키를 저장하는 단계;를 포함한다.
본 실시예에서, 상기 공개키로부터 상기 프리키를 생성하는 단계는, P = (C ^ 2) mod n을 적용하는 단계이고, P는 상기 프리키, C는 상수, n은 상기 공개키의 일부를 의미할 수 있다.
본 실시예에서, 상기 부팅 단계는, 상기 프로세서에 의해, 상기 암호화된 데이터 및 헤더에 상기 대칭키를 사용하는 대칭키 알고리즘을 적용하여 복호화된 데이터 및 헤더를 생성하는 단계; 상기 프로세서에 의해, 상기 복호화된 데이터에 해시 알고리즘을 적용하여 비교 해시드 메시지를 생성하는 단계; 상기 복호화된 헤더는 공개키 및 프리키를 포함하고, 상기 프로세서에 의해, 상기 복호화된 헤더에 상기 공개키 및 상기 프리키를 사용하는 공개키 알고리즘을 적용하여 최종 검증 값을 생성하는 단계; 및 상기 비교 해시드 메시지와 상기 최종 검증 값을 비교하고, 상기 비교 해시드 메시지와 상기 최종 검증 값이 상이하면 부팅 실패로 결정하는 단계;를 포함할 수 있다.
본 실시예에서, 상기 최종 검증 값을 생성하는 단계는, A = (S * P) mod n, B = (A ^ k) mod n, 및 R = B mod n를 순차적으로 수행하는 단계이며, S는 상기 시그니처, P는 상기 프리키, k 및 n은 상기 공개키, R은 상기 최종 검증 값을 의미할 수 있다.
본 실시예에서, 상기 준비 단계 및 상기 부팅 단계는 각각 별도의 단계로 수행될 수 있다.
본 실시예에서, 상기 프리키를 생성하는 단계 및 상기 최종 검증 값을 생성하는 단계는 각각 별도의 단계로 수행될 수 있다.
본 발명의 실시예들에 따르면, 준비 동작에서 몽고메리 알고리즘의 일부 단계를 수행하기 때문에, 부팅 동작에서 몽고메리 알고리즘의 나머지 단계를 수행하는 것으로 검증이 완료되므로, 보안성과 속도가 강화된 보안 부팅 장치 및 그 동작 방법을 제공할 수 있다.
도 1은 일 실시예에 따른 보안 부팅 장치의 구성을 나타내는 블록도이다.
도 2 및 도 3은 일 실시예에 따른 보안 부팅 장치의 준비 동작 방법을 설명하기 위한 흐름도이다.
도 4는 일 실시예에 따른 보안 부팅 장치의 부팅 동작 방법을 구체적으로 설명하기 위한 도면이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
이하의 실시예에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 다수의 표현을 포함한다. 이하의 실시예에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 발명의 실시예들은 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 발명의 실시예들은 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 본 발명의 실시예의 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 발명의 실시예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 발명의 실시예들은 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. 매커니즘, 요소, 수단, 구성과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
이하 첨부된 도면들을 참조하여 본 발명의 여러 가지 실시 예를 상세히 설명한다.
도 1은 일 실시예에 따른 보안 부팅 장치(100)의 구성을 나타내는 블록도이다.
도 1을 참조하면, 일 실시예에 따른 보안 부팅 장치(100)는 메모리(110), 프로세서(120), 통신 인터페이스(130), 및 사용자 인터페이스(140)를 포함할 수 있다.
메모리(110)는 제1 메모리(111), 제2 메모리(113), 제3 메모리(115)를 포함할 수 있다. 제1 메모리(111), 제2 메모리(113), 및 제3 메모리(115)는 비휘발성 메모리일 수 있다. 제1 메모리(111), 제2 메모리(113), 및 제3 메모리(115)는 각기 다른 데이터를 저장할 수 있다.
제1 메모리(111)는 암호화된 데이터 및 헤더를 저장한다. 제1 메모리(111)는 NAND 메모리일 수 있다.
제2 메모리(113)는 기준 해시드 공개키 및 AES(Advanced Encryption Standard) 키를 저장한다. 제2 메모리(113)는 OTP(One Time Programmable) 메모리일 수 있다.
제3 메모리(115)는 소프트웨어 고유의 비교 매직넘버를 저장한다. 소프트웨어는 부트로더, 커널, 운영체제, 어플리케이션 등을 포함할 수 있으며, 이에 한정하지 않는다. 제3 메모리(115)는 부트 ROM(Read Only Memory)일 수 있다.
프로세서(120)는 제1 메모리(111)에 저장된 암호화된 데이터 및 헤더에, 제2 메모리(113)에 저장된 AES 키를 사용하는 AES 알고리즘을 적용하여 복호화된 데이터 및 헤더를 생성하고, 복호화된 헤더에는 RSA(Rivest, Schamir, Adelman) 공개키, 시그니처(signature), 및 프리키(pre key)가 포함되고, 복호화된 데이터에 SHA(Secure Hash Algorithm)을 적용하여 비교 해시드 메시지를 생성하고, 시그니처에 RAS 공개키 및 프리키를 사용하는 RSA 알고리즘을 적용하여 최종 검증 값을 생성하고, 비교 해시드 메시지와 최종 검증 값을 비교하고, 비교 해시드 메시지와 최종 검증 값이 상이하면 부팅 실패로 결정한다.
프로세서(120)는 시그니처에 수학식 1 내지 수학식 3을 순차적으로 수행하는 RSA 알고리즘을 적용할 수 있다. 수학식 1 내지 수학식 3은 RSA 알고리즘의 일종인 몽고메리(Montgomery) 알고리즘의 적어도 일부일 수 있다.
Figure PCTKR2020011608-appb-M000001
S는 시그니처, P는 프리키, n은 RSA 공개키 (k, n)의 일부를 의미할 수 있다.
Figure PCTKR2020011608-appb-M000002
A는 수학식 1의 좌측 항의 A를 가리킬 수 있다. k는 RSA 공개키 (k, n)의 일부를 의미할 수 있다.
Figure PCTKR2020011608-appb-M000003
B는 수학식 2의 좌측항의 B를 가리킬 수 있다. n은 RSA 공개키 (k, n)의 일부, R은 최종 검증 값을 의미할 수 있다.
시그니처는, 암호화되지 않은 데이터에 수학식 4를 수행하는 SHA 알고리즘이 적용되어 생성된 기준 해시드 메시지에, RSA 개인키가 사용되는 RSA 알고리즘이 적용됨으로써 생성될 수 있다.
Figure PCTKR2020011608-appb-M000004
M은 기준 해시드 메시지를 의미할 수 있다. RSA 개인키 (d, n)는 RSA 공개키 (k, n)와 쌍을 이룰 수 있다.
한편, 프리키는 수학식 5에 의해 산출된 결과일 수 있다.
Figure PCTKR2020011608-appb-M000005
P는 프리키, C는 상수, n은 RSA 공개키 (k, n)일 수 있다. C는 예를 들어, 2^4608일 수 있으며, 이에 한정하지 않는다. 수학식 5는 RSA 알고리즘의 일종인 몽고메리(Montgomery) 알고리즘의 적어도 일부일 수 있다.
프로세서(120)는 RSA 공개키에 SHA 알고리즘을 적용하여 비교 해시드 공개키를 생성하고, 제2 메모리(113)에 저장된 기준 해시드 공개키와 비교 해시드 공개키를 비교하고, 기준 해시드 공개키와 비교 해시드 공개키가 상이하면 부팅 실패로 결정할 수 있다.
프로세서(120)는 제3 메모리(115)에 포함된 비교 매직넘버와 복호화된 헤더에 포함된 기준 매직넘버를 비교하고, 비교 매직넘버와 기준 매직넘버가 상이하면 부팅 실패로 결정할 수 있다.
프로세서(120)는 비교 해시드 메시지와 최종 검증 값의 동일성, 기준 해시드 공개키와 비교 해시드 공개키의 동일성, 비교 매직넘버와 기준 매직넘버의 동일성이 인정되면 부팅 성공으로 결정할 수 있다. 예를 들어, 프로세서(120)는 비교 매직넘버와 기준 매직넘버가 동일하고, 기준 해시드 공개키와 비교 해시드 공개키가 동일하고, 비교 해시드 메시지와 최종 검증 값이 동일하면 부팅 성공으로 결정할 수 있다.
도 2 및 도 3은 일 실시예에 따른 보안 부팅 장치(100)의 준비 동작 방법을 설명하기 위한 흐름도이다.
보안 부팅 장치(100)의 준비 동작은 보안 부팅 장치(100)의 공정 과정에서 수행되며, 부트로더, 커널, 운영체제, 어플리케이션 등에 대한 데이터를 메모리(110)에 저장하는 동작에 해당된다. 보안 부팅 장치(100)의 준비 동작은 보안 부팅 장치(100)에 의해 수행될 수도 있고, 보안 부팅 장치(100) 이외의 공정 프로세서(미도시)에 의해 수행될 수도 있으며, 이에 한정하지 않는다.
이하에서는, 공정 프로세서(미도시)에 의해 준비 동작이 수행되는 과정을 상세하게 설명하며, 이는 보안 부팅 장치(100) 또는 그 외의 장치에 의해 수행되는 준비 동작에 적용될 수 있다.
도 2를 참조하면, 공정 프로세서(미도시)는 AES 키, RSA 공개키, 및 RSA 개인키를 생성한다(S210).
RSA 공개키 (k, n)와 RSA 개인키 (d, n)는 쌍을 이룰 수 있다.
이어서, 공정 프로세서(미도시)는 데이터에 SHA 알고리즘을 적용하여 기준 해시드 메시지를 생성한다(S220).
데이터는 부트로더, 커널, 운영체제, 어플리케이션 등의 이미지 등일 수 있으며, 이에 한정하지 않는다.
이어서, 공정 프로세서(미도시)는 기준 해시드 메시지에 RSA 개인키를 사용하는 RSA 알고리즘을 적용하여 시그니처를 생성한다(S230).
이때, 공정 프로세서(미도시)는 수학식 4를 사용하여 시그니처를 생성할 수 있다.
이어서, 공정 프로세서(미도시)는 RSA 공개키를 사용하는 RSA 알고리즘의 일부를 적용하여 프리키를 생성한다(S240).
이때, 공정 프로세서(미도시)는 수학식 5를 사용하여 프리키를 생성할 수 있다.
이어서, 공정 프로세서(미도시)는 데이터의 헤더에 기준 매직넘버, 시그니처, RSA 공개키, 프리키를 추가한다(S250).
이어서, 공정 프로세서(미도시)는 데이터 및 헤더에 AES 키를 사용하는 AES 알고리즘을 적용하여 암호화된 데이터 및 헤더를 생성하고(S260), 암호화된 데이터 및 헤더를 제1 메모리(111)에 저장한다(S270).
도 3을 참조하면, 공정 프로세서(미도시)는 RSA 공개키에 SHA 알고리즘을 적용하여 기준 해시드 공개키를 생성한다(S310).
이어서, 공정 프로세서(미도시)는 기준 해시드 공개키 및 AES 키를 제2 메모리(113)에 저장한다(320).
도 2 및 도 3에 도시하지 않았으나, 수학식 5 이외에도 보안에 영향을 미치지 않는 다른 동작들이 본 발명의 보안 부팅 장치(100)의 준비 동작에서 수행될 수 있으며, 이에 따라, 부팅 동작에서 보안에 영향을 미치는 동작들만을 수행하는 것으로 검증이 완료되므로, 보안성 및 속도가 보다 강화된 보안 부팅을 수행할 수 있다.
도 4는 일 실시예에 따른 보안 부팅 장치의 부팅 동작 방법을 구체적으로 설명하기 위한 도면이다.
보안 부팅 장치(100)의 부팅 동작은 앞서 도 2 및 도 3을 참조하여 설명한 보안 부팅 장치(100)의 준비 동작에 의해 메모리(110)에 저장된 부트로더, 커널, 운영체제, 어플리케이션 등에 대한 데이터를 검증하는 동작에 해당된다. 보안 부팅 장치(100)의 부팅 동작은 보안 부팅 장치(100)에 의해 수행될 수 있으며, 이에 한정하지 않는다.
도 4를 참조하면, 프로세서(120)는 제1 메모리(111)에 저장된 암호화된 데이터 및 헤더에 AES 키를 사용하는 AES 알고리즘을 적용하여 복호화된 데이터 및 헤더를 생성한다(S410).
이어서, 프로세서(120)는 제3 메모리(115)에 저장된 소프트웨어 고유의 비교 매직넘버와 복호화된 헤더에 포함된 기준 매직 넘버를 비교한다(S420).
비교 결과, 비교 매직넘버와 기준 매직넘버가 상이하면, 프로세서(120)는 부팅 실패로 결정한다(S490).
본 발명의 실시예들에 따르면, 공정 과정에서 암호화되어 제1 메모리(111)에 저장된 소프트웨어 고유의 정보를 복호화한 결과를 이용하여, 제3 메모리(115)에 저장된 소프트웨어 고유의 비교 정보를 검증한 경우에 한하여 보안 부팅 장치(100)의 부팅을 진행하게 되므로, 부팅의 보안성을 보다 강화할 수 있다.
한편, 비교 매직넘버와 기준 매직넘버가 동일하면, 프로세서(120)는 복호화된 헤더에 포함된 RSA 공개키에 SHA 알고리즘을 적용하여 비교 해시드 공개키를 생성한다(S430).
이어서, 프로세서(120)는 제2 메모리(113)에 저장된 기준 해시드 공개키와 비교 해시드 공개키를 비교한다(S440).
비교 결과, 기준 해시드 공개키와 비교 해시드 공개키가 상이하면, 프로세서(120)는 부팅 실패로 결정한다(S490).
본 발명의 실시예들에 따르면, 공정 과정에서 암호화되어 제1 메모리(111)에 저장된 암호화 키 정보를 복호화한 결과를 이용하여, 공정 과정에서 제2 메모리(113)에 저장된 암호화 키 정보를 검증한 경우에 한하여 보안 부팅 장치(100)의 부팅을 진행하게 되므로, 부팅의 보안성을 보다 강화할 수 있다.
한편, 기준 해시드 공개키와 비교 해시드 공개키가 동일하면, 프로세서(120)는 복호화된 데이터에 SHA 알고리즘을 적용하여 비교 해시드 메시지를 생성한다(S450).
이어서, 프로세서(120)는 복호화된 헤더에 포함된 시그니처에, RSA 공개키 및 복호화된 헤더에 포함된 프리키를 사용하는 RSA 알고리즘을 적용하여, 최종 검증 값을 생성한다(S460).
이때, 프로세서(120)는 복호화된 헤더에 포함된 시그니처에 수학식 1 내지 수학식 3을 순차적으로 수행하는 RSA 알고리즘을 적용할 수 있다.
한편, 몽고메리 알고리즘은 수학식 5, 수학식 1, 수학식 2, 및 수학식 3을 순차로 적용하여 암호화된 정보에 대한 검증을 수행하는 알고리즘이다. 본 발명의 실시예들에 따르면, 준비 동작에서 이미 수학식 5를 적용하는 몽고메리 알고리즘의 일부 단계를 수행하였기 때문에, 부팅 동작에서는 수학식 1 내지 수학식 3을 적용하는 몽고메리 알고리즘의 나머지 단계만을 수행하는 것만으로 검증이 완료되므로, 보안 부팅의 속도가 크게 향상될 수 있다.
이어서, 프로세서(120)는 비교 해시드 메시지와 공개키와 최종 검증 값을 비교한다(S470).
비교 결과, 비교 해시드 메시지와 최종 검증 값이 상이하면, 프로세서(120)는 부팅 실패로 결정한다(S490).
본 발명의 실시예들에 따르면, 공정 과정에서 암호화되어 제1 메모리(111)에 저장된 데이터를 복호화한 결과를 이용하여, 공정 과정에서 암호화되어 제1 메모리(111)에 저장된 헤더를 복호화한 결과를 검증한 경우에 한하여 보안 부팅 장치(100)의 부팅을 진행하게 되므로, 부팅의 보안성을 보다 강화할 수 있다.
한편, 비교 해시드 메시지와 최종 검증 값이 동일하면, 프로세서(120)는 부팅 성공으로 결정한다(S480).
본 발명의 실시예들에 따르면, 다양한 방식으로 다양한 정보에 대한 검증을 완료한 경우에 한하여 보안 부팅 장치(100)의 부팅을 진행하게 되므로, 부팅의 보안성을 보다 강화할 수 있다.
이제까지 본 발명에 대하여 바람직한 실시예를 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 본 발명을 구현할 수 있음을 이해할 것이다.
그러므로 상기 개시된 실시예는 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 특허청구범위에 의해 청구된 발명 및 청구된 발명과 균등한 발명들은 본 발명에 포함된 것으로 해석되어야 한다.

Claims (20)

  1. 암호화된 데이터 및 헤더, 대칭키를 저장하는 메모리;
    상기 암호화된 데이터 및 헤더에 상기 대칭키를 사용하는 대칭키 알고리즘을 적용하여 복호화된 데이터 및 헤더를 생성하고,
    상기 복호화된 헤더에는 공개키 및 상기 공개키로부터 생성된 프리키가 포함되고,
    상기 복호화된 데이터에 해시 알고리즘을 적용하여 비교 해시드 메시지를 생성하고, 상기 복호화된 헤더에 상기 공개키 및 상기 프리키를 사용하는 공개키 알고리즘을 적용하여 최종 검증 값을 생성하고, 상기 비교 해시드 메시지와 상기 최종 검증 값을 비교하고, 상기 비교 해시드 메시지와 상기 최종 검증 값이 상이하면 부팅 실패로 결정하는 프로세서;를 포함하는, 보안 부팅 장치.
  2. 청구항 1에 있어서,
    상기 프리키는,
    P = (C ^ 2) mod n에 의해 산출된 결과이고,
    P는 상기 프리키, C는 상수, n은 상기 공개키의 일부를 의미하는, 보안 부팅 장치.
  3. 청구항 1에 있어서,
    상기 복호화된 헤더에는 시그니처가 더 포함되고,
    상기 프로세서는 상기 시그니처에 상기 공개키 및 상기 프리키를 사용하는 공개키 알고리즘을 적용하여 상기 최종 검증 값을 생성하는, 보안 부팅 장치.
  4. 청구항 1에 있어서,
    상기 복호화된 헤더에는 시그니처가 더 포함되고,
    상기 프로세서는,
    A = (S * P) mod n, B = (A ^ k) mod n, 및 R = B mod n를 순차적으로 수행함으로써 공개키 알고리즘을 적용하고,
    S는 상기 시그니처, P는 상기 프리키, k 및 n은 상기 공개키, R은 상기 최종 검증 값을 의미하는, 보안 부팅 장치.
  5. 청구항 3에 있어서,
    상기 시그니처는,
    암호화되지 않은 데이터에 해시 알고리즘이 적용되어 생성된 기준 해시드 메시지에 개인키가 사용되는 공개키 알고리즘이 적용되어 생성되고,
    상기 개인키는 상기 공개키와 쌍을 이루는, 보안 부팅 장치.
  6. 청구항 1에 있어서,
    상기 메모리는 기준 해시드 공개키를 더 저장하고,
    상기 프로세서는 상기 공개키에 해시 알고리즘을 적용하여 비교 해시드 공개키를 생성하고, 상기 기준 해시드 공개키와 상기 비교 해시드 공개키를 비교하고, 상기 기준 해시드 공개키와 상기 비교 해시드 공개키가 상이하면 부팅 실패로 결정하는, 보안 부팅 장치.
  7. 청구항 1에 있어서,
    상기 메모리는 소프트웨어 고유의 비교 매직넘버를 더 저장하고,
    상기 복호화된 헤더에는 기준 매직넘버가 더 포함되고,
    상기 프로세서는, 상기 비교 매직넘버와 상기 기준 매직넘버를 비교하고, 상기 비교 매직넘버와 상기 기준 매직넘버가 상이하면 부팅 실패로 결정하는 보안 부팅 장치.
  8. 청구항 1에 있어서,
    상기 암호화된 데이터 및 헤더는 NAND 메모리에 저장되고, 상기 대칭키는 상기 NAND 메모리와 상이한 OTP(One Time Programmable) 메모리에 저장되는, 보안 부팅 장치.
  9. 프로세서에 의해, 메모리에 저장된 암호화된 데이터 및 헤더에 상기 메모리에 저장된 대칭키를 사용하는 대칭키 알고리즘을 적용하여 복호화된 데이터 및 헤더를 생성하는 단계;
    상기 프로세서에 의해, 상기 복호화된 데이터에 해시 알고리즘을 적용하여 비교 해시드 메시지를 생성하는 단계;
    상기 복호화된 헤더는 공개키 및 프리키를 포함하고, 상기 프로세서에 의해, 상기 복호화된 헤더에 상기 공개키 및 상기 프리키를 사용하는 공개키 알고리즘을 적용하여 최종 검증 값을 생성하는 단계; 및
    상기 비교 해시드 메시지와 상기 최종 검증 값을 비교하고, 상기 비교 해시드 메시지와 상기 최종 검증 값이 상이하면 부팅 실패로 결정하는 단계;를 포함하는 보안 부팅 장치의 동작 방법.
  10. 청구항 9에 있어서,
    상기 프리키는,
    P = (C ^ 2) mod n에 의해 산출된 결과로서,
    P는 상기 프리키, C는 상수, n은 상기 공개키의 일부를 의미하는, 보안 부팅 장치의 동작 방법.
  11. 청구항 9에 있어서,
    상기 복호화된 헤더는 시그니처를 더 포함하고,
    상기 최종 검증 값을 생성하는 단계는,
    상기 시그니처에 상기 공개키 및 상기 프리키를 사용하는 공개키 알고리즘을 적용하여 상기 최종 검증 값을 생성하는 단계인, 보안 부팅 장치의 동작 방법.
  12. 청구항 9에 있어서,
    상기 복호화된 헤더는 시그니처를 더 포함하고,
    상기 최종 검증 값을 생성하는 단계;는
    A = (S * P) mod n, B = (A ^ k) mod n, 및 R = B mod n를 순차적으로 수행하는 단계이며,
    S는 상기 시그니처, P는 상기 프리키, k 및 n은 상기 공개키, R은 상기 최종 검증 값을 의미하는, 보안 부팅 장치의 동작 방법.
  13. 청구항 9에 있어서,
    상기 프로세서에 의해, 제2상기 메모리에 저장된 소프트웨어 고유의 비교 매직넘버와 상기 복호화된 헤더에 포함된 기준 매직 넘버를 비교하고, 상기 비교 매직넘버와 상기 기준 매직넘버가 상이하면 부팅 실패로 결정하는 단계;를 더 포함하는, 보안 부팅 장치의 동작 방법.
  14. 청구항 9에 있어서,
    상기 프로세서에 의해, 상기 공개키에 해시 알고리즘을 적용하여 비교 해시드 공개키를 생성하고, 상기 메모리에 저장된 기준 해시드 공개키와 상기 비교 해시드 공개키를 비교하고, 상기 기준 해시드 공개키와 상기 비교 해시드 공개키가 상이하면 부팅 실패로 결정하는 단계;를 더 포함하는, 보안 부팅 장치의 동작 방법.
  15. 준비 단계 및 부팅 단계를 포함하는 보안 부팅 장치의 동작 방법에 있어서,
    상기 준비 단계는,
    프로세서에 의해, 대칭키, 공개키, 및 상기 공개키와 쌍을 이루는 개인키를 생성하는 단계;
    상기 프로세서에 의해, 데이터에 해시 알고리즘을 적용하여 기준 해시드 메시지를 생성하고, 상기 기준 해시드 메시지에 상기 개인키를 사용하는 공개키 알고리즘을 적용하여 시그니처를 생성하는 단계;
    상기 프로세서에 의해, 공개키 알고리즘의 적어도 일부를 수행하여 상기 공개키로부터 프리키를 생성하는 단계;
    상기 프로세서에 의해, 헤더에 상기 시그니처, 상기 공개키, 및 상기 프리키를 추가하는 단계;
    상기 프로세서에 의해, 상기 데이터 및 상기 헤더에 대칭키를 사용하는 대칭키 알고리즘을 적용하여 암호화된 데이터 및 헤더를 생성하고, 메모리에 의해, 상기 암호화된 데이터 및 헤더를 저장하는 단계; 및
    상기 프로세서에 의해, 상기 공개키에 해시 알고리즘을 적용하여 기준 해시드 공개키를 생성하고, 상기 메모리에 의해, 상기 기준 해시드 공개키 및 상기 대칭키를 저장하는 단계;를 포함하는, 보안 부팅 장치의 동작 방법.
  16. 청구항 15에 있어서,
    상기 공개키로부터 상기 프리키를 생성하는 단계는,
    P = (C ^ 2) mod n을 적용하는 단계이고, P는 상기 프리키, C는 상수, n은 상기 공개키의 일부를 의미하는, 보안 부팅 장치의 동작 방법.
  17. 청구항 15에 있어서,
    상기 부팅 단계는,
    상기 프로세서에 의해, 상기 암호화된 데이터 및 헤더에 상기 대칭키를 사용하는 대칭키 알고리즘을 적용하여 복호화된 데이터 및 헤더를 생성하는 단계;
    상기 프로세서에 의해, 상기 복호화된 데이터에 해시 알고리즘을 적용하여 비교 해시드 메시지를 생성하는 단계;
    상기 복호화된 헤더는 공개키 및 프리키를 포함하고, 상기 프로세서에 의해, 상기 복호화된 헤더에 상기 공개키 및 상기 프리키를 사용하는 공개키 알고리즘을 적용하여 최종 검증 값을 생성하는 단계; 및
    상기 비교 해시드 메시지와 상기 최종 검증 값을 비교하고, 상기 비교 해시드 메시지와 상기 최종 검증 값이 상이하면 부팅 실패로 결정하는 단계;를 포함하는 보안 부팅 장치의 동작 방법.
  18. 청구항 17에 있어서,
    상기 최종 검증 값을 생성하는 단계는,
    A = (S * P) mod n, B = (A ^ k) mod n, 및 R = B mod n를 순차적으로 수행하는 단계이며,
    S는 상기 시그니처, P는 상기 프리키, k 및 n은 상기 공개키, R은 상기 최종 검증 값을 의미하는, 보안 부팅 장치의 동작 방법.
  19. 청구항 17에 있어서,
    상기 준비 단계 및 상기 부팅 단계는 각각 별도의 단계로 수행되는, 보안 부팅 장치의 동작 방법.
  20. 청구항 17에 있어서,
    상기 프리키를 생성하는 단계 및 상기 최종 검증 값을 생성하는 단계는 각각 별도의 단계로 수행되는, 보안 부팅 장치의 동작 방법.
PCT/KR2020/011608 2019-10-08 2020-08-31 보안 부팅 장치 및 그 동작 방법 WO2021071090A1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP20873436.8A EP4044056A4 (en) 2019-10-08 2020-08-31 SAFE STARTING DEVICE AND ASSOCIATED OPERATING METHOD
US17/767,714 US20240086543A1 (en) 2019-10-08 2020-08-31 Secure booting apparatus and operating method thereof
CN202080071074.8A CN114514725A (zh) 2019-10-08 2020-08-31 安全引导装置及其操作方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2019-0124777 2019-10-08
KR1020190124777A KR20210041932A (ko) 2019-10-08 2019-10-08 보안 부팅 장치 및 그 동작 방법

Publications (1)

Publication Number Publication Date
WO2021071090A1 true WO2021071090A1 (ko) 2021-04-15

Family

ID=75438272

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2020/011608 WO2021071090A1 (ko) 2019-10-08 2020-08-31 보안 부팅 장치 및 그 동작 방법

Country Status (5)

Country Link
US (1) US20240086543A1 (ko)
EP (1) EP4044056A4 (ko)
KR (1) KR20210041932A (ko)
CN (1) CN114514725A (ko)
WO (1) WO2021071090A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110075050A (ko) * 2007-01-07 2011-07-05 애플 인크. 컴퓨팅 장치의 보안 부팅
KR20140073384A (ko) * 2012-12-06 2014-06-16 삼성전자주식회사 보안 부팅을 수행하는 칩 시스템과 이를 이용하는 화상형성장치 및 그 보안 부팅 방법
US20150199520A1 (en) * 2014-01-13 2015-07-16 Raytheon Company Mediated secure boot for single or multicore processors
KR20180080912A (ko) * 2017-01-05 2018-07-13 삼성전자주식회사 보안 부트 시퀀서 및 보안 부트 장치
KR20190063264A (ko) * 2017-11-29 2019-06-07 한국전자통신연구원 가상 트러스트 컴퓨팅 베이스를 이용한 기기 보안성 검증 방법 및 장치

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070162964A1 (en) * 2006-01-12 2007-07-12 Wang Liang-Yun Embedded system insuring security and integrity, and method of increasing security thereof
WO2013009619A2 (en) * 2011-07-08 2013-01-17 Openkeak Inc. System and method for validating components during a booting process
CN104883256B (zh) * 2014-02-27 2019-02-01 中国科学院数据与通信保护研究教育中心 一种抵抗物理攻击和系统攻击的密钥保护方法
US10491401B2 (en) * 2017-02-21 2019-11-26 Google Llc Verification of code signature with flexible constraints

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110075050A (ko) * 2007-01-07 2011-07-05 애플 인크. 컴퓨팅 장치의 보안 부팅
KR20140073384A (ko) * 2012-12-06 2014-06-16 삼성전자주식회사 보안 부팅을 수행하는 칩 시스템과 이를 이용하는 화상형성장치 및 그 보안 부팅 방법
US20150199520A1 (en) * 2014-01-13 2015-07-16 Raytheon Company Mediated secure boot for single or multicore processors
KR20180080912A (ko) * 2017-01-05 2018-07-13 삼성전자주식회사 보안 부트 시퀀서 및 보안 부트 장치
KR20190063264A (ko) * 2017-11-29 2019-06-07 한국전자통신연구원 가상 트러스트 컴퓨팅 베이스를 이용한 기기 보안성 검증 방법 및 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP4044056A4 *

Also Published As

Publication number Publication date
EP4044056A4 (en) 2023-11-15
KR20210041932A (ko) 2021-04-16
US20240086543A1 (en) 2024-03-14
EP4044056A1 (en) 2022-08-17
CN114514725A (zh) 2022-05-17

Similar Documents

Publication Publication Date Title
WO2019093574A1 (ko) 해시 기반 서명 기법을 적용한 블록체인 시스템 및 방법
WO2021071157A1 (en) Electronic device and method for managing blockchain address using the same
CN108476404B (zh) 用于配对的设备和方法
US10248578B2 (en) Methods and systems for protecting data in USB systems
WO2017116019A1 (ko) 파일에 대한 공증 및 검증을 수행하는 방법 및 서버
WO2018062761A1 (ko) 보안 기능이 강화된 디바이스의 초기화 방법 및 디바이스의 펌웨어 업데이트 방법
TW202024927A (zh) 使用簽名之位址驗證
WO2017116062A1 (ko) 파일에 대한 공증 및 검증을 수행하는 방법 및 서버
WO2020164280A1 (zh) 数据传输加密方法、装置及存储介质、服务器
WO2019059453A1 (ko) 블록체인을 이용한 메시지 히스토리 기반의 보안 키를 이용하는 통신 장치 및 방법
WO2017148117A1 (zh) 一种安全刷机的方法及装置
WO2017105072A1 (ko) 생체 정보 기반 인증 장치 그리고 이의 동작 방법
WO2020117020A1 (ko) 생체 정보 기반의 pki 키 생성 방법 및 이를 이용한 키 생성 장치
WO2020130348A1 (ko) 디바이스 고유암호키 생성기 및 방법
WO2018035929A1 (zh) 一种验证码的处理方法及装置
WO2018160039A1 (ko) 분할 기능을 이용한 자동 인증 처리 방법 및 시스템
WO2021145555A1 (ko) 블록 체인을 기반으로 한 다중 노드 인증 방법 및 이를 위한 장치
WO2020032351A1 (ko) 익명 디지털 아이덴티티 수립 방법
US12052231B2 (en) Method and apparatus for managing reception of secure data packets
WO2020158973A1 (ko) 가설 수락 프로토콜-2 방식의 블록체인 합의 시스템 및 방법
EP2232397B1 (en) Secure data utilization
WO2015178597A1 (ko) Puf를 이용한 비밀키 업데이트 시스템 및 방법
WO2021071090A1 (ko) 보안 부팅 장치 및 그 동작 방법
WO2018012693A1 (ko) 주 기억 장치 내부의 코드 수정을 통한 애플리케이션 코드 은닉 장치 및 이를 이용한 애플리케이션 코드 은닉 방법
WO2021049681A1 (ko) 클라우드 서버를 기초로 인증을 수행하는 전자 장치 및 그 제어 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20873436

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 17767714

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020873436

Country of ref document: EP

Effective date: 20220509