KR102269335B1 - Apparatus and method for verifying suitability of code algorithm implementation in real time operating system - Google Patents

Apparatus and method for verifying suitability of code algorithm implementation in real time operating system Download PDF

Info

Publication number
KR102269335B1
KR102269335B1 KR1020190129986A KR20190129986A KR102269335B1 KR 102269335 B1 KR102269335 B1 KR 102269335B1 KR 1020190129986 A KR1020190129986 A KR 1020190129986A KR 20190129986 A KR20190129986 A KR 20190129986A KR 102269335 B1 KR102269335 B1 KR 102269335B1
Authority
KR
South Korea
Prior art keywords
encryption algorithm
verification
operating system
suitability
implementation
Prior art date
Application number
KR1020190129986A
Other languages
Korean (ko)
Other versions
KR20210046363A (en
Inventor
김수호
김태훈
김성철
Original Assignee
한전케이디엔주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한전케이디엔주식회사 filed Critical 한전케이디엔주식회사
Priority to KR1020190129986A priority Critical patent/KR102269335B1/en
Publication of KR20210046363A publication Critical patent/KR20210046363A/en
Application granted granted Critical
Publication of KR102269335B1 publication Critical patent/KR102269335B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/26Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명의 암호 알고리즘 구현 적합성 검증 장치는 암호 알고리즘이 구현된 소스 코드를 입력받는 입력부; 실시간 운영체제 환경에서 동작하는 임베디드 기기와의 통신 인터페이스를 제공하는 통신 인터페이스부; 및 기 설정된 제어 프로그램에 의거하여 상기 입력부 및 통신 인터페이스부를 제어하는 제어부를 포함하되, 상기 제어부는 상기 입력된 소스 코드에 의거하여 해당 암호 알고리즘에 대한 사전 검증을 실시한 후, 오류가 없는 것으로 결정된 암호 알고리즘에 대한 펌웨어를 생성하여 상기 통신 인터페이스부를 통해 상기 임베디드 기기로 업로드할 수 있다. 따라서, 본 발명은 실시간 운영체제 환경에서의 암호 알고리즘 구현 적합성 검증시, 프로세스 및 메모리 사용에 제약이 많은 실시간 운영체제 환경에서의 처리를 최소화함으로써 암호 알고리즘 구현 적합성 검증 효율을 향상시킬 수 있는 장점이 있다.The cryptographic algorithm implementation suitability verification apparatus of the present invention includes: an input unit for receiving a source code in which the cryptographic algorithm is implemented; a communication interface unit providing a communication interface with an embedded device operating in a real-time operating system environment; and a control unit for controlling the input unit and the communication interface unit based on a preset control program, wherein the control unit performs preliminary verification on the corresponding encryption algorithm based on the input source code, and then determines that there is no error. It is possible to generate firmware for the , and upload it to the embedded device through the communication interface unit. Accordingly, the present invention has the advantage of improving the encryption algorithm implementation suitability verification efficiency by minimizing processing in the real-time operating system environment, which has many restrictions on process and memory usage, when verifying the implementation suitability of the encryption algorithm in the real-time operating system environment.

Description

실시간 운영체제 환경에서의 암호 알고리즘 구현 적합성 검증 장치 및 그 방법{APPARATUS AND METHOD FOR VERIFYING SUITABILITY OF CODE ALGORITHM IMPLEMENTATION IN REAL TIME OPERATING SYSTEM}Apparatus and method for verifying implementation suitability of cryptographic algorithm in real-time operating system environment {APPARATUS AND METHOD FOR VERIFYING SUITABILITY OF CODE ALGORITHM IMPLEMENTATION IN REAL TIME OPERATING SYSTEM}

본 발명은 암호 알고리즘 구현 적합성 검증(CAVP: Cryptographic Algorithm Validation Program) 장치에 관한 것으로서, 보다 상세하게는, 실시간 운영체제(Real Time Operating System, 이하, ‘ RTOS’라 칭함) 환경에서의 암호 알고리즘 구현 적합성을 검증하는 장치 및 그 방법에 관한 것이다.The present invention relates to a cryptographic algorithm implementation suitability verification (CAVP: Cryptographic Algorithm Validation Program) device, and more particularly, to a cryptographic algorithm implementation suitability in a Real Time Operating System (hereinafter, referred to as 'RTOS') environment. It relates to an apparatus and method for verifying.

암호 알고리즘 구현 적합성 검증(CAVP: Cryptographic Algorithm Validation Program)이란 암호모듈 검증제도(CMVP: Cryptographic Module Validation Program) 인증시 암호모듈을 대상으로 적합성을 검증하는 프로세스를 말하며, 임베디드(Embedded Device) 기기에 탑재된 펌웨어의 적합성을 검증하기 위해서 사용되어질 수 있다.Cryptographic Algorithm Validation Program (CAVP) refers to the process of verifying the suitability of the cryptographic module during the Cryptographic Module Validation Program (CMVP) authentication. It can be used to verify the compatibility of the firmware.

상기 임베디드 기기는 미리 정해진 특정 기능을 수행하는 장치로서, DVD 플레이어, MP3 플레이어, 디지털 카메라, TV, 냉장고, 세탁기와 같은 가전기기는 물론이고, 의료기기, 자동차, 항공기 및 우주선 등의 다양한 정보처리 기기가 포함될 수 있으며, 대응된 기능을 수행하기 위해, 해당 프로그램이 탑재된 프로세서(예컨대, 펌웨어)를 내장하고 있어야 한다. The embedded device is a device that performs a predetermined specific function, and includes not only home appliances such as DVD players, MP3 players, digital cameras, TVs, refrigerators and washing machines, but also various information processing devices such as medical devices, automobiles, aircraft, and spacecraft. may be included, and in order to perform a corresponding function, a processor (eg, firmware) in which the corresponding program is loaded must be built-in.

또한, 상기 임베디드 기기의 동작 안정화를 위해, 상기 임베디드 기기에 탑재된 펌웨어는 암호 모듈에 대한 암호화 적합성 검증(이하, ‘CAVP 테스트’라 칭함)을 실시하여야 한다. 이 때, 상기 CAVP 테스트는 응용프로그램(예컨대, 시뮬레이터)으로 작성된 테스트 프로그램 및 암호 모듈 시험기관에서 제공하는 테스트 벡터를 이용하며, 테스트 결과는 정해진 규격에 맞춰 상기 암호 모듈 시험기관으로 제출하여야 한다. In addition, in order to stabilize the operation of the embedded device, the firmware mounted on the embedded device should perform encryption conformance verification (hereinafter, referred to as 'CAVP test') for the encryption module. In this case, the CAVP test uses a test program written in an application program (eg, a simulator) and a test vector provided by a cryptographic module testing institution, and the test result must be submitted to the cryptographic module testing institution in accordance with a set standard.

그런데 임베디드 기기에서 사용하는 실시간 운영체제(RTOS)는 파일시스템이 존재하지 않고 작은 용량(예컨대, 약 4MB)의 메모리를 보유하며 단일 프로세스만 지원하는 특징이 있다. 따라서, 상기 임베디드 기기에 대한 CAVP 테스트를 위해서는, 상기 CAVP 테스트에 필요한 데이터를 소스코드로 작성하여 상기 임베디드 기기의 메모리상에 올려야 한다.However, a real-time operating system (RTOS) used in embedded devices has no file system, has a small capacity (eg, about 4 MB) of memory, and supports only a single process. Therefore, for the CAVP test on the embedded device, data necessary for the CAVP test should be written as source code and loaded on the memory of the embedded device.

도 1은 종래의 실시예에 따른 CAVP 테스트 방법에 대한 처리 절차를 예시한 도면이다. 도 1을 참조하면, 먼저, 단계 S10에서, 암호 알고리즘이 구현된 소스코드의 입력이 확인되면, 별도의 프로그램 가능한 장치(즉, PC(Personal Computer)) (10)는, 상기 입력된 소스코드와 OS(Operating System)을 함께 컴파일한 후 바이너리 파일(.bin) 형태의 펌웨어를 생성한다. 단계 S30에서는 PC(10)가 상기 펌웨어를 임베디드 기기(20)로 전달한다. 즉, PC(10)가 상기 펌웨어를 임베디드 기기(20)에 업로드(up-load)한다. 1 is a diagram illustrating a processing procedure for a CAVP test method according to a conventional embodiment. Referring to FIG. 1 , first, in step S10, when the input of the source code in which the encryption algorithm is implemented is confirmed, a separate programmable device (that is, a personal computer (PC)) 10, the input source code and After compiling the OS (Operating System) together, the firmware in the form of a binary file (.bin) is created. In step S30 , the PC 10 transfers the firmware to the embedded device 20 . That is, the PC 10 uploads the firmware to the embedded device 20 .

그러면 단계 S40에서는, 임베디드 기기(20)가 상기 펌웨어를 저장한다. 즉, 임베디드 기기(20)는 상기 펌웨어를 ROM(Read Only Memory) 영역에 저장한다. 단계 S50에서는, 임베디드 기기(20)가 상기 펌웨어를 이용하여 임베디드 CAVP 테스트를 실시한다. 이를 위해, 임베디드 기기(20)는 상기 펌웨어를 실제 물리 메모리(RAM: Random Access Memory)에 로딩(loading)한다. 단계 S60에서는, 임베디드 기기(20)가 상기 테스트 결과를 분석하여 오류발생 여부를 결정한다. 즉, CAVP 테스트 결과값이 틀리거나 프로그램상 버그가 발견된 경우 임베디드 기기(20)는 오류가 발생한 것으로 판단하고, PC(10)측으로 오류발생알림 신호를 전달한다.Then, in step S40, the embedded device 20 stores the firmware. That is, the embedded device 20 stores the firmware in a read only memory (ROM) area. In step S50, the embedded device 20 performs an embedded CAVP test using the firmware. To this end, the embedded device 20 loads the firmware into an actual physical memory (RAM: Random Access Memory). In step S60, the embedded device 20 analyzes the test result and determines whether an error occurs. That is, when the CAVP test result value is wrong or a bug is found in the program, the embedded device 20 determines that an error has occurred and transmits an error occurrence notification signal to the PC 10 side.

그러면, PC(10)는, 단계 S70에서 소스코드를 수정하고, 단계 S20 및 단계 S30를 통해 새롭게 생성된 펌웨어를 임베디드 기기(20)로 전달한다. Then, the PC 10 modifies the source code in step S70 and transmits the newly generated firmware to the embedded device 20 through steps S20 and S30.

임베디드 기기(20)는, 단계 S40 내지 단계 S60을 통해, 펌웨어를 저장한 후 임베디드 CAVP 테스트를 실시하여 해당 펌웨어의 오류 발생 여부를 결정한다. The embedded device 20, through steps S40 to S60, stores the firmware and then performs an embedded CAVP test to determine whether an error occurs in the corresponding firmware.

그리고, 단계 S60에서 해당 펌웨어에 오류가 발생하지 않은 것으로 판단될 때까지, 단계 S70과, 단계 S20 이후의 과정을 반복 수행한다. Then, until it is determined in step S60 that an error has not occurred in the corresponding firmware, steps S70 and S20 and subsequent processes are repeatedly performed.

이러한 종래의 CAVP 테스트 방법은 단일 프로세스만 지원하는 RTOS의 특성상 메모리 할당 오류 또는 런타임 에러와 같은 오류가 발생할 경우 임베디드 기기(20)에서 디버깅(debugging)하기가 어려운 문제가 있다. 또한, 디버깅 후 소스코드의 수정이 필요할 때마다 PC(10)측에서 새롭게 컴파일된 펌웨어를 임베디드 기기(20)에서 전달받아 저장해야하는 번거로움이 있다. 이를 위해 종래에는 상기 단계 20 내지 단계 40을 반복 수행해야 했다. 그런데, 상기 단계 20 내지 단계 40는 그 소요시간이 길어서 이와 같이 소스코드의 수정이 필요할 때마다 반복 수행할 경우, CAVP 테스트 효율을 떨어뜨리는 요인이 된다.This conventional CAVP test method has a problem in that it is difficult to debug in the embedded device 20 when an error such as a memory allocation error or a runtime error occurs due to the characteristics of the RTOS supporting only a single process. In addition, whenever it is necessary to modify the source code after debugging, there is a inconvenience of receiving and storing the newly compiled firmware from the embedded device 20 on the PC 10 side. For this purpose, in the prior art, steps 20 to 40 have to be repeatedly performed. However, since the steps 20 to 40 take a long time, if the source code is repeatedly performed whenever it is necessary to modify the source code as described above, it becomes a factor of lowering the CAVP test efficiency.

그리고, 임베디드 기기(20)는 파일 시스템이 없는 RTOS를 사용하기 때문에 종래의 방법으로 CAVP 테스트를 수행할 경우, 이를 위한 데이터(예건대, 테스트 벡터)가 변경될 때마다, 소스코드에 하드-코딩해야 하는 불편함이 있으며, CAVP 결과를 저장 후 추출하는 것이 불가능하여 원격 접속을 통한 외부 출력 후 저장 및 가공 과정을 수동으로 처리해야 하는 어려움이 있다.And, since the embedded device 20 uses an RTOS without a file system, when performing a CAVP test in a conventional method, whenever data (eg, a test vector) for this is changed, hard-coding the source code It is inconvenient to do it, and it is impossible to extract the CAVP result after saving, so there is a difficulty in manually processing the storage and processing process after external output through remote access.

또한, 대부분의 임베디드 기기(20)가 작은 용량(예컨대, MB 단위)의 메모리를 보유하고 있기 때문에 큰 데이터를 수용할 수 없는 문제가 있다. In addition, since most embedded devices 20 have a small capacity (eg, MB unit) of memory, there is a problem that large data cannot be accommodated.

한국 공개 특허번호 10-2009-0060774호(“임베디드 시스템의 펌웨어 및 데이터 미러링 장치 및 방법”)Korean Patent Publication No. 10-2009-0060774 (“Firmware and data mirroring device and method of embedded system”)

따라서, 본 발명은 실시간 운영체제 환경에서의 암호 알고리즘 구현 적합성 검증시, 프로세스 및 메모리 사용에 제약이 많은 실시간 운영체제 환경에서의 처리를 최소화함으로써 암호 알고리즘 구현 적합성 검증 효율을 향상시킬 수 있는 장치 및 그 방법을 제공하고자 한다. Accordingly, the present invention provides an apparatus and method capable of improving cryptographic algorithm implementation conformity verification efficiency by minimizing processing in a real-time operating system environment, which has many restrictions on process and memory usage, when verifying cryptographic algorithm implementation suitability in a real-time operating system environment. would like to provide

또한, 본 발명은 실시간 운영체제 환경에서 동작되어질 암호 알고리즘에 대하여, 컴퓨터 장치에서 사전 검증을 실시한 후 업로드함으로써, 암호 알고리즘 구현 적합성 검증에 소요되는 시간을 단축할 수 있는 장치 및 방법을 제공하고자 한다. Another object of the present invention is to provide an apparatus and method capable of reducing the time required for verifying implementation suitability of an encryption algorithm by uploading the encryption algorithm to be operated in a real-time operating system environment after performing prior verification in a computer device.

또한, 본 발명은 실시간 운영체제 환경에서 도출된 검증 결과값을 컴퓨터 장치에서 처리될 수 있도록 함으로써, 상기 검증 결과값 추출을 위해 외부출력 후 저장 및 가공 과정을 수동으로 처리해야 하는 단점을 해소할 수 있는 장치 및 방법을 제공하고자 한다. In addition, the present invention allows the verification result value derived from the real-time operating system environment to be processed in the computer device, thereby solving the disadvantage of having to manually process the storage and processing process after external output to extract the verification result value. An apparatus and method are provided.

상기 목적을 달성하기 위해, 본 발명에서 제공하는 암호 알고리즘 구현 적합성 검증 장치는 암호 알고리즘이 구현된 소스 코드를 입력받는 데이터 입력부; 실시간 운영체제 환경에서 동작하는 임베디드 기기와의 통신 인터페이스를 제공하는 통신 인터페이스부; 및 기 설정된 제어 프로그램에 의거하여 상기 데이터 입력부 및 통신 인터페이스부를 제어하는 제어부를 포함하되, 상기 제어부는 상기 입력된 소스 코드에 의거하여 해당 암호 알고리즘에 대한 사전 검증을 실시한 후, 오류가 없는 것으로 결정된 암호 알고리즘에 대한 펌웨어를 생성하여 상기 통신 인터페이스부를 통해 상기 임베디드 기기로 업로드하는 것을 특징으로 한다. In order to achieve the above object, the cryptographic algorithm implementation suitability verification apparatus provided in the present invention is a data input unit for receiving the source code in which the cryptographic algorithm is implemented; a communication interface unit providing a communication interface with an embedded device operating in a real-time operating system environment; and a control unit for controlling the data input unit and the communication interface unit based on a preset control program, wherein the control unit performs preliminary verification on the corresponding encryption algorithm based on the input source code, and then determines that there is no error. It is characterized in that the firmware for the algorithm is generated and uploaded to the embedded device through the communication interface unit.

바람직하게는, 상기 제어부는 상기 암호 알고리즘 구현 적합성 검증을 위한 검증 프로그램을 생성하되, 일반 운영체제에서 동작하는 컴퓨터 장치용 검증 프로그램을 생성하여 상기 사전 검증을 실시하고, 상기 사전 검증 결과 오류가 없는 것으로 결정된 암호 알고리즘을 컴파일하되, 상기 컴퓨터 장치용 검증 프로그램 및 실시간 운영체제를 구현하기 위한 소스 코드와 함께 상기 임베디드 기기용 컴파일러로 컴파일하여 펌웨어를 생성할 수 있다. Preferably, the control unit generates a verification program for verifying the implementation suitability of the encryption algorithm, generates a verification program for a computer device operating in a general operating system, performs the prior verification, and determines that there is no error as a result of the prior verification The encryption algorithm may be compiled, but the firmware may be generated by compiling with the compiler for the embedded device together with the source code for implementing the verification program for the computer device and the real-time operating system.

바람직하게는, 상기 장치는 데이터를 표시하는 표시부를 더 포함하고, 상기 제어부는 상기 통신 인터페이스부를 통해 상기 임베디드 기기로부터 상기 펌웨어에 포함된 암호 알고리즘 구현 적합성 검증 결과 값을 전달받아 상기 표시부에 표시한 후, 상기 표시부의 내용을 스크랩하여 최종 결과파일을 생성하고 상기 최종 결과파일의 오류여부에 따라 상기 펌웨어에 포함된 암호 알고리즘의 정상 동작 여부를 결정할 수 있다. Preferably, the device further includes a display unit for displaying data, and the control unit receives the encryption algorithm implementation suitability verification result value included in the firmware from the embedded device through the communication interface unit and displays the result value on the display unit. , it is possible to generate a final result file by scraping the contents of the display unit, and determine whether an encryption algorithm included in the firmware operates normally according to whether the final result file is in error.

바람직하게는, 상기 제어부는 파일을 시리얼 프로토콜로 변환하는 프로토콜 변환 모듈을 더 포함하고, 상기 프로토콜 변환 모듈은 상기 입력부를 통해 상기 암호 알고리즘 구현 적합성을 검증하기 위한 신규 데이터 파일이 입력되면, 상기 신규 데이터 파일을 시리얼 프로토콜로 변환하여 상기 통신인터페이스부를 통해 상기 임베디드 기기로 전달할 수 있다. Preferably, the control unit further comprises a protocol conversion module for converting a file into a serial protocol, wherein the protocol conversion module receives a new data file for verifying implementation suitability of the encryption algorithm through the input unit, the new data The file may be converted into a serial protocol and transmitted to the embedded device through the communication interface unit.

또한, 상기 목적을 달성하기 위해, 본 발명에서 제공하는 실시간 운영체제 환경에서 암호 알고리즘 구현 적합성을 검증하는 방법은 암호 알고리즘이 구현된 소스코드의 입력에 응답하여 상기 암호 알고리즘 구현 적합성 검증을 위한 검증 프로그램을 생성하되, 일반 운영체제 환경에서 동작하는 컴퓨터 장치용 검증 프로그램을 생성하는 검증 프로그램 생성 단계; 상기 컴퓨터 장치용 검증 프로그램을 이용하여 상기 암호 알고리즘 구현 적합성에 대한 사전 검증을 실시하는 사전 검증 단계; 상기 사전 검증 결과 오류가 없는 것으로 결정된 암호 알고리즘에 대하여 대응된 펌웨어를 생성하고, 그 펌웨어를 실시간 운영체제 환경에서 동작하는 임베디드 기기로 업로드하는 업로드 단계; 및 상기 업로드된 펌웨어를 이용하여 상기 임베디드 기기에서 암호 알고리즘 구현 적합성 검증을 실시하는 임베디드 검증 단계를 포함하는 것을 특징으로 한다. In addition, in order to achieve the above object, the method for verifying the implementation suitability of the encryption algorithm in the real-time operating system environment provided by the present invention includes a verification program for verifying the implementation suitability of the encryption algorithm in response to the input of the source code in which the encryption algorithm is implemented. a verification program generating step of generating a verification program for a computer device operating in a general operating system environment; a pre-verification step of performing pre-verification on the suitability of implementation of the encryption algorithm by using the verification program for the computer device; an uploading step of generating firmware corresponding to the encryption algorithm determined to have no error as a result of the pre-verification, and uploading the firmware to an embedded device operating in a real-time operating system environment; and an embedded verification step of verifying cryptographic algorithm implementation suitability in the embedded device using the uploaded firmware.

바람직하게는, 상기 사전 검증 단계는 상기 암호 알고리즘의 정상동작 여부를 확인하기 위해 미리 생성된 테스트 데이터를 파싱하여 상기 암호 알고리즘의 파라미터를 검출하는 제1 파싱단계; 상기 검출된 파라미터를 상기 암호 알고리즘에 반영하여 제1 결과값을 도출하는 제1 결과값 도출단계; 및 상기 제1 결과값과 상기 테스트 데이터를 비교하여 상기 제1 결과값의 오류 여부를 결정하고 그 결과에 따라 상기 암호 알고리즘의 정상동작 여부를 확인하는 제1 확인단계를 포함할 수 있다. Preferably, the pre-verification step comprises: a first parsing step of parsing pre-generated test data to check whether the encryption algorithm operates normally to detect parameters of the encryption algorithm; a first result value deriving step of deriving a first result value by reflecting the detected parameter in the encryption algorithm; and a first checking step of comparing the first result value with the test data to determine whether the first result value is in error, and confirming whether the encryption algorithm operates normally according to the result.

바람직하게는, 상기 업로드 단계는 상기 오류가 없는 것으로 결정된 암호 알고리즘을 컴파일하되, 상기 컴퓨터 장치용 검증 프로그램 및 실시간 운영체제를 구현하기 위한 소스코드와 함께 상기 임베디드 기기용 컴파일러로 컴파일하여 펌웨어를 생성하는 펌웨어 생성단계를 포함할 수 있다. Preferably, the uploading step compiles the encryption algorithm determined to have no error, and compiles the encryption algorithm with the source code for implementing the verification program for the computer device and the real-time operating system with the compiler for the embedded device to generate the firmware. It may include a creation step.

바람직하게는, 상기 임베디드 검증 단계는 상기 펌웨어에 포함된 암호 알고리즘의 정상동작 여부를 확인하기 위해 미리 생성된 테스트 데이터를 파싱하여 상기 암호 알고리즘의 파라미터를 검출하는 제2 파싱단계; 상기 검출된 파라미터를 상기 암호 알고리즘에 반영하여 제2 결과값을 도출하는 제2 결과값 도출단계; 및 상기 제2 결과값과 상기 테스트 데이터를 비교하여 상기 제2 결과값의 오류 여부를 결정하고 그 결과에 따라 상기 암호 알고리즘의 정상동작 여부를 확인하는 제2 확인단계를 포함할 수 있다. Preferably, the embedded verification step comprises: a second parsing step of detecting parameters of the encryption algorithm by parsing pre-generated test data to check whether the encryption algorithm included in the firmware operates normally; a second result value deriving step of deriving a second result value by reflecting the detected parameter in the encryption algorithm; and a second checking step of comparing the second result value with the test data to determine whether the second result value is in error, and confirming whether the encryption algorithm operates normally according to the result.

바람직하게는, 상기 제2 확인 단계는 상기 제2 결과값을 상기 컴퓨터 장치의 화면에 출력하는 출력 단계; 및 상기 컴퓨터 장치의 화면에 출력된 상기 제2 결과값을 스크랩하여 최종결과 파일을 생성하는 최종결과파일 생성단계를 더 포함하고, 상기 최종결과파일의 오류여부에 따라 상기 펌웨어에 포함된 암호 알고리즘의 정상 동작 여부를 확인할 수 있다. Preferably, the second confirmation step comprises: an output step of outputting the second result value to the screen of the computer device; and a final result file generating step of generating a final result file by scraping the second result value output on the screen of the computer device, wherein the encryption algorithm included in the firmware is determined according to whether the final result file is in error. You can check whether it is operating normally.

바람직하게는, 상기 방법은 상기 사전 검증 단계 또는 상기 임베디드 검증 단계의 검증 결과, 상기 암호 알고리즘에 오류가 있는 것으로 확인된 경우 상기 암호 알고리즘이 구현된 소스코드를 수정하는 소스코드 수정단계를 더 포함할 수 있다. Preferably, the method further comprises a source code modification step of correcting the source code in which the encryption algorithm is implemented when it is confirmed that there is an error in the encryption algorithm as a result of the verification of the pre-verification step or the embedded verification step can

바람직하게는, 상기 방법은 상기 암호 알고리즘 구현 적합성을 검증하기 위한 신규 데이터 파일의 입력에 응답하여, 상기 컴퓨터 장치가 신규 데이터 파일을 시리얼 프로토콜로 변환한 후 상기 임베디드 기기로 전송하는 신규 데이터 전송단계; 및 상기 컴퓨터 장치가 상기 임베디드 기기로부터 상기 신규 데이터 파일이 반영된 검증 결과값을 전달받는 수신단계를 더 포함할 수 있다. Preferably, the method further comprises: in response to input of a new data file for verifying implementation suitability of the encryption algorithm, the computer device converts the new data file into a serial protocol and then transmits the new data file to the embedded device; and a receiving step of receiving, by the computer device, a verification result value reflecting the new data file from the embedded device.

본 발명의 장치 및 그 방법은 실시간 운영체제 환경에서의 암호 알고리즘 구현 적합성 검증시, 프로세스 및 메모리 사용에 제약이 많은 실시간 운영체제 환경에서의 처리를 최소화함으로써 암호 알고리즘 구현 적합성 검증 효율을 향상시킬 수 있는 장점이 있다. 또한, 본 발명은 실시간 운영체제 환경에서 동작되어질 암호 알고리즘에 대하여, 컴퓨터 장치에서 사전 검증을 실시한 후 업로드함으로써, 암호 알고리즘 구현 적합성 검증에 소요되는 시간을 단축할 수 있는 장점이 있다. 또한, 본 발명은 실시간 운영체제 환경에서 도출된 검증 결과값을 컴퓨터 장치에서 처리될 수 있도록 함으로써, 상기 검증 결과값 추출을 위해 외부출력 후 저장 및 가공 과정을 수동으로 처리해야 하는 단점을 해소할 수 있다. The apparatus and method of the present invention have the advantage of improving encryption algorithm implementation conformity verification efficiency by minimizing processing in a real-time operating system environment with many restrictions on process and memory usage when verifying encryption algorithm implementation suitability in a real-time operating system environment. have. In addition, the present invention has an advantage in that it is possible to shorten the time required to verify the implementation suitability of an encryption algorithm by uploading the encryption algorithm to be operated in a real-time operating system environment after performing prior verification in the computer device. In addition, the present invention allows the verification result value derived from the real-time operating system environment to be processed in the computer device, thereby solving the disadvantage of having to manually process the storage and processing process after external output to extract the verification result value. .

도 1은 종래의 실시예에 따른 암호 알고리즘 구현 적합성 검증 방법에 대한 처리 절차를 예시한 도면이다.
도 2는 본 발명의 일 실시 예에 따른 암호 알고리즘 구현 적합성 검증 장치에 대한 개략적인 블록도이다.
도 3은 본 발명의 일 실시 예에 따른 암호 알고리즘 구현 적합성 검증 방법에 대한 처리 절차를 예시한 도면이다.
도 4는 본 발명의 일 실시 예에 따른 사전 검증 단계를 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시 예에 따른 테스트 데이터 및 검증 프로그램의 예를 도시한 도면이다.
도 6은 본 발명의 일 실시 예에 따라 실시간 운영체제 환경에서 도출된 검증 결과값을 컴퓨터 장치에서 처리하는 과정을 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시 예에 따라 신규 데이터를 이용한 암호 알고리즘 구현 적합성 검증 결과 추출 방법에 대한 처리 절차를 예시한 도면이다.
도 8은 본 발명의 일 실시 예에 따라 데이터 파일을 임베디드 기기측으로 전송하는 과정을 도식화하여 설명하기 위한 도면이다.
도 9는 본 발명의 일 실시 예에 따라 암호 알고리즘 구현 적합성 검증을 수행하는 과정을 도식화하여 설명하기 위한 도면이다.
1 is a diagram illustrating a processing procedure for a method for verifying implementation suitability of an encryption algorithm according to a conventional embodiment.
2 is a schematic block diagram of a cryptographic algorithm implementation suitability verification apparatus according to an embodiment of the present invention.
3 is a diagram illustrating a processing procedure for a method for verifying implementation suitability of an encryption algorithm according to an embodiment of the present invention.
4 is a view for explaining a pre-verification step according to an embodiment of the present invention.
5 is a diagram illustrating an example of test data and a verification program according to an embodiment of the present invention.
6 is a diagram for explaining a process of processing a verification result value derived from a real-time operating system environment in a computer device according to an embodiment of the present invention.
7 is a diagram illustrating a processing procedure for a method of extracting an encryption algorithm implementation suitability verification result using new data according to an embodiment of the present invention.
8 is a diagram for schematically explaining a process of transmitting a data file to an embedded device according to an embodiment of the present invention.
9 is a diagram for schematically explaining a process of performing verification of implementation suitability of an encryption algorithm according to an embodiment of the present invention.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 설명하되, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 한편 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. 또한 상세한 설명을 생략하여도 본 기술 분야의 당업자가 쉽게 이해할 수 있는 부분의 설명은 생략하였다.Hereinafter, an embodiment of the present invention will be described with reference to the accompanying drawings, but it will be described in detail so that those of ordinary skill in the art to which the present invention pertains can easily practice the present invention. However, the present invention may be embodied in various different forms and is not limited to the embodiments described herein. On the other hand, in order to clearly explain the present invention in the drawings, parts irrelevant to the description are omitted, and similar reference numerals are attached to similar parts throughout the specification. In addition, even if the detailed description is omitted, descriptions of parts that can be easily understood by those skilled in the art are omitted.

명세서 및 청구범위 전체에서, 어떤 부분이 어떤 구성 요소를 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification and claims, when a part includes a certain element, it means that other elements may be further included, rather than excluding other elements, unless otherwise stated.

도 2는 본 발명의 일 실시 예에 따른 암호 알고리즘 구현 적합성 검증 장치에 대한 개략적인 블록도이다. 도 2를 참조하면, 본 발명의 일 실시 예에 따른 암호 알고리즘 구현 적합성 검증 장치(100)는 입력부(110), 통신 인터페이스부(I/F)(120), 표시부(130) 및 제어부(140)를 포함한다. 2 is a schematic block diagram of a cryptographic algorithm implementation suitability verification apparatus according to an embodiment of the present invention. Referring to FIG. 2 , the cryptographic algorithm implementation suitability verification apparatus 100 according to an embodiment of the present invention includes an input unit 110 , a communication interface unit (I/F) 120 , a display unit 130 , and a control unit 140 . includes

입력부(110)는 암호 알고리즘 구현 적합성 검장치(100)로 입력되는 각종 데이터들을 입력받는다. 예를 들어, 입력부(110)는 암호 알고리즘이 구현된 소스 코드를 입력받는다. The input unit 110 receives various data input to the encryption algorithm implementation suitability detection device 100 . For example, the input unit 110 receives a source code in which an encryption algorithm is implemented.

통신 인터페이스부(I/F)(120)는 통신망과의 통신 인터페이스를 제공한다. 특히, 실시간 운영체제 환경에서 동작하는 임베디드 기기(미도시)와의 통신 인터페이스를 제공한다. The communication interface unit (I/F) 120 provides a communication interface with a communication network. In particular, it provides a communication interface with an embedded device (not shown) operating in a real-time operating system environment.

표시부(130)는 암호 알고리즘 구현 적합성 검증 장치(100)의 동작에 따른 데이터를 표시한다. The display unit 130 displays data according to the operation of the cryptographic algorithm implementation suitability verification apparatus 100 .

제어부(140)는 기 설정된 제어 프로그램 또는 입력부(110)를 통해 입력되는 조작신호에 의거하여 암호 알고리즘 구현 적합성 검증 장치(100)의 동작을 제어한다. 즉, 입력부(110), 통신 인터페이스부(I/F)(120) 및 제어부(130)의 동작을 제어한다. The control unit 140 controls the operation of the cryptographic algorithm implementation suitability verification apparatus 100 based on a preset control program or an operation signal input through the input unit 110 . That is, it controls the operations of the input unit 110 , the communication interface unit (I/F) 120 , and the control unit 130 .

특히, 제어부(140)는 입력부(110)를 통해 입력된 소스 코드에 의거하여 해당 암호 알고리즘에 대한 사전 검증을 실시한 후, 오류가 없는 것으로 결정된 암호 알고리즘에 대한 펌웨어를 생성하고, 그 펌웨어를 통신 인터페이스부(I/F)(120)를 통해 상기 임베디드 기기(미도시)로 업로드한다. In particular, the control unit 140 performs preliminary verification on the corresponding encryption algorithm based on the source code input through the input unit 110 , and then generates firmware for the encryption algorithm determined to be free of errors, and transmits the firmware to the communication interface. It is uploaded to the embedded device (not shown) through the unit (I/F) 120 .

이를 위해, 제어부(140)는 상기 암호 알고리즘 구현 적합성 검증을 위한 검증 프로그램을 생성하되, 일반 운영체제에서 동작하는 컴퓨터 장치용 검증 프로그램을 생성하여 상기 사전 검증을 실시한다. 그리고, 상기 사전 검증 결과 오류가 없는 것으로 결정된 암호 알고리즘을 컴파일하여 펌웨어를 생성한다. 이 때, 제어부(140)는 상기 오류가 없는 것으로 결정된 암호 알고리즘을, 상기 실시간 운영체제를 구현하기 위한 소스코드, 및 상기 컴퓨터 장치용 검증 프로그램과 함께, 상기 임베디드 기기용 컴파일러로 컴파일하여 펌웨어를 생성할 수 있다. To this end, the control unit 140 generates a verification program for verifying the implementation suitability of the encryption algorithm, but generates a verification program for a computer device operating in a general operating system and performs the prior verification. Then, the firmware is generated by compiling the encryption algorithm determined to have no error as a result of the prior verification. At this time, the controller 140 compiles the encryption algorithm determined to have no error with the compiler for the embedded device, together with the source code for implementing the real-time operating system, and the verification program for the computer device to generate firmware. can

또한, 제어부(140)는 통신 인터페이스부(I/F)(120)를 통해 상기 임베디드 기기(미도시)로부터 상기 펌웨어에 포함된 암호 알고리즘 구현 적합성 검증 결과 값을 전달받아 표시부(130)에 표시한 후, 그 검증 결과값에 의거하여 상기 펌웨어에 포함된 암호 알고리즘의 정상 동작 여부를 결정한다. 이를 이해, 제어부(140)는 표시부(130)의 내용을 스크랩하여 최종 결과파일을 생성하고 상기 최종 결과파일의 오류여부에 따라 상기 펌웨어에 포함된 암호 알고리즘의 정상 동작 여부를 결정할 수 있다. In addition, the control unit 140 receives the encryption algorithm implementation suitability verification result value included in the firmware from the embedded device (not shown) through the communication interface unit (I/F) 120 and displays it on the display unit 130 . Then, based on the verification result, it is determined whether the encryption algorithm included in the firmware operates normally. Understanding this, the control unit 140 may scrape the contents of the display unit 130 to generate a final result file, and determine whether the encryption algorithm included in the firmware operates normally according to whether the final result file is in error.

또한, 제어부(140)는 파일을 시리얼 프로토콜로 변환하는 프로토콜 변환 모듈(미도시)을 더 포함하고, 상기 프로토콜 변환 모듈은 상기 입력부를 통해 상기 암호 알고리즘 구현 적합성을 검증하기 위한 신규 데이터 파일이 입력되면, 상기 신규 데이터 파일을 시리얼 프로토콜로 변환하여 상기 통신인터페이스부를 통해 상기 임베디드 기기로 전달할 수 있다. In addition, the control unit 140 further includes a protocol conversion module (not shown) that converts the file into a serial protocol, and the protocol conversion module receives a new data file for verifying implementation suitability of the encryption algorithm through the input unit. , the new data file may be converted into a serial protocol and transmitted to the embedded device through the communication interface unit.

도 3은 본 발명의 일 실시 예에 따른 암호 알고리즘 구현 적합성 검증 방법에 대한 처리 절차를 예시한 도면으로서, 컴퓨터 장치(PC)에 구현된 암호 알고리즘 구현 적합성 검증 장치(이하, 컴퓨터 장치라 칭함)(100)가, 실시간 운영체제 환경에서 동작하는 임베디드 기기(200)에 탑재될 암호 알고리즘을 생성한 후, 임베디드 기기(200)와의 연동에 의해 상기 암호 알고리즘의 적합성을 검증하는 처리 절차의 예를 도시하고 있다. 이 때, 컴퓨터 장치(PC)(100)는 일반 운영체제 환경에서 동작하는 기기를 말하고, 상기 일반 운영체제란 상기 실시간 운영체제에 대비되는 표현으로, 일반적으로 사용되는 운영체제(예컨대, 윈도우, 리눅스 등)를 말한다. FIG. 3 is a diagram illustrating a processing procedure for a method for verifying cryptographic algorithm implementation conformity according to an embodiment of the present invention, and is a cryptographic algorithm implementation conformity verification device (hereinafter referred to as a computer device) implemented in a computer device (PC) ( 100) shows an example of a processing procedure for generating an encryption algorithm to be mounted on the embedded device 200 operating in a real-time operating system environment, and then verifying the suitability of the encryption algorithm by interworking with the embedded device 200. . In this case, the computer device (PC) 100 refers to a device operating in a general operating system environment, and the general operating system is a contrasting expression to the real-time operating system, and refers to a generally used operating system (eg, Windows, Linux, etc.). .

도 2 및 도 3을 참조하여 본 발명의 일 실시 예에 따른 암호 알고리즘 구현 적합성 검증 방법을 설명하면 다음과 같다. A method for verifying implementation suitability of an encryption algorithm according to an embodiment of the present invention will be described with reference to FIGS. 2 and 3 .

먼저, 단계 S105에서는, 입력부(110)를 통해 소스코드가 입력되는 지를 결정한다. 이 때, 소스코드는 암호 알고리즘을 구현하기 위해 코딩된 데이터를 말한다. 단계 S105에서 상기 소스코드의 입력이 확인되면, 단계 S110에서는, 제어부(140)가, 그에 응답하여 상기 암호 알고리즘 구현 적합성 검증을 위한 검증 프로그램을 생성한다. 이를 위해, 단계 S110에서는, 제어부(140)가, 암호 알고리즘이 구현되어 있는 소스 코드를 컴퓨터 장치(PC)용 암호 라이브러리(예컨대, crypto.dll)로 생성하고, 상기 암호 라이브러리를 사용하여 암호 알고리즘 구현 적합성 검증을 수행하는 소스코드를 작성한 후, 컴퓨터 장치(PC)용 어플리케이션으로 컴파일하여 컴퓨터 장치(PC)용 검증 프로그램(예컨대, CAVP_test.exe)을 생성한다. First, in step S105 , it is determined whether the source code is input through the input unit 110 . In this case, the source code refers to data coded to implement the encryption algorithm. If the input of the source code is confirmed in step S105, in step S110, the controller 140 generates a verification program for verifying the implementation suitability of the encryption algorithm in response thereto. To this end, in step S110, the control unit 140 generates a source code in which a cryptographic algorithm is implemented as a cryptographic library (eg, crypto.dll) for a computer device (PC), and implements the cryptographic algorithm using the cryptographic library. After writing the source code for performing conformance verification, it is compiled into an application for a computer device (PC) to generate a verification program (eg, CAVP_test.exe) for the computer device (PC).

단계 S115에서는, 제어부(140)가 상기 컴퓨터 장치용 검증 프로그램을 이용하여 상기 암호 알고리즘 구현 적합성에 대한 사전 검증을 실시한다. 이 때, 상기 암호 알고리즘 구현 적합성에 대한 검증은, 암호 알고리즘을 사용하여 각각의 암호 알고리즘의 운영모드, 구현 정확성, 구현과정의 결함 여부 등을 확인하기 위한 테스트를 말한다. 이를 위해, 단계 S115에서는, 제어부(140)가 상기 암호 알고리즘의 정상동작 여부를 확인하기 위해 미리 생성된 테스트 데이터를 파싱하여 상기 암호 알고리즘의 파라미터를 검출하고, 상기 검출된 파라미터를 상기 암호 알고리즘에 반영하여 제1 결과값을 도출하고, 상기 제1 결과값과 상기 테스트 데이터를 비교하여 상기 제1 결과값의 오류 여부를 결정한 후 그 결과에 따라 상기 암호 알고리즘의 정상동작 여부를 확인한다. 도 4는 이러한 사전 검증 단계(S115)를 설명하기 위한 도면으로서, 도 2 내지 도 4를 참조하면, 제어부(140)는 상기 테스트 데이터(예컨대, .req 파일)(A)를 파싱하여 상기 테스트 데이터(예컨대, .req 파일)(A)로부터 파라미터를 검출하고, 상기 파라미터를 검증 프로그램(B)으로 전달한다(S201). 그러면, 검증 프로그램(B)은 암호 알고리즘(C) 함수를 호출하고(S203), 그 응답으로 전달된(S205) 암호 알고리즘 함수(C)에 상기 파라미터를 적용하여 테스트 결과값(예컨대, .rsp 파일)(D)을 출력한다(S207).In step S115, the control unit 140 uses the verification program for the computer device to perform pre-verification of suitability for implementation of the encryption algorithm. In this case, the verification of suitability for implementation of the encryption algorithm refers to a test for verifying the operation mode, implementation accuracy, and defect of each encryption algorithm using the encryption algorithm. To this end, in step S115, the control unit 140 parses the test data generated in advance to check whether the encryption algorithm operates normally, detects the parameters of the encryption algorithm, and reflects the detected parameters in the encryption algorithm. to derive a first result value, compare the first result value with the test data to determine whether the first result value is in error, and then check whether the encryption algorithm operates normally according to the result. FIG. 4 is a view for explaining the pre-verification step S115. Referring to FIGS. 2 to 4 , the control unit 140 parses the test data (eg, .req file) A and the test data A parameter is detected from (eg, a .req file) (A), and the parameter is transmitted to the verification program (B) (S201). Then, the verification program (B) calls the cryptographic algorithm (C) function (S203), applies the parameter to the cryptographic algorithm function (C) transmitted as a response (S205), and applies the test result value (eg, .rsp file) ) (D) is output (S207).

그러면, 제어부(140)는 상기 테스트 결과값(예컨대, .rsp 파일)과 상기 테스트 데이터(예컨대, .req 파일)(A)를 비교하여 상기 암호 알고리즘에 대한 검증을 실시한다. 이 때, 상기 비교과정은 두 개의 파일을 비교하여 서로 다른 부분을 출력하는 툴(예컨대, diff 툴)을 사용하여 수행할 수 있다. Then, the control unit 140 compares the test result value (eg, .rsp file) with the test data (eg, .req file) (A) to verify the encryption algorithm. In this case, the comparison process may be performed using a tool (eg, a diff tool) that compares two files and outputs different parts.

도 5는 상기 사전 검증을 위한 테스트 데이터 및 검증 프로그램의 예를 도시한 도면으로서, 도 5의 (a)는 ARIA 128 MCT 몬테 카를로 검사를 위한 테스트 데이터(.req 파일)의 예를 도시하고, 도 5의 (b)는 ARIA 128 MCT 몬테 카를로 검사를 위한 테스트 프로그램(즉, 검증 프로그램) 예를 도시한다. 5 is a view showing an example of test data and a verification program for the pre-verification. FIG. 5 (a) shows an example of test data (.req file) for ARIA 128 MCT Monte Carlo examination, and FIG. 5(b) shows an example of a test program (ie, verification program) for ARIA 128 MCT Monte Carlo test.

도 5의 (a)를 참조하면, 상기 테스트 데이터(.req 파일)는 일련의 영숫자를 포함하는 KEY, IV, PT 값을 포함하고, 도 5의 (b)를 참조하면, 상기 ARIA 128 MCT 몬테 카를로 검사를 위한 테스트 프로그램(즉, 검증 프로그램)은 변수 ‘i’를 0부터 99까지 증가시키고, 변수 ‘j’를 0부터 999까지 증가시키면서 상기 암호 알고리즘을 검증하되, ‘j’가 0일 때는 상기 테스트 데이터들 중 (Key[i], PT[j] xor IV[i])를 암호 알고리즘 ARIA의 파라미터로 하여 검증값(CT[j])을 검출하고, 그렇지 않을 경우(즉, ‘j’가 0이 아닐 경우)는 상기 테스트 데이터들 중 (Key[i], PT[j] xor CT[j-1])를 암호 알고리즘 ARIA의 파라미터로 하여 검증값(CT[j])을 검출하고, 상기 검증값(CT[j])을 이용하여 상기 암호 알고리즘 ARIA를 검증한다. 즉, 상기 검증값(CT[j])이 답안(즉, 상기 테스트 데이터(.req 파일))과 다를 경우 암호 알고리즘 또는 상기 검증 프로그램을 수정할 수 있다. 예를 들어, 상기 검증값(CT[j])이 답안(즉, 상기 테스트 데이터(.req 파일))과 같아지도록 상기 암호 알고리즘 또는 상기 검증 프로그램을 수정할 수 있다. Referring to (a) of FIG. 5, the test data (.req file) includes KEY, IV, and PT values including a series of alphanumeric characters. Referring to FIG. 5 (b), the ARIA 128 MCT Monte The test program for the Carlo check (that is, the verification program) increments the variable 'i' from 0 to 99 and increments the variable 'j' from 0 to 999 to verify the encryption algorithm, but when 'j' is 0, Among the test data, (Key[i], PT[j] xor IV[i]) is used as a parameter of the encryption algorithm ARIA to detect the verification value (CT[j]), otherwise (ie, 'j' is not 0) detects the verification value (CT[j]) using (Key[i], PT[j] xor CT[j-1]) as a parameter of the encryption algorithm ARIA among the test data, The encryption algorithm ARIA is verified using the verification value CT[j]. That is, when the verification value CT[j] is different from the answer (ie, the test data (.req file)), the encryption algorithm or the verification program may be modified. For example, the encryption algorithm or the verification program may be modified so that the verification value CT[j] is the same as the answer (ie, the test data (.req file)).

다시 도 2 및 도 3을 참조하면, 단계 S120에서는, 제어부(140)가 단계 S115의 사전 검증 결과를 분석하여 해당 암호 알고리즘에 오류가 발생했는지의 여부를 결정한다. 단계 S120에서 해당 암호 알고리즘에 오류가 발생하지 않은 것으로 결정된 경우, 단계 S125에서는, 제어부(140)가, 단계 S120에서 오류가 없는 것으로 결정된 암호 알고리즘에 대하여 대응된 펌웨어를 생성한다. 이 때, 제어부(140)는 상기 오류가 없는 것으로 결정된 암호 알고리즘을 컴파일하되, 상기 컴퓨터 장치용 검증 프로그램 및 실시간 운영체제(RTOS)를 구현하기 위한 소스코드와 함께 상기 암호 알고리즘을 컴파일하고, 상기 암호 알고리즘, 상기 검증 프로그램 및 실시간 운영체제를 모두 상기 임베디드 기기용 컴파일러로 빌드하여 빈파일(.bin 파일)을 생성할 수 있다. Referring again to FIGS. 2 and 3 , in step S120 , the control unit 140 analyzes the pre-verification result of step S115 to determine whether an error has occurred in the corresponding encryption algorithm. When it is determined in step S120 that there is no error in the corresponding encryption algorithm, in step S125, the control unit 140 generates firmware corresponding to the encryption algorithm determined in step S120 that there is no error. At this time, the control unit 140 compiles the encryption algorithm determined to have no error, and compiles the encryption algorithm together with the source code for implementing the verification program for the computer device and the real-time operating system (RTOS), and the encryption algorithm , a bin file (.bin file) may be generated by building both the verification program and the real-time operating system with the embedded device compiler.

만약 단계 S120에서 해당 암호 알고리즘에 오류가 발생한 것으로 결정된 경우, 제어부(140)는 단계 S160에서 소스코드를 수정한다. 이를 위해, 제어부(140)는 암호 알고리즘에 발생한 오류를 표시부(130)를 통해 표시하여 관리자로부터 수정된 소스코드의 입력을 유도할 수 있다. 그리고 수정된 소스코드가 입력되면 그에 응답하여 제어부(140)가 기 저장된 소스 코드를 수정할 수 있다. If it is determined in step S120 that an error has occurred in the corresponding encryption algorithm, the controller 140 corrects the source code in step S160. To this end, the controller 140 may induce input of the corrected source code from the administrator by displaying an error occurring in the encryption algorithm through the display unit 130 . And when the modified source code is input, the controller 140 may modify the pre-stored source code in response thereto.

단계 S130에서는, 상기 통신 인터페이스부(120)를 통해 상기 펌웨어를 임베디드 기기(200)로 업로드한다. In step S130 , the firmware is uploaded to the embedded device 200 through the communication interface unit 120 .

그러면, 단계 S135에서는, 상기 임베디드 기기(200)가 상기 펌웨어를 저장하고, 단계 S140에서는, 상기 업로드된 펌웨어를 이용하여 상기 임베디드 기기(200)에서 암호 알고리즘 구현 적합성 검증을 실시한다. 즉, 임베디드 검증을 실시한다. Then, in step S135, the embedded device 200 stores the firmware, and in step S140, the encryption algorithm implementation suitability is verified in the embedded device 200 using the uploaded firmware. That is, embedded verification is performed.

이 때, 상기 임베디드 검증은 상기 펌웨어에 포함된 암호 알고리즘의 정상동작 여부를 확인하기 위해 미리 생성된 테스트 데이터를 파싱하여 상기 암호 알고리즘의 파라미터를 검출하고, 상기 검출된 파라미터를 상기 암호 알고리즘에 반영하여 제2 결과값을 도출하고, 상기 제2 결과값과 상기 테스트 데이터를 비교하여 상기 제2 결과값의 오류 여부를 결정하고 그 결과에 따라 상기 암호 알고리즘의 정상동작 여부를 확인하는 일련의 과정을 포함할 수 있다. At this time, the embedded verification detects the parameters of the encryption algorithm by parsing test data generated in advance to check whether the encryption algorithm included in the firmware operates normally, and reflects the detected parameters in the encryption algorithm. It includes a series of processes of deriving a second result value, comparing the second result value with the test data, determining whether the second result value is in error, and confirming whether the encryption algorithm operates normally according to the result can do.

이 때, 상기 임베디드 검증 단계(S140)은 도 4에 예시된 사전 검증 단계(S115)와 일부 유사하다. 다만, 이 때, 임베디드 기기(200)는 파일 시스템을 가지고 있지 않을 뿐 아니라, 적은 용량의 메모리만을 포함하기 때문에, 이로 인한 문제를 해결하기 위해, 상기 제2 결과값을 컴퓨터 장치(100)에 출력할 수 있다. 즉, 단계 S145에서, 임베디드 기기(200)는 단계 S140의 검증 결과값을 컴퓨터 장치(100)에 출력할 수 있다. 그러면 컴퓨터 장치(100)는 단계 S150에서 상기 검증 결과값을 이용한 2차 검증을 실시한다. 이를 위해 컴퓨터 장치(100)는 상기 임베디드 기기(200)로부터 전달된 상기 검증 결과값을 이용하여 최종결과파일을 생성한 후 그 최종결과파일을 이용하여 2차 검증을 실시할 수 있다. 도 6은 본 발명의 일 실시 예에 따라 실시간 운영체제 환경에서 도출된 검증 결과값을 컴퓨터 장치에서 처리하는 과정을 설명하기 위한 도면을 예시한 도면으로서, 도 6의 (a)는 단계 S145에서 전달된 검증 결과값을 컴퓨터 장치(100)의 화면에 표시한 예를 설명하기 위한 도면이고, 도 6의 (b)는 컴퓨터 장치(100)가 상기 검증 결과값으로부터 최종결과파일을 생성하는 과정을 설명하기 위한 도면이다. 도 3 및 도 6을 참조하면, 컴퓨터 장치(100)는 단계 S145에서 임베디드 기기(200)로부터 전달된 검증 결과값(D)을 도 6의 (a)와 같이 표시부(130)에 표시한 후 그 화면을 스크랩하여 로(RAW) 데이터(F)를 추출한다. 그리고 도 6의 (b)에 예시된 바와 같이 상기 로(RAW) 데이터(F)와 SAM 파일(형식파일)(G)을 비교하여 최종결과파일(.rsp 파일)(H)을 생성한다. 이를 위해 제어부(140)는 임베디드 기기(200)의 검증 결과값을 시리얼 프로토콜로 전달받아 최종결과파일(.rsp 파일)(H)을 생성하는 결과파일 생성 에이전트를 포함할 수 있다. At this time, the embedded verification step S140 is partially similar to the pre-verification step S115 illustrated in FIG. 4 . However, at this time, since the embedded device 200 does not have a file system and includes only a small amount of memory, the second result value is output to the computer device 100 in order to solve this problem. can do. That is, in step S145 , the embedded device 200 may output the verification result value of step S140 to the computer device 100 . Then, the computer device 100 performs secondary verification using the verification result value in step S150. To this end, the computer device 100 may generate a final result file using the verification result value transmitted from the embedded device 200 and then perform secondary verification using the final result file. 6 is a view for explaining a process of processing a verification result value derived from a real-time operating system environment in a computer device according to an embodiment of the present invention. It is a view for explaining an example in which the verification result value is displayed on the screen of the computer device 100, and FIG. 6 (b) is the computer device 100 to explain the process of generating a final result file from the verification result value is a drawing for Referring to FIGS. 3 and 6 , the computer device 100 displays the verification result value D delivered from the embedded device 200 in step S145 on the display unit 130 as shown in FIG. The screen is scraped to extract raw data (F). And as illustrated in (b) of FIG. 6 , a final result file (.rsp file) (H) is generated by comparing the raw (RAW) data (F) and the SAM file (format file) (G). To this end, the controller 140 may include a result file generating agent that receives the verification result value of the embedded device 200 through a serial protocol and generates a final result file (.rsp file) (H).

한편, 단계 S155는, 제어부(140)가 단계 S150의 2차 검증 결과를 분석하여 해당 암호 알고리즘에 오류가 발생했는지의 여부를 결정한다. 만약, 단계 S155에서 상기 임베디드 기기(200)에 저장된 암호 알고리즘에 오류가 발생한 것으로 결정된 경우, 제어부(140)는 단계 S160에서 소스코드를 수정한다. 이를 위해, 제어부(140)는 암호 알고리즘에 발생한 오류를 표시부(130)를 통해 표시하여 관리자로부터 수정된 소스코드의 입력을 유도하고, 수정된 소스코드가 입력되면 그에 응답하여 기 저장된 소스 코드를 수정할 수 있다. Meanwhile, in step S155, the controller 140 analyzes the secondary verification result of step S150 to determine whether an error has occurred in the corresponding encryption algorithm. If it is determined in step S155 that an error has occurred in the encryption algorithm stored in the embedded device 200, the controller 140 corrects the source code in step S160. To this end, the control unit 140 displays an error occurring in the encryption algorithm through the display unit 130 to induce the administrator to input the modified source code, and when the modified source code is input, the controller 140 corrects the stored source code in response thereto. can

한편, 암호 알고리즘 구현 적합성을 검증하기 위한 신규 데이터 파일이 입력된 경우, 컴퓨터 장치(100)는 이를 임베디드 기기(200)로 전달하고, 임베디드 기기(200)로부터 상기 신규 데이터 파일이 반영된 검증 결과값을 전달받아 관리할 수 있다. 이러한 처리 과정의 예가 도 7에 예시되어 있다. On the other hand, when a new data file for verifying the cryptographic algorithm implementation suitability is input, the computer device 100 transmits it to the embedded device 200, and returns the verification result value reflecting the new data file from the embedded device 200 can be delivered and managed. An example of such a process is illustrated in FIG. 7 .

도 7은 본 발명의 일 실시 예에 따라 신규 데이터를 이용한 암호 알고리즘 구현 적합성 검증 결과 추출 방법에 대한 처리 절차를 예시한 도면으로서, 컴퓨터 장치(PC)에 구현된 암호 알고리즘 구현 적합성 검증 장치(이하, 컴퓨터 장치라 칭함)(100)가, 실시간 운영체제 환경에서 동작하는 임베디드 기기(200)로 신규 데이터 파일을 전송하고, 임베디드 기기(200)로부터 상기 신규 데이터 파일이 반영된 검증 결과값을 전달받는 일련의 처리 과정을 예시하고 있다. 이 때, 컴퓨터 장치(PC)(100)는 일반 운영체제 환경에서 동작하는 기기를 말하고, 상기 일반 운영체제란 상기 실시간 운영체제에 대비되는 표현으로, 일반적으로 사용되는 운영체제(예컨대, 윈도우, 리눅스 등)를 말한다. 7 is a diagram illustrating a processing procedure for a method of extracting an encryption algorithm implementation suitability verification result using new data according to an embodiment of the present invention, and is a cryptographic algorithm implementation suitability verification device implemented in a computer device (PC) (hereinafter, (referred to as a computer device) 100 transmits a new data file to the embedded device 200 operating in a real-time operating system environment, and receives a verification result value reflecting the new data file from the embedded device 200 A series of processing exemplifies the process. In this case, the computer device (PC) 100 refers to a device operating in a general operating system environment, and the general operating system is a contrasting expression to the real-time operating system, and refers to a generally used operating system (eg, Windows, Linux, etc.). .

도 2 및 도 7을 참조하여 본 발명의 일 실시 예에 따라 신규 데이터를 이용한 암호 알고리즘 구현 적합성 검증 결과를 추출하는 방법을 설명하면 다음과 같다. A method of extracting an encryption algorithm implementation suitability verification result using new data according to an embodiment of the present invention will be described with reference to FIGS. 2 and 7 .

먼저, 단계 S305에서는, 입력부(110)를 통해 신규 데이터 파일이 입력되는 지를 결정한다. 이 때, 신규 데이터 파일은 암호 알고리즘의 정상동작 여부를 확인하기 위해 새롭게 생성된 테스트 데이터일 수 있다. First, in step S305 , it is determined whether a new data file is input through the input unit 110 . In this case, the new data file may be newly generated test data to check whether the encryption algorithm operates normally.

단계 S310에서는, 제어부(140)가 상기 신규 데이터 파일을 시리얼 프로토콜로 변환한다. 이를 위해 제어부(140)은 파일을 시리얼 프로토콜로 변환하는 프로토콜 변환 프로그램을 포함할 수 있다. In step S310, the controller 140 converts the new data file into a serial protocol. To this end, the controller 140 may include a protocol conversion program for converting a file into a serial protocol.

단계 S315에서는, 상기 시리얼 프로토콜로 변환된 신규 데이터 파일을 임베디드 기기(200)로 전송한다. In step S315 , the new data file converted to the serial protocol is transmitted to the embedded device 200 .

단계 S320에서는, 임베디드 기기(200)가 상기 신규 데이터 파일을 반영한 임베디드 검증을 실시한다. 이 때, 상기 단계 S320에서는, 상기 신규 데이터 파일을 파싱하여 임베디드 기기(200)에 저장된 암호 알고리즘의 정상동작 여부를 확인하기 위한 파라미터를 검출하고, 상기 검출된 파라미터를 상기 암호 알고리즘에 반영하여 신규 데이터 파일이 반영된 검증 결과값을 도출할 수 있다. In step S320, the embedded device 200 performs embedded verification reflecting the new data file. At this time, in step S320, the new data file is parsed to detect a parameter for checking whether the encryption algorithm stored in the embedded device 200 operates normally, and the detected parameter is reflected in the encryption algorithm to obtain new data. A verification result value in which the file is reflected can be derived.

단계 S325에서는, 임베디드 기기(200)가 상기 신규 데이터 파일이 반영된 검증 결과값을 컴퓨터 장치(100)에 출력하고, 단계 S330에서는, 컴퓨터 장치(100)가 상기 신규 데이터 파일이 반영된 검증 결과값을 이용하여 최종 결과파일을 생성한다. In step S325, the embedded device 200 outputs the verification result value reflecting the new data file to the computer device 100, and in step S330, the computer device 100 uses the verification result value reflecting the new data file to create the final result file.

이와 같이 함으로서, 본 발명은, 임베디드 기기(200)가 파일 시스템을 가지고 있지 않을 뿐 아니라 적은 용량의 메모리만을 포함함으로 인해 검증 결과값을 저장 후 추출하는 것이 불가능한, 문제점을 해결할 수 있다. In this way, the present invention can solve the problem that it is impossible to store and then extract the verification result value because the embedded device 200 does not have a file system and includes only a small amount of memory.

도 8은 본 발명의 일 실시 예에 따라 데이터 파일을 임베디드 기기측으로 전송하는 과정을 도식화하여 설명하기 위한 도면이다. 특히, 도 8의 (a)는 일반적인 운영체제 환경에서 동작하는 장치(예컨대, 컴퓨터 장치)측에서 이루어지는 처리 과정의 예를 도시하고, 도 8의 (b)는 실시간 운영체제 환경에서 동작하는 장치(예컨대, 임베디드 기기)측에서 이루어지는 처리 과정의 예를 도시한다. 도 8의 (a) 및 (b)를 참조하여 신규 CAVP 파일을 임베디드 기기측으로 전송하는 처리 과정의 예를 설명하면 다음과 같다. 먼저, 신규 CAVP 파일이 생성되어(S405) 상기 컴퓨터 장치로 파일이 입력되면(S410), 상기 컴퓨터 장치는 그 파일에 대하여 시리얼 프로토콜 변환을 수행한(S415) 후 시리얼 프로토콜(예컨대, Xmodem, Ymodem, Zmodem 등)을 이용하여 임베디드 기기 측으로 전송한다(S420). 그러면, 상기 임베디드 기기는 상기 데이터 스트림을 수신한(S425) 후 시뮬레이터 API를 통해 데이터를 입력받고(S430), CAVP 시뮬레이터에서 테스트 결과를 추출하여(S435) 그 결과를 전송하면(S440), 시리얼 프로토콜로 변환(S445)하여 상기 컴퓨터 장치 측으로 전송한다(S450). 그러면, 상기 컴퓨터 장치는 상기 데이터 스트림을 수신 및 변환(S455)하여 CMVP 결과 파일을 생성하고(S460), 그 결과값을 확인한다(S465).8 is a diagram for schematically explaining a process of transmitting a data file to an embedded device according to an embodiment of the present invention. In particular, FIG. 8(a) shows an example of a processing process performed on the side of a device (eg, a computer device) operating in a general operating system environment, and FIG. 8(b) is a device operating in a real-time operating system environment (eg, a real-time operating system). An example of the processing performed on the embedded device side is shown. An example of a process for transmitting a new CAVP file to the embedded device will be described with reference to FIGS. 8A and 8B . First, when a new CAVP file is created (S405) and the file is input to the computer device (S410), the computer device performs serial protocol conversion on the file (S415) and then serial protocol (eg, Xmodem, Ymodem, Zmodem, etc.) to transmit to the embedded device side (S420). Then, after receiving the data stream (S425), the embedded device receives data through the simulator API (S430), extracts the test result from the CAVP simulator (S435) and transmits the result (S440), serial protocol converted to (S445) and transmitted to the computer device (S450). Then, the computer device receives and converts the data stream (S455) to generate a CMVP result file (S460), and checks the result value (S465).

도 9는 본 발명의 일 실시 예에 따라 암호 알고리즘 구현 적합성 검증을 수행하는 과정을 도식화하여 설명하기 위한 도면이다. 특히, 도 9의 (a)는 일반적인 운영체제 환경에서 동작하는 장치(예컨대, 컴퓨터 장치)측에서 이루어지는 처리 과정의 예를 도시하고, 도 9의 (b)는 실시간 운영체제 환경에서 동작하는 장치(예컨대, 임베디드 기기)측에서 이루어지는 처리 과정의 예를 도시한다. 도 9의 (a) 및 (b)를 참조하여 암호 알고리즘 구현 적합성 검증을 수행하는 과정의 예를 설명하면 다음과 같다. 먼저, 신규 CAVP 파일이 생성되어(S505) 상기 컴퓨터 장치로 파일이 입력되면(S510), 상기 컴퓨터 장치는 그 파일에 대하여 시리얼 프로토콜 변환을 수행한(S515) 후 시리얼 프로토콜(예컨대, Xmodem, Ymodem, Zmodem 등)을 이용하여 임베디드 기기 측으로 전송한다(S520). 그러면, 상기 임베디드 기기는 상기 데이터 스트림을 수신한(S525) 후 시뮬레이터 API를 통해 데이터를 입력받고(S530), CAVP 시뮬레이터에서 테스트 결과를 추출한다(S435). 그리고 그 결과를 출력하되, 컴퓨터 장치의 터미널을 통해 상기 테스트 결과를 출력한다(S540). 그러면, 컴퓨터 장치는 표시부에 표시된 상기 테스트 결과에 의해 결과값을 확인하고(S545), 상기 화면을 스크랩하여(S550) 로(Raw) 데이터 파일을 생성(S555)하고, 파라미터 파싱(S560)을 거쳐 SAM 파일과의 비교(S565)를 통해 결과 파일을 생성한다(S570). 이 때, 상기 단계 S565에서는, 상기 로(Raw) 데이터 파일과 SAM 파일을 라인별로 비교하고, 파라미터 값 및 결과값을 입력한다. 9 is a diagram for schematically explaining a process of performing verification of implementation suitability of an encryption algorithm according to an embodiment of the present invention. In particular, FIG. 9(a) shows an example of a processing process performed on the side of a device (eg, a computer device) operating in a general operating system environment, and FIG. 9(b) is a device operating in a real-time operating system environment (eg, a real-time operating system). An example of the processing performed on the embedded device side is shown. An example of a process of verifying the implementation suitability of an encryption algorithm will be described with reference to FIGS. 9A and 9B . First, when a new CAVP file is created (S505) and a file is input to the computer device (S510), the computer device performs serial protocol conversion on the file (S515) and then serial protocol (eg, Xmodem, Ymodem, Zmodem, etc.) to transmit to the embedded device side (S520). Then, the embedded device receives the data stream (S525), receives data through the simulator API (S530), and extracts a test result from the CAVP simulator (S435). Then, the result is outputted, but the test result is output through the terminal of the computer device (S540). Then, the computer device confirms the result value by the test result displayed on the display unit (S545), scrapes the screen (S550), generates a raw data file (S555), and parses the parameter (S560) A result file is generated through comparison with the SAM file (S565) (S570). At this time, in step S565, the raw data file and the SAM file are compared line by line, and parameter values and result values are input.

상술한 예시적인 시스템에서, 방법들은 일련의 단계 또는 블록으로써 순서도를 기초로 설명되고 있지만, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. In the exemplary system described above, the methods are described on the basis of a flowchart as a series of steps or blocks, however, the present invention is not limited to the order of steps, and some steps may occur in a different order or concurrent with other steps as described above. can

또한, 당업자라면 순서도에 나타낸 단계들이 배타적이지 않고, 다른 단계가 포함되거나 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.In addition, those skilled in the art will understand that the steps shown in the flowchart are not exhaustive and that other steps may be included or that one or more steps in the flowchart may be deleted without affecting the scope of the present invention.

Claims (11)

암호 알고리즘이 구현된 소스 코드를 입력받는 입력부;
실시간 운영체제 환경에서 동작하는 임베디드 기기와의 통신 인터페이스를 제공하는 통신 인터페이스부; 및
기 설정된 제어 프로그램에 의거하여 상기 입력부 및 통신 인터페이스부를 제어하는 제어부를 포함하고,
상기 제어부는
상기 입력된 소스 코드에 의거하여 해당 암호 알고리즘에 대한 사전 검증을 실시하되, 상기 암호 알고리즘 구현 적합성 검증을 위해 일반 운영체제에서 동작하는 컴퓨터 장치용 검증 프로그램을 생성하여 상기 사전 검증을 실시하고,
상기 사전 검증 결과 오류가 없는 것으로 결정된 암호 알고리즘을 컴파일하되, 상기 컴퓨터 장치용 검증 프로그램 및 실시간 운영체제를 구현하기 위한 소스 코드와 함께 상기 임베디드 기기용 컴파일러로 컴파일하여 펌웨어를 생성하여 상기 통신 인터페이스부를 통해 상기 임베디드 기기로 업로드하는 것을 특징으로 하는 암호 알고리즘 구현 적합성 검증 장치.
an input unit for receiving a source code in which an encryption algorithm is implemented;
a communication interface unit providing a communication interface with an embedded device operating in a real-time operating system environment; and
A control unit for controlling the input unit and the communication interface unit based on a preset control program,
the control unit
Conducting prior verification of the encryption algorithm based on the input source code, generating a verification program for a computer device operating in a general operating system to verify the implementation suitability of the encryption algorithm and performing the prior verification,
Compiling the encryption algorithm determined to have no error as a result of the pre-verification, but compiling with the compiler for embedded devices together with the source code for implementing the verification program for the computer device and the real-time operating system to generate firmware, Encryption algorithm implementation conformity verification device, characterized in that it is uploaded to an embedded device.
삭제delete 제1항에 있어서, 상기 장치는
데이터를 표시하는 표시부를 더 포함하고,
상기 제어부는
상기 통신 인터페이스부를 통해 상기 임베디드 기기로부터 상기 펌웨어에 포함된 암호 알고리즘 구현 적합성 검증 결과 값을 전달받아 상기 표시부에 표시한 후,
상기 표시부의 내용을 스크랩하여 최종 결과파일을 생성하고 상기 최종 결과파일의 오류여부에 따라 상기 펌웨어에 포함된 암호 알고리즘의 정상 동작 여부를 결정하는 것을 특징으로 하는 암호 알고리즘 구현 적합성 검증 장치.
The apparatus of claim 1 , wherein the device
Further comprising a display unit for displaying data,
the control unit
After receiving the encryption algorithm implementation suitability verification result value included in the firmware from the embedded device through the communication interface unit and displaying it on the display unit,
Encryption algorithm implementation suitability verification apparatus, characterized in that the final result file is generated by scraping the contents of the display unit, and whether the encryption algorithm included in the firmware operates normally according to whether the final result file is in error.
제1항에 있어서, 상기 제어부는
파일을 시리얼 프로토콜로 변환하는 프로토콜 변환 모듈을 더 포함하고,
상기 프로토콜 변환 모듈은
상기 입력부를 통해 상기 암호 알고리즘 구현 적합성을 검증하기 위한 신규 데이터 파일이 입력되면, 상기 신규 데이터 파일을 시리얼 프로토콜로 변환하여 상기 통신인터페이스부를 통해 상기 임베디드 기기로 전달하는 것을 특징으로 하는 암호 알고리즘 구현 적합성 검증 장치.
According to claim 1, wherein the control unit
Further comprising a protocol conversion module for converting the file to a serial protocol,
The protocol conversion module is
When a new data file for verifying the implementation suitability of the encryption algorithm is input through the input unit, the new data file is converted into a serial protocol and transmitted to the embedded device through the communication interface unit. Device.
암호 알고리즘이 구현된 소스코드의 입력에 응답하여 상기 암호 알고리즘 구현 적합성 검증을 위한 검증 프로그램을 생성하되, 일반 운영체제 환경에서 동작하는 컴퓨터 장치용 검증 프로그램을 생성하는 검증 프로그램 생성 단계;
상기 컴퓨터 장치용 검증 프로그램을 이용하여 상기 암호 알고리즘 구현 적합성에 대한 사전 검증을 실시하는 사전 검증 단계;
상기 사전 검증 결과 오류가 없는 것으로 결정된 암호 알고리즘에 대하여 대응된 펌웨어를 생성하고, 그 펌웨어를 실시간 운영체제 환경에서 동작하는 임베디드 기기로 업로드하는 업로드 단계; 및
상기 업로드된 펌웨어를 이용하여 상기 임베디드 기기에서 암호 알고리즘 구현 적합성 검증을 실시하는 임베디드 검증 단계를 포함하되,
상기 사전 검증 단계는
상기 암호 알고리즘의 정상동작 여부를 확인하기 위해 미리 생성된 테스트 데이터를 파싱하여 상기 암호 알고리즘의 파라미터를 검출하는 제1 파싱단계;
상기 검출된 파라미터를 상기 암호 알고리즘에 반영하여 제1 결과값을 도출하는 제1 결과값 도출단계; 및
상기 제1 결과값과 상기 테스트 데이터를 비교하여 상기 제1 결과값의 오류 여부를 결정하고 그 결과에 따라 상기 암호 알고리즘의 정상동작 여부를 확인하는 제1 확인단계를 포함하는 것을 특징으로 하는 실시간 운영체제 환경에서의 암호 알고리즘 구현 적합성 검증 방법.
A verification program generating step of generating a verification program for verifying the implementation suitability of the encryption algorithm in response to an input of the source code in which the encryption algorithm is implemented, and generating a verification program for a computer device operating in a general operating system environment;
a pre-verification step of performing pre-verification on the suitability of implementation of the encryption algorithm by using the verification program for the computer device;
an uploading step of generating firmware corresponding to the encryption algorithm determined to have no error as a result of the pre-verification and uploading the firmware to an embedded device operating in a real-time operating system environment; and
An embedded verification step of verifying the implementation suitability of the encryption algorithm in the embedded device using the uploaded firmware,
The preliminary verification step is
a first parsing step of parsing pre-generated test data to check whether the encryption algorithm operates normally to detect parameters of the encryption algorithm;
a first result value deriving step of deriving a first result value by reflecting the detected parameter in the encryption algorithm; and
and a first confirmation step of determining whether the first result value is in error by comparing the first result value with the test data, and confirming whether the encryption algorithm operates normally according to the result. A method of verifying the suitability of cryptographic algorithm implementation in the environment.
삭제delete 제5항에 있어서, 상기 업로드 단계는
상기 오류가 없는 것으로 결정된 암호 알고리즘을 컴파일하되, 상기 컴퓨터 장치용 검증 프로그램 및 실시간 운영체제를 구현하기 위한 소스코드와 함께 상기 임베디드 기기용 컴파일러로 컴파일하여 펌웨어를 생성하는 펌웨어 생성단계를 포함하는 것을 특징으로 하는 실시간 운영체제 환경에서의 암호 알고리즘 구현 적합성 검증 방법.
The method of claim 5, wherein the uploading step
Compiling the encryption algorithm determined to have no error, and compiling with the compiler for embedded devices together with the source code for implementing the verification program for the computer device and the real-time operating system to generate firmware A method of verifying the suitability of implementation of cryptographic algorithms in real-time operating system
제7항에 있어서, 상기 임베디드 검증 단계는
상기 펌웨어에 포함된 암호 알고리즘의 정상동작 여부를 확인하기 위해 미리 생성된 테스트 데이터를 파싱하여 상기 암호 알고리즘의 파라미터를 검출하는 제2 파싱단계;
상기 검출된 파라미터를 상기 암호 알고리즘에 반영하여 제2 결과값을 도출하는 제2 결과값 도출단계; 및
상기 제2 결과값과 상기 테스트 데이터를 비교하여 상기 제2 결과값의 오류 여부를 결정하고 그 결과에 따라 상기 암호 알고리즘의 정상동작 여부를 확인하는 제2 확인단계를 포함하는 것을 특징으로 하는 실시간 운영체제 환경에서의 암호 알고리즘 구현 적합성 검증 방법.
8. The method of claim 7, wherein the embedded verification step
a second parsing step of parsing pre-generated test data to check whether the encryption algorithm included in the firmware operates normally to detect parameters of the encryption algorithm;
a second result value deriving step of deriving a second result value by reflecting the detected parameter in the encryption algorithm; and
and a second checking step of comparing the second result value with the test data to determine whether the second result value is in error, and confirming whether the encryption algorithm operates normally according to the result. A method of verifying the suitability of cryptographic algorithm implementation in the environment.
제8항에 있어서, 상기 제2 확인 단계는
상기 제2 결과값을 상기 컴퓨터 장치의 화면에 출력하는 출력 단계; 및
상기 컴퓨터 장치의 화면에 출력된 상기 제2 결과값을 스크랩하여 최종결과 파일을 생성하는 최종결과파일 생성단계를 더 포함하고,
상기 최종결과파일의 오류여부에 따라 상기 펌웨어에 포함된 암호 알고리즘의 정상 동작 여부를 확인하는 것을 특징으로 하는 실시간 운영체제 환경에서의 암호 알고리즘 구현 적합성 검증 방법.
The method of claim 8, wherein the second confirmation step
an output step of outputting the second result value on a screen of the computer device; and
Further comprising a final result file generation step of generating a final result file by scraping the second result value output on the screen of the computer device,
An encryption algorithm implementation suitability verification method in a real-time operating system environment, characterized in that it is checked whether an encryption algorithm included in the firmware operates normally according to whether the final result file is in error.
제5항에 있어서, 상기 방법은
상기 사전 검증 단계 또는 상기 임베디드 검증 단계의 검증 결과,
상기 암호 알고리즘에 오류가 있는 것으로 확인된 경우 상기 암호 알고리즘이 구현된 소스코드를 수정하는 소스코드 수정단계를 더 포함하는 것을 특징으로 하는 실시간 운영체제 환경에서의 암호 알고리즘 구현 적합성 검증 방법.
6. The method of claim 5, wherein the method
The verification result of the pre-verification step or the embedded verification step;
The method for verifying implementation suitability of an encryption algorithm in a real-time operating system environment, further comprising a source code modification step of correcting the source code in which the encryption algorithm is implemented when it is confirmed that there is an error in the encryption algorithm.
제5항에 있어서, 상기 방법은
상기 암호 알고리즘 구현 적합성을 검증하기 위한 신규 데이터 파일의 입력에 응답하여, 상기 컴퓨터 장치가 신규 데이터 파일을 시리얼 프로토콜로 변환한 후 상기 임베디드 기기로 전송하는 신규 데이터 전송단계; 및
상기 컴퓨터 장치가 상기 임베디드 기기로부터 상기 신규 데이터 파일이 반영된 검증 결과값을 전달받는 수신단계를 더 포함하는 것을 특징으로 하는 실시간 운영체제 환경에서의 암호 알고리즘 구현 적합성 검증 방법.
6. The method of claim 5, wherein the method
a new data transmission step in which the computer device converts the new data file into a serial protocol and then transmits it to the embedded device in response to the input of the new data file for verifying the implementation suitability of the encryption algorithm; and
The method for verifying implementation suitability of an encryption algorithm in a real-time operating system environment, further comprising a receiving step of receiving, by the computer device, a verification result value reflecting the new data file from the embedded device.
KR1020190129986A 2019-10-18 2019-10-18 Apparatus and method for verifying suitability of code algorithm implementation in real time operating system KR102269335B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190129986A KR102269335B1 (en) 2019-10-18 2019-10-18 Apparatus and method for verifying suitability of code algorithm implementation in real time operating system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190129986A KR102269335B1 (en) 2019-10-18 2019-10-18 Apparatus and method for verifying suitability of code algorithm implementation in real time operating system

Publications (2)

Publication Number Publication Date
KR20210046363A KR20210046363A (en) 2021-04-28
KR102269335B1 true KR102269335B1 (en) 2021-06-24

Family

ID=75721092

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190129986A KR102269335B1 (en) 2019-10-18 2019-10-18 Apparatus and method for verifying suitability of code algorithm implementation in real time operating system

Country Status (1)

Country Link
KR (1) KR102269335B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007041804A (en) 2005-08-02 2007-02-15 Sharp Corp Program generation device, program verification device, and verification program
WO2008085579A2 (en) 2006-10-25 2008-07-17 Spyrus, Inc. Method and system for deploying advanced cryptographic algorithms
JP2013149134A (en) 2012-01-20 2013-08-01 Nec Corp Static analysis device of source code, system, method, and program therefor
JP2018018498A (en) 2017-03-08 2018-02-01 ネットエージェント株式会社 Software generation system, information processing device, and program
KR101972825B1 (en) * 2019-01-18 2019-04-30 한국과학기술원 Method and apparatus for automatically analyzing vulnerable point of embedded appliance by using hybrid analysis technology, and computer program for executing the method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090060774A (en) 2007-12-10 2009-06-15 한국전자통신연구원 Apparatus and method for mirroring firmware and data of the embedded system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007041804A (en) 2005-08-02 2007-02-15 Sharp Corp Program generation device, program verification device, and verification program
WO2008085579A2 (en) 2006-10-25 2008-07-17 Spyrus, Inc. Method and system for deploying advanced cryptographic algorithms
JP2013149134A (en) 2012-01-20 2013-08-01 Nec Corp Static analysis device of source code, system, method, and program therefor
JP2018018498A (en) 2017-03-08 2018-02-01 ネットエージェント株式会社 Software generation system, information processing device, and program
KR101972825B1 (en) * 2019-01-18 2019-04-30 한국과학기술원 Method and apparatus for automatically analyzing vulnerable point of embedded appliance by using hybrid analysis technology, and computer program for executing the method

Also Published As

Publication number Publication date
KR20210046363A (en) 2021-04-28

Similar Documents

Publication Publication Date Title
CA2816814C (en) Repairing corrupt software
CN105159707A (en) Secure financial terminal firmware programming method and financial terminal
CN104598408B (en) A kind of disposable programmable read only memory data burning method
CN109388569B (en) Method for remotely detecting environmental anomaly of client, test server and storage medium
US20170039053A1 (en) Field update of boot loader using regular device firmware update procedure
CN109471768B (en) Service problem monitoring method and device and electronic equipment
JP5725529B2 (en) Web vulnerability repair system, web vulnerability repair method, and program
KR100872175B1 (en) Secure booting apparatus and method of mobile platform using TPM
CN109144584A (en) A kind of programmable logic device and its starting method, system and storage medium
CN104317690A (en) Memory Demand Scrub testing method based on ITP (integration test platform) tool
CN105141429A (en) User verifying method, user verifying device and server
CN111045713A (en) Method, system and device for upgrading computer system
US20100312541A1 (en) Program test device and program
CN107450953B (en) Method and device for updating BIOS
US7418542B2 (en) Rewritable, nonvolatile memory, electronic device, method of rewriting rewritable, nonvolatile memory, and storage medium having stored thereon rewrite program
CN114327518A (en) Firmware storage method, firmware reading device, chip processor and storage medium
KR102269335B1 (en) Apparatus and method for verifying suitability of code algorithm implementation in real time operating system
US8732843B2 (en) Software validity period changing apparatus, method, and installation package
CN104036193A (en) Local cross-domain vulnerability detection method and device for application program
CN106802810B (en) Firmware upgrading method, device and system
CN112445670B (en) eMMC test method and device
US20080115108A1 (en) Microcomputer having security function for memory access and debugging method of the same
KR101320680B1 (en) Method and apparatus for integrity check of software
CN114138587B (en) Method, device and equipment for verifying reliability of server power firmware upgrade
CN107908418B (en) Method for upgrading logic program of fiber channel node card and fiber channel bus equipment

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant