KR101077972B1 - Apparatus and method for parallel-processing of AES-CCM using general purpose multi-core processor - Google Patents

Apparatus and method for parallel-processing of AES-CCM using general purpose multi-core processor Download PDF

Info

Publication number
KR101077972B1
KR101077972B1 KR1020090069948A KR20090069948A KR101077972B1 KR 101077972 B1 KR101077972 B1 KR 101077972B1 KR 1020090069948 A KR1020090069948 A KR 1020090069948A KR 20090069948 A KR20090069948 A KR 20090069948A KR 101077972 B1 KR101077972 B1 KR 101077972B1
Authority
KR
South Korea
Prior art keywords
general
ccm
core
aes
data
Prior art date
Application number
KR1020090069948A
Other languages
Korean (ko)
Other versions
KR20110012285A (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 KR1020090069948A priority Critical patent/KR101077972B1/en
Publication of KR20110012285A publication Critical patent/KR20110012285A/en
Application granted granted Critical
Publication of KR101077972B1 publication Critical patent/KR101077972B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements

Abstract

본 발명은 AES-CCM 병렬처리 기술에 관한 것으로서, 본 발명에 따른 AES-CCM 병렬처리 장치는, AES-CCM의 처리 대상 태스크(task)에 대해 범용 멀티코어 프로세서의 코어를 할당하는 코어 할당부; 및 상기 할당된 코어의 개수에 대응하여 상기 처리 대상 태스크에 대한 데이터 병렬화(data parallelism)를 수행하는 데이터 병렬화부를 포함하고, 상기 범용 멀티코어 프로세서는, 상기 데이터 병렬화된 상기 처리 대상 태스크를 상기 할당된 코어를 통해 병렬적으로 수행하는 것을 특징으로 하여, 데이터 기밀성 및 무결성을 동시에 보장함은 물론, 처리 속도 및 자원 효율성을 개선하고 프로세서 호환성을 제공한다.The present invention relates to an AES-CCM parallel processing technology. The AES-CCM parallel processing apparatus according to the present invention includes: a core allocator configured to allocate a core of a general-purpose multicore processor to a task to be processed by the AES-CCM; And a data parallelization unit configured to perform data parallelism with respect to the processing target task in response to the number of the assigned cores, wherein the general-purpose multicore processor is configured to assign the data parallelized processing target task to the allocated parallel processing unit. Performing in parallel through the cores ensures data confidentiality and integrity simultaneously, while improving processing speed and resource efficiency and providing processor compatibility.

Description

범용 멀티코어 프로세서를 이용한 AES­CCM 병렬처리 장치 및 방법{Apparatus and method for parallel-processing of AES-CCM using general purpose multi-core processor}Apparatus and method for parallel-processing of AES-CCM using general purpose multi-core processor}

본 발명은 AES-CCM 병렬처리 기술에 관한 것으로서, 더욱 상세하게는, 범용 멀티코어 프로세서를 이용하여 AES-CCM를 병렬처리함으로써, 데이터 기밀성 및 무결성을 동시에 보장함은 물론, 처리 속도 및 자원 효율성을 개선하고 프로세서 호환성을 지니는 AES-CCM 병렬처리 장치 및 방법에 관한 것이다.The present invention relates to an AES-CCM parallel processing technology, and more particularly, by parallel processing the AES-CCM using a general-purpose multicore processor, thereby ensuring data confidentiality and integrity simultaneously, as well as processing speed and resource efficiency. AES-CCM parallel processing apparatus and method for improving and having processor compatibility.

디지털 정보사회가 고도화되고 전자상거래가 활성화됨에 따라, 암호·인증 기술은 현재, 인터넷을 기반으로 한 사회·경제적 활동의 안전성과 신뢰성, 그리고 사용자 프라이버시 보호 등을 위한 핵심 기술로서 인식되고 있다. 또한, 최근 MPEG 비디오 스트림 등 대용량 데이터 이용이 증가함에 따라, 이러한 암호·인증 기술을 이용한 대용량 데이터 정보 보호 문제가 이슈화되고 있다.As the digital information society is advanced and electronic commerce is activated, cryptography and authentication technologies are now recognized as key technologies for the safety and reliability of social and economic activities based on the Internet, and the protection of user privacy. In addition, with the recent increase in the use of large amounts of data such as MPEG video streams, a problem of protecting large amounts of data information using such encryption / authentication techniques has been raised.

대용량 데이터 정보 보호를 위해서는, 데이터의 기밀성(confidentiality)을 보장하는 기법은 물론, 그 외에 HMAC(Keyed-Hash Message Authentication Code) 등과 같은 메시지 인증 기법을 추가적으로 적용할 필요가 있다. 즉, 메시지 인증을 할 수 있는 암호화 알고리즘을 적용하여 대용량 데이터의 무결성(Integrity)을 동시에 보장해야 한다.In order to protect large data information, it is necessary to additionally apply a message authentication method such as a keyed-hash message authentication code (HMAC) as well as a method of ensuring data confidentiality. In other words, the encryption algorithm that can authenticate the message should be applied to ensure the integrity of large data at the same time.

이와 같이, 데이터의 기밀성 및 무결성을 동시에 보장하기 위한 방법으로는, 블록 암호화 운용모드(Block mode of operation)를 이용하는 방법이 있다.As such, there is a method using a block encryption operation mode as a method for simultaneously ensuring the confidentiality and integrity of data.

미국 국립표준기술원(NIST: National Institute of Standards and Technology)이 차세대 국제 표준 암호로서 채택한 AES(Advanced Encryption Standard)는 데이터의 무결성과 기밀성을 보장하기 위해 5가지 운용모드를 표준으로 규정하고 있다. 즉, ECB(Electronic Code Book), CBC(Cipher Block Chaining), CFB(Cipher FeedBack), OFD(Output FeedBack) 및 CTR(Counter)을 규정하고 있다.Adopted by the National Institute of Standards and Technology (NIST) as the next generation of international standard cryptography, the Advanced Encryption Standard (AES) defines five operating modes as standards to ensure data integrity and confidentiality. That is, ECB (Electronic Code Book), CBC (Cipher Block Chaining), CFB (Cipher FeedBack), OFD (Output FeedBack) and CTR (Counter) are prescribed.

상기 다양한 표준 운영모드들 중 CTR 모드와 CBC-MAC 모드를 조합한 AES-CCM(Counter with CBC-MAC)은, 상기 조합된 두 모드의 기능이 결합되어 하나의 솔루션에서 암호화 및 메시지 무결성을 제공한다. 즉, 기밀성 기능과 키 관리(Key Management) 기능, 메시지 무결성(Message Integrity) 기능을 동시에 수행할 수 있다. 이러한 AES-CCM은, 무선랜(Wireless LAN) 보안 표준인 IEEE 802.11i와 WPA에서 공통으로 채택하고 있으며, WPA에서는 선택사항으로 규정되어 있고, WPA2에서는 강제 사항으로 규정되어 있다.AES-CCM (Counter with CBC-MAC), which combines CTR mode and CBC-MAC mode among the various standard operating modes, combines the functions of the two combined modes to provide encryption and message integrity in one solution. . That is, the confidentiality function, the key management function, and the message integrity function can be simultaneously performed. The AES-CCM is commonly adopted by IEEE 802.11i, which is a wireless LAN security standard, and WPA, and is optional in WPA and mandatory in WPA2.

한편, 상기 AES-CCM은, 위에서 언급한 바와 같이 이미 검증된 두 가지 표준 기술을 사용하기 때문에 높은 신뢰성을 나타내는 이점이 있다. 또한, 일반적으로 인증 및 암호화에 다른 키를 사용하는 것과는 달리, 하나의 키만을 사용할 수 있는 장점이 있다. 또한, 암호화 없이 무결성 검증만을 필요로 하는 데이터가 포함된 경 우에도 AES-CCM을 이용하면, 추가적인 암호문 오버헤드 없이 암호화할 수 있어 데이터를 다루기가 용이하다는 장점이 있다. 나아가, AES-CCM은 암호화 함수 하나만을 사용하여 암호화 및 복호화를 모두 수행하기 때문에 비교적 작은 크기의 코드로 구현 할 수 있다는 장점이 있다. 이러한 장점들은, 다른 운용모드들에 비해 AES-CCM의 융통성 있는 적용을 가능하게 한다.On the other hand, the AES-CCM has the advantage of showing a high reliability because it uses the two standard techniques already verified as mentioned above. Also, in general, unlike using a different key for authentication and encryption, there is an advantage that only one key can be used. In addition, AES-CCM can be encrypted without additional ciphertext overhead even when data that requires only integrity verification without encryption has the advantage of easy data handling. Furthermore, AES-CCM has a merit that it can be implemented with a relatively small code because it performs both encryption and decryption using only one encryption function. These advantages enable flexible application of AES-CCM over other modes of operation.

그러나, 기존 기술은, 암호화 및 메시지 무결성을 위해 두 가지 작업을 필요로 하는 AES-CCM을 처리함에 있어 단일 코어를 이용하는 점에서, 암호화 프로세스 및 컴퓨팅 시간이 지연되고 처리 속도가 떨어지는 문제점이 있다.However, the existing technology has a problem in that the encryption process and computing time are delayed and the processing speed is slow in using a single core in processing AES-CCM which requires two operations for encryption and message integrity.

또한, 기존 기술은, AES-CCM 처리 속도를 고려하여 전용 하드웨어 칩을 사용하는 점에서, 자원 효율성이 떨어지며 호환성을 저해하는 문제점이 있다.In addition, the existing technology has a problem in that it uses a dedicated hardware chip in consideration of the AES-CCM processing speed, so that resource efficiency is lowered and compatibility is impaired.

따라서, 본 발명이 해결하고자 하는 첫 번째 기술적 과제는, 범용 멀티코어 프로세서를 이용하여 AES-CCM를 병렬처리함으로써, 데이터 기밀성 및 무결성을 동시에 보장함은 물론, 처리 속도 및 자원 효율성을 개선하고 프로세서 호환성을 지니는 AES-CCM 병렬처리 장치를 제공하는 것이다.Accordingly, the first technical problem to be solved by the present invention is to parallelize the AES-CCM using a general-purpose multicore processor, thereby ensuring data confidentiality and integrity simultaneously, as well as improving processing speed and resource efficiency and processor compatibility. To provide an AES-CCM parallel processing unit having a.

본 발명이 해결하고자 하는 두 번째 기술적 과제는, 범용 멀티코어 프로세서를 이용하여 AES-CCM를 병렬처리함으로써, 데이터 기밀성 및 무결성을 동시에 보장함은 물론, 처리 속도 및 자원 효율성을 개선하고 프로세서 호환성을 지니는 AES-CCM 병렬처리 방법을 제공하는 것이다.The second technical problem to be solved by the present invention is to parallelize the AES-CCM using a general-purpose multi-core processor, which ensures data confidentiality and integrity simultaneously, improves processing speed and resource efficiency, and has processor compatibility. To provide AES-CCM parallel processing method.

상기와 같은 첫 번째 기술적 과제를 해결하기 위하여 본 발명은, AES-CCM의 처리 대상 태스크(task)에 대해 범용 멀티코어 프로세서의 코어를 할당하는 코어 할당부; 및 상기 할당된 코어의 개수에 대응하여 상기 처리 대상 태스크에 대한 데이터 병렬화(data parallelism)를 수행하는 데이터 병렬화부를 포함하고, 상기 범용 멀티코어 프로세서는, 상기 데이터 병렬화된 상기 처리 대상 태스크를 상기 할당된 코어를 통해 병렬적으로 수행하는 범용 멀티코어 프로세스를 이용한 AES-CCM 병렬처리 장치를 제공한다.In order to solve the first technical problem as described above, the present invention, the core allocation unit for allocating the core of the general-purpose multi-core processor for the task (task) of the AES-CCM; And a data parallelization unit configured to perform data parallelism with respect to the processing target task in response to the number of the assigned cores, wherein the general-purpose multicore processor is configured to assign the data parallelized processing target task to the allocated parallel processing unit. An AES-CCM parallel processing apparatus using a general-purpose multicore process that executes in parallel through a core is provided.

일 실시예에 있어서, 상기 코어 할당부는, 상기 처리 대상 태스크의 데이터들 간에 종속성이 없는 경우, 상기 처리 대상 태스크에 대해 상기 범용 멀티코어 프로세스의 코어들 중 2 이상을 할당한다.The core allocator may allocate two or more of the cores of the general-purpose multicore process to the processing target task when there is no dependency between the data of the processing target task.

일 실시예에 있어서, 상기 코어 할당부는, 상기 처리 대상 태스크의 데이터들 간에 종속성이 있는 경우, 상기 처리 대상 태스크에 대해 상기 범용 멀티코어 프로세스의 코어들 중 하나의 코어를 할당한다.The core allocator allocates one core among cores of the general purpose multicore process to the processing target task when there is a dependency between data of the processing target task.

일 실시예에 있어서, 상기 코어 할당부는, 상기 범용 멀티코어 프로세스의 코어들 중에서, 상기 처리 대상 태스크가 CTR(Counter)인 경우 2 이상의 코어를 할당하고, 상기 처리 대상 태스크가 CBC-MAC(Cipher Block Chaining-Message Authentication Code)인 경우 하나의 코어를 할당한다.The core allocator may allocate two or more cores when the task to be processed is a counter (CTR) among the cores of the general-purpose multicore process, and the task to be processed is a CBC-MAC (Cipher Block). In case of Chaining-Message Authentication Code), one core is allocated.

일 실시예에 있어서, 상기 코어 할당부는, 상기 처리 대상 태스크가 상기 CTR인 경우, 상기 범용 멀티코어 프로세스의 코어 전체를 할당한다.The core allocator allocates an entire core of the general purpose multicore process when the task to be processed is the CTR.

일 실시예에 있어서, 상기 범용 멀티코어 프로세서는, 상기 CTR 및 상기 CBC-MAC에 대한 처리 수행시, 상기 CTR 또는 상기 CBC-MAC에 대한 처리를 먼저 수행한다.In one embodiment, the general-purpose multicore processor, when performing the processing for the CTR and the CBC-MAC, performs the processing for the CTR or the CBC-MAC first.

일 실시예에 있어서, 상기 데이터 병렬화부는, 상기 처리 대상 태스크의 데이터들 간에 종속성이 있는 경우, 상기 데이터 병렬화를 수행하지 않는다.In one embodiment, the data parallelization unit does not perform the data parallelization when there is a dependency between data of the processing target task.

일 실시예에 있어서, 상기 데이터 병렬화부는, 상기 처리 대상 태스크가 CBC-MAC인 경우, 상기 데이터 병렬화를 수행하지 않는다.The data parallelization unit does not perform the data parallelization when the task to be processed is the CBC-MAC.

일 실시예에 있어서, 상기 AES-CCM 병렬처리 장치는, 상기 AES-CCM의 처리 대상 태스크들 중, CTR 및 CBC-MAC에 대한 태스크 병렬화(task parallelism)를 수행하는 태스크 병렬화부를 더 포함한다.The AES-CCM parallel processing apparatus may further include a task parallelization unit configured to perform task parallelism on CTR and CBC-MAC among tasks to be processed by the AES-CCM.

일 실시예에 있어서, 상기 코어 할당부는, 상기 범용 멀티코어 프로세스의 코어들 중에서, 상기 CBC-MAC에 대해서는 하나의 코어를 할당하고, 상기 CTR에 대해서는 1 또는 2 이상의 코어를 할당한다.In one embodiment, the core allocator allocates one core for the CBC-MAC and one or more cores for the CTR among the cores of the general-purpose multicore process.

일 실시예에 있어서, 상기 데이터 병렬화부는, 상기 CTR에 대해서만 상기 데이터 병렬화를 수행한다.In one embodiment, the data parallelization unit performs the data parallelization only for the CTR.

일 실시예에 있어서, 상기 범용 멀티코어 프로세서는, 상기 CTR 및 상기 CBC-MAC에 대한 처리를 병렬적으로 수행한다.In one embodiment, the general purpose multicore processor performs the processing for the CTR and the CBC-MAC in parallel.

상기와 같은 두 번째 기술적 과제를 해결하기 위하여 본 발명은, 범용 멀티코어 프로세서를 사용하는 컴퓨터 시스템에서, AES-CCM의 처리 대상 태스크(task)에 대해 상기 범용 멀티코어 프로세서의 코어를 할당하는 코어 할당 단계; 상기 컴퓨터 시스템에서, 상기 할당된 코어의 개수에 대응하여 상기 처리 대상 태스크에 대한 데이터 병렬화(data parallelism)를 수행하는 데이터 병렬화 단계; 및 상기 범용 멀티코어 프로세서에서, 상기 데이터 병렬화된 상기 처리 대상 태스크를 상기 할당된 코어를 통해 병렬적으로 처리하는 처리 단계를 포함하는 범용 멀티코어 프로세스를 이용한 AES-CCM 병렬처리 방법을 제공한다.In order to solve the second technical problem as described above, the present invention, in a computer system using a general-purpose multi-core processor, the core allocation for allocating the core of the general-purpose multi-core processor to the processing target task (AES-CCM) step; In the computer system, performing data parallelism on the task to be processed in correspondence to the number of allocated cores; And a processing step of processing the data-parallelized task to be processed in parallel through the allocated cores in the general-purpose multicore processor.

본 발명의 다른 일 태양에 있어서, 본 발명에 따른 AES-CCM 병렬처리 방법은, 범용 멀티코어 프로세서를 사용하는 컴퓨터 시스템에서, AES-CCM의 처리 대상 태스크들 중, CTR 및 CBC-MAC에 대한 태스크 병렬화(task parallelism)를 수행하는 태스크 병렬화 단계; 상기 컴퓨터 시스템에서, 상기 범용 멀티코어 프로세스의 코어들 중에서, 상기 CBC-MAC에 대해서는 하나의 코어를 할당하고, 상기 CTR에 대해 서는 1 또는 2 이상의 코어를 할당하는 코어 할당 단계; 상기 컴퓨터 시스템에서, 상기 할당된 코어의 개수에 대응하여 상기 CTR에 대한 데이터 병렬화(data parallelism)를 수행하는 데이터 병렬화 단계; 및 상기 범용 멀티코어 프로세서에서, 상기 데이터 병렬화된 CTR 및 상기 CBC-MAC를 상기 할당된 코어를 통해 병렬적으로 처리하는 처리 단계를 포함한다.In another aspect of the present invention, the AES-CCM parallel processing method according to the present invention is a task for CTR and CBC-MAC among the tasks to be processed in the AES-CCM in a computer system using a general-purpose multicore processor. Task parallelism performing task parallelism; In the computer system, a core allocation step of allocating one core for the CBC-MAC and one or more cores for the CTR among the cores of the general-purpose multicore process; In the computer system, performing data parallelism on the CTR in correspondence with the allocated number of cores; And in the general purpose multicore processor, processing the data parallelized CTR and the CBC-MAC in parallel through the assigned core.

일 실시예에 있어서, 본 발명은, 상기 방법을 컴퓨터로 실행하기 위한 프로그램이 기록된 컴퓨터 판독가능 기록매체로 구현될 수 있다.In one embodiment, the invention may be embodied in a computer readable recording medium having recorded thereon a program for executing the method on a computer.

일 실시예에 있어서, 상기 프로그램은, 병렬적으로 작동하는 소프트웨어의 작성에 사용되는 표준 API(Application Programming Interface)인 Pthread(POSIX Threads)를 통해 프로그래밍된다.In one embodiment, the program is programmed through POSIX Threads (Pthreads), which is a standard application programming interface (API) used for writing software that runs in parallel.

본 발명은, AES-CCM를 병렬처리함으로써, 데이터 기밀성 및 무결성을 동시에 보장함은 물론, 처리 속도 및 자원 효율성을 개선하는 이점을 제공한다.The present invention provides the advantage of improving processing speed and resource efficiency as well as ensuring data confidentiality and integrity simultaneously by parallelizing AES-CCM.

또한, 범용 멀티코어 프로세서를 이용함으로써, 별도의 하드웨어를 필요로 하지 않고 비용 효율적인 솔루션 개발을 가능하게 하는 이점을 제공한다.In addition, using a general-purpose multicore processor provides the advantage of enabling cost-effective solution development without the need for separate hardware.

나아가, Pthread를 사용함으로써, 다양한 CPU에 적용될 수 있는 호환성을 지닌다는 이점을 제공한다.Furthermore, using Pthreads provides the advantage of being compatible with a variety of CPUs.

이하, 본 발명의 기술적 과제의 해결 방안을 명확화하기 위해 첨부도면을 참조하여 본 발명의 바람직한 실시예를 상세하게 설명한다. 다만, 본 발명을 설명함 에 있어서 관련 공지기술에 관한 설명이 오히려 본 발명의 요지를 불명료하게 할 수 있다고 판단되는 경우 그에 관한 설명을 생략하기로 한다. 또한, 후술하는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자 등의 의도 또는 관례 등에 따라 달라질 수 있을 것이다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings in order to clarify a solution of the technical problem of the present invention. However, in the following description of the present invention, if it is determined that the description of the related known technology may obscure the gist of the present invention, the description thereof will be omitted. In addition, terms to be described later are terms defined in consideration of functions in the present invention, which may vary according to intentions or customs of users, operators, and the like. Therefore, the definition should be based on the contents throughout this specification.

도 1에는 본 발명에 따른 범용 멀티코어 프로세스를 이용한 AES-CCM 병렬처리 장치의 일례가 블록도로 도시되어 있다.Figure 1 shows a block diagram of an AES-CCM parallel processing apparatus using a general-purpose multicore process according to the present invention.

도 1에 도시된 바와 같이, 본 발명에 따른 AES-CCM 병렬처리 장치(100)는, 코어 할당부(120), 데이터 병렬화부(130) 및 범용 멀티코어 프로세서(140)를 포함하며, 태스크 병렬화부(110)를 더 포함할 수 있다.As shown in FIG. 1, the AES-CCM parallel processing apparatus 100 according to the present invention includes a core allocation unit 120, a data parallelization unit 130, and a general purpose multicore processor 140, and task parallelization. The unit 110 may further include.

우선, 상기 AES-CCM 병렬처리 장치(100)가 수행하는 AES-CCM 처리 과정을 분석한다.First, the AES-CCM processing process performed by the AES-CCM parallel processing apparatus 100 is analyzed.

도 2에는 AES-CCM의 처리 과정이 순서도로 도시되어 있다.2 is a flowchart illustrating the processing of the AES-CCM.

도 2에 도시된 바와 같이, AES-CCM의 처리 과정은, 키 초기화 과정(S210), 메시지 헤더 검증 처리 과정(S220), CTR 및 CBC-MAC을 이용하여 메시지 암호화/인증을 수행하는 과정(S230), 및 MAC 계산을 통해 MAC 값을 검증하는 과정(S240)을 포함한다.As shown in FIG. 2, the processing of the AES-CCM includes a process of performing message encryption / authentication using a key initialization process (S210), a message header verification process (S220), a CTR, and a CBC-MAC (S230). ), And verifying the MAC value through MAC calculation (S240).

상기 키 초기화 과정(S210) 및 메시지의 헤더 검증 처리 과정(S220)의 경우, 작은 데이터를 처리하기 때문에 전체 수행시간에 큰 영향을 미치지 않는다. 또한, 상기 MAC 계산 과정(S240)도 암호화 처리가 된 블록을 XOR 연산만 하는 과정이기 때문에 굳이 병렬처리할 이유가 없다. 실제 구현에 있어서, 데이터 처리량이 적은 태스크를 병렬화하는 경우 오히려 병렬화에 따른 복잡한 처리 과정이 효율성을 저해할 수 있다.In the key initialization process (S210) and the header verification process (S220) of the message, since small data is processed, it does not significantly affect the overall execution time. In addition, since the MAC calculation process (S240) is a process of performing only XOR operation on the encrypted block, there is no reason for the parallel processing. In practical implementations, when parallelizing tasks with low data throughput, complex processing due to parallelism may impair efficiency.

한편, 상기 메시지 암호화/인증 과정(S230)은, CTR(Counter)을 이용하여 메시지를 암호화하는 계산과 CBC-MAC(Cipher Block Chaining-Message Authentication Code Protocol)을 이용하여 MAC 블록을 생성하는 계산을 수행한다. 상기 메시지 암호화/인증 과정(S230)은, 전체 메시지를 암호화/인증 블록의 개수만큼 처리해야하기 때문에 AES-CCM 전체 수행시간의 대부분을 차지하게 된다. 또한, 상기 두 과정은 모두 AES 암호화를 이용하고 같은 크기의 메시지를 처리하기 때문에 거의 비슷한 수행 시간이 소요된다.On the other hand, the message encryption / authentication process (S230), the calculation to encrypt the message using the CTR (Counter) and the calculation to generate the MAC block using the Cipher Block Chaining-Message Authentication Code Protocol (CBC-MAC) do. The message encryption / authentication process (S230) occupies most of the entire execution time of the AES-CCM since the entire message must be processed as many as the number of encryption / authentication blocks. In addition, since both processes use AES encryption and process messages of the same size, it takes almost similar execution time.

따라서, 본 발명은, AES-CCM에 있어서, 특히 상기 메시지 암호화/인증 과정(S230)을 효율적으로 병렬처리하고자 하는 것이다.Accordingly, the present invention is to efficiently parallelize the message encryption / authentication process (S230), particularly in AES-CCM.

도 3에는 CTR 운용모드의 처리 과정이 도시되어 있다.3 shows a process of the CTR operation mode.

도 3에 도시된 바와 같이, CTR은 임의의 수(Nonce)와 카운터(Counter)를 이용해 만든 블록을 일정한 값으로 증가하여 암호화에 사용하기 때문에 블록 암호를 스트림 암호처럼 사용할 수 있게 해준다. 특히, 키와 Nonce를 미리 계산할 수 있기 때문에 데이터를 실시간 암호화할 수 있으며, 처리 과정에서 데이터 간에 종속성을 지니지 않는다. 아래에서 다시 설명하겠지만, 본 발명에 따른 병렬처리 장치 및 방법은, 상기 CTR의 데이터 독립성을 고려하여 상기 CTR에 대해 데이터 병렬화(data-level parallelism 또는 data parallelism)를 수행한다.As shown in FIG. 3, the CTR increases the block made using a random number and a counter to a constant value, and thus uses the block cipher as a stream cipher. In particular, the key and nonce can be precomputed, allowing data to be encrypted in real time, with no dependencies between the data in the process. As will be described again below, the apparatus and method for parallel processing according to the present invention performs data-level parallelism or data parallelism on the CTR in consideration of data independence of the CTR.

도 4에는 CBC-MAC 운용모드의 처리 과정이 도시되어 있다.4 shows a process of the CBC-MAC operation mode.

도 4에 도시된 바와 같이, 무결성을 보장하는 방법인 CBC-MAC는, 한 메시지 블록을 초기 벡터(IV)와 같이 암호화하는 것을 시작으로 그 값을 다음 암호화에 이용하는 체이닝(Chaining) 기법인 CBC(Cipher Block Chaining)를 이용한다. CBC-MAC은, CBC의 마지막 암호화된 블록을 메시지의 무결성을 인증하는 코드인 MAC으로 사용하는 방법이다. CBC는 블록 암호화 데이터의 독립성을 제거하는 체이닝을 수행하기 때문에 일부 데이터가 변조되었을 때 나머지 데이터들에게도 변조를 전파하는 특성을 가진다. 즉, CBC의 마지막 블록을 MAC으로 사용하여 변조를 확인하면 데이터의 무결성을 검증할 수 있다. 아래에서 다시 설명하겠지만, 상기 CBC-MAC 데이터 종속성을 고려하여 상기 CBC-MAC에 대해서는 데이터 병렬화를 수행하지 않는다.As shown in FIG. 4, CBC-MAC, a method of ensuring integrity, starts with encrypting a message block like an initial vector (IV), and then uses CBC (Chaining), a chaining technique that uses the value for the next encryption. Cipher Block Chaining). CBC-MAC is a method of using the last encrypted block of the CBC as a MAC, a code for authenticating the integrity of a message. Since the CBC performs chaining to remove independence of block ciphered data, when some data is modulated, the CBC propagates the modulation to the rest of the data. In other words, if the modulation is confirmed using the last block of the CBC as the MAC, the integrity of the data can be verified. As will be described again below, data parallelism is not performed on the CBC-MAC in consideration of the CBC-MAC data dependency.

도 5에는 AES-CCM 운용모드의 전체 처리 과정이 도시되어 있다.Figure 5 shows the overall process of the AES-CCM operating mode.

도 5에 도시된 바와 같이, AES-CCM은 하나의 키(key)로 기밀성과 무결성을 동시에 보장할 수 있다. 즉, AES-CCM은 운용모드 중 하나인 상기 CTR을 이용하여 데이터의 기밀성을 제공하면서, 상기 CBC-MAC을 이용하여 메시지 인증 및 무결성을 제공한다. 먼저, CBC를 이용하여 MAC으로 사용할 암호화 블록을 만들고, CTR을 이용해 메시지를 암호화한다. 실시예에 따라, 상기 CBC 및 상기 CTR의 처리 순서는 조정될 수 있다.As shown in FIG. 5, AES-CCM can simultaneously guarantee confidentiality and integrity with a single key. In other words, AES-CCM provides message authentication and integrity using the CBC-MAC while providing confidentiality of data using the CTR, which is one of the operation modes. First, CBC is used to create an encryption block to be used as a MAC, and CTR is used to encrypt a message. According to an embodiment, the processing order of the CBC and the CTR may be adjusted.

도 6에는 본 발명에 따른 AES-CCM 병렬처리 방법의 일례가 순서도로 도시되어 있다.6 shows an example of an AES-CCM parallel processing method according to the present invention in a flow chart.

AES-CCM 전체 수행시간의 대부분을 차지하는 상기 메시지 암호화/인증 과 정(S230)에서 데이터 병렬화(data-level parallelism)를 활용하기 위해서는 데이터 사이의 종속성이 없어야 한다. 그러나, CTR 모드와 달리, CBC-MAC의 경우 블록간의 체이닝으로 종속성이 존재하므로, 데이터 병렬화가 가능한 CTR만을 병렬처리하는 방법을 생각할 수 있다.In order to utilize data-level parallelism in the message encryption / authentication process (S230), which occupies most of the entire execution time of AES-CCM, there should be no dependency between data. However, unlike the CTR mode, in the case of CBC-MAC, there is a dependency due to chaining between blocks, so a method of parallelizing only CTRs capable of data parallelization can be considered.

도 1 및 도 6을 참조하면, 우선, 상기 코어 할당부(120)는, AES-CCM의 처리 대상 태스크(task)에 대해 상기 범용 멀티코어 프로세서(140)의 코어를 할당한다(S610). 이 경우, 상기 코어 할당부(120)는, 상기 처리 대상 태스크의 데이터들 간에 종속성이 없는 경우, 상기 처리 대상 태스크에 대해 상기 범용 멀티코어 프로세스(140)의 코어들 중 2 이상을 할당할 수 있다. 반면, 상기 코어 할당부(120)는, 상기 처리 대상 태스크의 데이터들 간에 종속성이 있는 경우, 상기 처리 대상 태스크에 대해 상기 범용 멀티코어 프로세서(140)의 코어들 중 하나의 코어를 할당할 수 있다.1 and 6, first, the core allocator 120 allocates a core of the general-purpose multicore processor 140 to a task to be processed in the AES-CCM (S610). In this case, when there is no dependency between data of the processing target task, the core allocating unit 120 may allocate two or more of the cores of the general purpose multicore process 140 to the processing target task. . On the other hand, when there is a dependency between the data of the processing target task, the core allocating unit 120 may allocate one core among the cores of the general purpose multicore processor 140 to the processing target task. .

일 실시예에 있어서, 상기 코어 할당부(120)는, 상기 범용 멀티코어 프로세서(140)의 코어들 중에서, 상기 처리 대상 태스크가 CTR(Counter)인 경우 2 이상의 코어를 할당하고, 상기 처리 대상 태스크가 CBC-MAC(Cipher Block Chaining-Message Authentication Code)인 경우 하나의 코어를 할당할 수 있다. 물론, 상기 코어 할당부(120)는, 상기 처리 대상 태스크가 상기 CTR인 경우, 상기 범용 멀티코어 프로세스의 코어 전체를 할당할 수 있다.In one embodiment, the core allocating unit 120 allocates two or more cores when the processing target task is a CTR (Counter) among the cores of the general-purpose multicore processor 140, and the processing target task. If CBC-MAC (Cipher Block Chaining-Message Authentication Code), one core may be allocated. Of course, if the task to be processed is the CTR, the core allocator 120 may allocate the entire core of the general purpose multicore process.

그 다음, 상기 데이터 병렬화부(130)는, 상기 할당된 코어의 개수에 대응하여 상기 처리 대상 태스크에 대한 데이터 병렬화(data level parallelism 또는 data parallelism)를 수행한다(S620). 이 경우, 상기 데이터 병렬화부(130)는, 상기 처리 대상 태스크의 데이터들 간에 종속성이 있는 경우, 상기 데이터 병렬화를 수행하지 않는다. 즉, 상기 데이터 병렬화부(130)는, 상기 처리 대상 태스크가 CBC-MAC인 경우, 상기 데이터 병렬화를 수행하지 않는다.Next, the data parallelization unit 130 performs data level parallelism or data parallelism on the object to be processed in correspondence with the allocated number of cores (S620). In this case, the data parallelization unit 130 does not perform the data parallelization when there is a dependency between data of the processing target task. That is, the data parallelization unit 130 does not perform the data parallelization when the task to be processed is the CBC-MAC.

그 다음, 상기 범용 멀티코어 프로세서(140)는, 상기 데이터 병렬화된 상기 처리 대상 태스크를 상기 할당된 코어를 통해 병렬적으로 수행한다(S630). 이 경우, 상기 범용 멀티코어 프로세서(140)는, 태스크들 간 병렬처리는 수행하지 않는다. 즉, 상기 CTR 및 상기 CBC-MAC에 대한 처리 수행시, 상기 CTR 또는 상기 CBC-MAC에 대한 처리를 먼저 수행한다.Next, the general-purpose multicore processor 140 performs the data-parallelized task to be performed in parallel through the assigned cores in operation S630. In this case, the general purpose multicore processor 140 does not perform parallel processing between tasks. That is, when the processing for the CTR and the CBC-MAC is performed, the processing for the CTR or the CBC-MAC is performed first.

도 7에는 도 6의 AES-CCM 병렬처리 방법에 따른 범용 멀티코어 프로세서(140)의 처리 과정이 도시되어 있다.FIG. 7 illustrates a process of the general-purpose multicore processor 140 according to the AES-CCM parallel processing method of FIG. 6.

도 7에 도시된 바와 같이, 상기 범용 멀티코어 프로세서(140)는 쿼드 코어(Quad Core) 프로세서일 수 있으며, 4개의 코어 전체에서 상기 CTR을 데이터 병렬화하여 처리한 후, 하나의 코어에서 상기 CBC-MAC 블록 생성을 수행할 수 있다.As illustrated in FIG. 7, the general-purpose multicore processor 140 may be a quad core processor. After processing the data by parallelizing the CTR in all four cores, the CBC- MAC block generation may be performed.

도 8에는 본 발명에 따른 AES-CCM 병렬처리 방법의 다른 일례가 순서도로 도시되어 있다.8 is a flowchart showing another example of the AES-CCM parallel processing method according to the present invention.

상기 CTR 및 상기 CBC-MAC에 대한 태스크 병렬화 및 상기 CTR에 대한 데이터 병렬화를 동시에 수행하는 경우, AES-CCM 수행시간을 더욱 감소시킬 수 있다. When the task parallelization for the CTR and the CBC-MAC and the data parallelization for the CTR are performed simultaneously, the execution time of the AES-CCM can be further reduced.

도 1 및 도 8을 참조하면, 본 발명에 따른 AES-CCM 병렬처리 장치(100)는, 상기 태스크 병렬화부(110)를 더 포함하여, 상기 AES-CCM의 처리 대상 태스크들 중, CTR 및 CBC-MAC에 대한 태스크 병렬화(task parallelism)를 수행하는 할 수 있다(S810).1 and 8, the AES-CCM parallel processing apparatus 100 according to the present invention further includes the task parallelization unit 110, among the target tasks of the AES-CCM processing, CTR and CBC. Task parallelism for the MAC may be performed (S810).

그러면, 상기 코어 할당부(120)는, 상기 범용 멀티코어 프로세서(140) AES-CCM의 처리 대상 태스크(task)에 대해 상기 범용 멀티코어 프로세서(140)의 코어를 할당한다(S820). 특히, 상기 코어 할당부(120)는, 상기 범용 멀티코어 프로세서(140)의 코어들 중에서, 상기 CBC-MAC에 대해서는 하나의 코어를 할당하고, 상기 CTR에 대해서는 1 또는 2 이상의 코어를 할당할 수 있다. 물론, 상기 코어 할당부(120)는, 상기 CTR에 대해 상기 CBC-MAC에 할당된 코어 이외에 나머지 모든 코어를 할당할 수도 있다.Then, the core allocating unit 120 allocates a core of the general purpose multicore processor 140 to a processing target task of the general purpose multicore processor 140 AES-CCM (S820). In particular, the core allocator 120 may allocate one core to the CBC-MAC and one or more cores to the CTR among the cores of the general-purpose multicore processor 140. have. Of course, the core allocator 120 may allocate all remaining cores other than the cores allocated to the CBC-MAC to the CTR.

그 다음, 상기 데이터 병렬화부(130)는, 상기 할당된 코어의 개수에 대응하여 상기 처리 대상 태스크에 대한 데이터 병렬화를 수행한다(S830). 특히, 상기 데이터 병렬화부(130)는, 상기 CTR에 대해서만 상기 데이터 병렬화를 수행할 수 있다. 앞에서 언급한 바와 같이, 상기 CBC-MAC는 데이터 종속성이 존재하기 때문이다.Next, the data parallelization unit 130 performs data parallelization on the object to be processed in correspondence with the allocated number of cores (S830). In particular, the data parallelization unit 130 may perform the data parallelization only for the CTR. As mentioned above, the CBC-MAC has a data dependency.

그 다음, 상기 범용 멀티코어 프로세서(140)는, 상기 데이터 병렬화된 상기 처리 대상 태스크를 상기 할당된 코어를 통해 병렬적으로 수행한다(S840). 특히, 상기 범용 멀티코어 프로세서(140)는, 상기 CTR 및 상기 CBC-MAC에 대한 처리를 병렬적으로 수행한다.Next, the general-purpose multicore processor 140 performs the data-parallelized task to be performed in parallel through the allocated cores in operation S840. In particular, the general purpose multicore processor 140 performs the processing for the CTR and the CBC-MAC in parallel.

도 9에는 도 8의 AES-CCM 병렬처리 방법에 따른 범용 멀티코어 프로세서(140)의 처리 과정이 도시되어 있다.FIG. 9 illustrates a process of the general-purpose multicore processor 140 according to the AES-CCM parallel processing method of FIG. 8.

도 9에 도시된 바와 같이, 상기 범용 멀티코어 프로세서(140)는 쿼드 코어(Quad Core) 프로세서일 수 있으며, 4개의 코어들 중 상기 CTR에 대해 3개, 상기 CBC-MAC에 대해 1개의 코어를 할당하여 상기 CTR 및 상기 CBC-MAC에 대한 처리를 병렬적으로 수행할 수 있다.As shown in FIG. 9, the general-purpose multicore processor 140 may be a quad core processor, wherein three of the four cores have three cores for the CTR and one core for the CBC-MAC. The allocation to the CTR and the CBC-MAC can be performed in parallel.

한편, 본 발명은 컴퓨터로 판독할 수 있는 기록매체에 컴퓨터가 읽어들일 수 있는 프로그램 코드로서 구현하는 것이 가능하다. 이 경우, 프로그램은, 병렬적으로 작동하는 소프트웨어의 작성에 사용되는 표준 API(Application Programming Interface)인 Pthread(POSIX Threads)를 통해 프로그래밍될 수 있다. 상기 Pthread를 사용하는 경우, 다양한 멀티코어 CPU에서 동작하도록 병렬프로그램의 호환성을 제공할 수 있다.On the other hand, the present invention can be embodied as computer readable program codes on a computer readable recording medium. In this case, the program can be programmed through Pthreads (POSIX Threads), which is a standard application programming interface (API) used for writing software that runs in parallel. When the Pthread is used, parallel program compatibility can be provided to operate on various multicore CPUs.

본 발명이 이러한 소프트웨어를 통해 실행될 때, 본 발명의 구성 수단들은 필요한 작업을 실행하는 코드 세그먼트들이다. 또한, 프로그램 또는 코드 세그먼트들은 컴퓨터의 프로세서 판독가능 매체에 저장되거나 전송 매체 또는 통신망을 통해 반송파와 결합된 컴퓨터 데이터 신호로 전송될 수 있다.When the present invention is executed through such software, the constituent means of the present invention are code segments for performing necessary tasks. In addition, the program or code segments may be stored in a computer readable medium of a computer or transmitted as a computer data signal coupled with a carrier via a transmission medium or a communication network.

컴퓨터 판독가능 기록매체에는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터를 저장하는 모든 종류의 기록장치가 포함된다. 예컨대, 컴퓨터 판독가능 기록매체에는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 포함될 수 있다. 또한, 컴퓨터 판독가능 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 컴퓨터가 읽어들일 수 있는 코드를 분산방식으로 저장하고 실행되도록 할 수 있다.Computer-readable recording media include all kinds of recording devices for storing data that can be read by a computer system. For example, the computer-readable recording medium may include a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device, and the like. The computer readable recording medium can also be distributed over network coupled computer systems so that the computer can store and execute the code that is readable.

또한, 본 발명은 시스템 온 칩(system on chip) 기술로 구현하여 상기 마이크로프로세서로 하여금 상술한 AES-CCM 병렬처리 동작을 수행하도록 할 수 있다. 본 발명을 마이크로프로세서로 구현하면 각종 시스템의 크기를 줄일 수 있고, 조립 과정을 단순화시킬 수 있으며, 제조 비용을 절감할 수 있는 등의 이점이 있다.In addition, the present invention can be implemented in a system on chip technology to enable the microprocessor to perform the above-described AES-CCM parallel processing operation. If the present invention is implemented in a microprocessor, the size of various systems can be reduced, the assembly process can be simplified, and manufacturing costs can be reduced.

이하, 본 발명의 현저한 효과를 검증한다.Hereinafter, the significant effects of the present invention are verified.

도 10에는 본 발명에 따른 AES-CCM 병렬처리 수행시간 측정 실험 결과가 그래프로 도시되어 있다.10 is a graph showing the results of the AES-CCM parallel processing execution time measurement experiment according to the present invention.

상기 실험에 있어서, Intel Core2 Quad CPU 2.33GHz의 실험환경에서 다양한 크기의 데이터를 암/복호화하였다. 실험에 이용되는 키 길이는 128bit, 초기벡터(IV)는 12byte, 그리고 태그는 16byte를 사용하였다. 데이터를 10MB부터 50MB까지, 10MB씩 증가시켜 가면서 단일코어를 이용하는 기존의 방법(SEQ)과 비교 측정하였으며, 본 발명에 따른 AES-CCM 병렬처리 방법으로서, CTR에 대해 데이터 병렬화를 수행하는 방법(CTR)과, CTR 및 CBC-MAC에 대해 태스크 병렬화 및 데이터 병렬화 를 동시에 수행하는 (CTR+CBC)방법을 사용하였다.In the experiment, data of various sizes were encrypted / decoded in an experimental environment of an Intel Core2 Quad CPU 2.33GHz. The key length used for the experiment was 128 bits, the initial vector (IV) was 12 bytes, and the tag was 16 bytes. The data was measured from 10MB to 50MB in increments of 10MB and compared with the conventional method using a single core (SEQ) .AES-CCM parallel processing method according to the present invention, a method of performing data parallelization with respect to CTR (CTR ) And the (CTR + CBC) method that simultaneously performs task parallelization and data parallelization for CTR and CBC-MAC.

도 10에 도시된 바와 같이, 본 발명은, AES-CCM에서 CTR에만 데이터 병렬화(data-level parallelism)을 이용할 경우 기존의 방법에 비해 수행시간이 약 35%정도 감소함을 알 수 있으며, CTR 및 CBC-MAC에 대해 태스트 병렬화(task-level parallelism) 및 데이터 병렬화를 동시에 활용할 경우 수행시간이 약 50%정도까지 현저히 감소함을 알 수 있다.As shown in FIG. 10, the present invention shows that when data-level parallelism is used only for CTR in AES-CCM, execution time is reduced by about 35% compared to the conventional method. When task-level parallelism and data parallelism are used simultaneously for CBC-MAC, the execution time is reduced by about 50%.

한편, 최근 반도체 집적도 증가에 따라, standalone PC 뿐만 아니라 임베디 드 시스템에서도 범용 멀티코어 CPU를 탑재하는 추세에 있다. 이러한 추세에서, 본 발명에 따라 범용 멀티코어 CPU를 활용하여 AES-CCM을 병렬처리한다면, 전용 하드웨어 칩을 전제로 하는 기존의 솔루션들보다 비용 효율적인 솔루션을 확보할 수 있는 방안을 제시할 수 있을 것으로 기대된다.Meanwhile, with the recent increase in semiconductor integration, general purpose multicore CPUs have been installed not only in standalone PCs but also in embedded systems. In this trend, if the parallel processing of the AES-CCM using a general-purpose multi-core CPU according to the present invention, it is possible to propose a way to obtain a cost-effective solution than the existing solutions on the assumption of a dedicated hardware chip It is expected.

상술한 바와 같이, 본 발명은, AES-CCM를 병렬처리함으로써, 데이터 기밀성 및 무결성을 동시에 보장함은 물론, 처리 속도 및 자원 효율성을 개선하는 이점을 제공한다. 또한, 범용 멀티코어 프로세서를 이용함으로써, 별도의 하드웨어를 필요로 하지 않고 비용 효율적인 솔루션 개발을 가능하게 하는 이점을 제공한다. 나아가, Pthread를 사용함으로써, 다양한 CPU에 적용될 수 있는 호환성을 지닌다는 이점을 제공한다.As described above, the present invention provides an advantage of improving processing speed and resource efficiency as well as ensuring data confidentiality and integrity simultaneously by parallelizing AES-CCM. In addition, using a general-purpose multicore processor provides the advantage of enabling cost-effective solution development without the need for separate hardware. Furthermore, using Pthreads provides the advantage of being compatible with a variety of CPUs.

지금까지 본 발명에 대해 실시예들을 참고하여 설명하였다. 그러나 당업자라면 본 발명의 본질적인 기술적 사상으로부터 벗어나지 않는 범위에서 본 발명이 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 즉, 본 발명의 진정한 기술적 범위는 첨부된 특허청구범위에 나타나 있으며, 그와 균등범위 내에 있는 모든 차이점은 본 발명에 포함되는 것으로 해석되어야 할 것이다.So far, the present invention has been described with reference to the embodiments. However, one of ordinary skill in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential technical spirit of the present invention. Therefore, the disclosed embodiments should be considered in an illustrative rather than a restrictive sense. That is, the true technical scope of the present invention is shown in the appended claims, and all differences within the equivalent scope will be construed as being included in the present invention.

도 1은 본 발명에 따른 범용 멀티코어 프로세스를 이용한 AES-CCM 병렬처리 장치의 일례를 나타낸 블록도.1 is a block diagram showing an example of an AES-CCM parallel processing apparatus using a general-purpose multicore process according to the present invention.

도 2는 AES-CCM의 처리 과정을 나타낸 순서도.2 is a flowchart illustrating a process of AES-CCM.

도 3은 CTR 운용모드의 처리 과정을 나타낸 도면.3 is a diagram illustrating a process of a CTR operation mode;

도 4는 CBC-MAC 운용모드의 처리 과정을 나타낸 도면.4 is a diagram illustrating a processing procedure of a CBC-MAC operation mode.

도 5는 AES-CCM 운용모드의 전체 처리 과정을 나타낸 도면.5 is a diagram showing the overall processing of the AES-CCM operating mode.

도 6은 본 발명에 따른 AES-CCM 병렬처리 방법의 일례를 나타낸 순서도.6 is a flow chart showing an example of an AES-CCM parallel processing method according to the present invention.

도 7은 도 6의 AES-CCM 병렬처리 방법에 따른 범용 멀티코어 프로세서의 처리 과정을 나타낸 도면.7 is a diagram illustrating a processing procedure of a general-purpose multicore processor according to the AES-CCM parallel processing method of FIG. 6.

도 8은 본 발명에 따른 AES-CCM 병렬처리 방법의 다른 일례를 나타낸 순서도.8 is a flow chart showing another example of the AES-CCM parallel processing method according to the present invention.

도 9는 도 8의 AES-CCM 병렬처리 방법에 따른 범용 멀티코어 프로세서의 처리 과정을 나타낸 도면.9 is a diagram illustrating a processing procedure of a general-purpose multicore processor according to the AES-CCM parallel processing method of FIG. 8.

도 10은 본 발명에 따른 AES-CCM 병렬처리 수행시간 측정 실험 결과를 나타낸 그래프.10 is a graph showing the results of the AES-CCM parallel processing execution time measurement experiment according to the present invention.

Claims (20)

AES-CCM의 처리 대상 태스크(task)에 대해 범용 멀티코어 프로세서의 코어 중 상기 처리 대상 태스크에 따라 필요한 하나 이상의 코어를 할당하는 코어 할당부; 및A core allocator configured to allocate one or more cores required according to the processing target task among cores of a general-purpose multicore processor to the processing target task of the AES-CCM; And 상기 할당된 코어의 개수에 대응하여 상기 처리 대상 태스크에 대한 데이터 병렬화(data parallelism)를 수행하는 데이터 병렬화부를 포함하고,A data parallelization unit configured to perform data parallelism on the processing target task in response to the number of the assigned cores; 상기 범용 멀티코어 프로세서는, 상기 데이터 병렬화된 상기 처리 대상 태스크를 상기 할당된 코어를 통해 병렬적으로 수행하는 범용 멀티코어 프로세스를 이용한 AES-CCM 병렬처리 장치.The general purpose multicore processor is an AES-CCM parallel processing apparatus using a general-purpose multicore process for performing the data parallelized processing target task through the assigned core in parallel. 제1항에 있어서,The method of claim 1, 상기 코어 할당부는, 상기 처리 대상 태스크의 데이터들 간에 종속성이 없는 경우, 상기 처리 대상 태스크에 대해 상기 범용 멀티코어 프로세스의 코어들 중 2 이상을 할당하는 것을 특징으로 하는 범용 멀티코어 프로세스를 이용한 AES-CCM 병렬처리 장치.The core allocator may allocate two or more of cores of the general-purpose multicore process to the processing target task when there is no dependency between the data of the processing target task. CCM parallel processing unit. 제1항에 있어서,The method of claim 1, 상기 코어 할당부는, 상기 처리 대상 태스크의 데이터들 간에 종속성이 있는 경우, 상기 처리 대상 태스크에 대해 상기 범용 멀티코어 프로세스의 코어들 중 하나의 코어를 할당하는 것을 특징으로 하는 범용 멀티코어 프로세스를 이용한 AES- CCM 병렬처리 장치.If there is a dependency between the data of the task to be processed, the core allocator allocates one core among the cores of the general-purpose multicore process to the processing target task. CCM parallel processing unit. 제1항에 있어서,The method of claim 1, 상기 코어 할당부는, 상기 범용 멀티코어 프로세스의 코어들 중에서, 상기 처리 대상 태스크가 CTR(Counter)인 경우 2 이상의 코어를 할당하고, 상기 처리 대상 태스크가 CBC-MAC(Cipher Block Chaining-Message Authentication Code)인 경우 하나의 코어를 할당하는 것을 특징으로 하는 범용 멀티코어 프로세스를 이용한 AES-CCM 병렬처리 장치.The core allocating unit allocates two or more cores when the processing target task is a CTR (Counter) among the cores of the general-purpose multicore process, and the processing target task is a Cipher Block Chaining-Message Authentication Code (CBC-MAC). In the case of AES-CCM parallel processing apparatus using a general-purpose multi-core process, characterized in that allocating one core. 제4항에 있어서,5. The method of claim 4, 상기 코어 할당부는, 상기 처리 대상 태스크가 상기 CTR인 경우, 상기 범용 멀티코어 프로세스의 코어 전체를 할당하는 것을 특징으로 하는 범용 멀티코어 프로세스를 이용한 AES-CCM 병렬처리 장치.And the core allocating unit allocates an entire core of the general-purpose multicore process when the task to be processed is the CTR. 제5항에 있어서,The method of claim 5, 상기 범용 멀티코어 프로세서는, 상기 CTR 및 상기 CBC-MAC에 대한 처리 수행시, 상기 CTR 또는 상기 CBC-MAC에 대한 처리를 먼저 수행하는 것을 특징으로 하는 범용 멀티코어 프로세스를 이용한 AES-CCM 병렬처리 장치.The general-purpose multicore processor, the AES-CCM parallel processing apparatus using a general-purpose multicore processor, characterized in that when performing the processing for the CTR and the CBC-MAC, the first processing for the CTR or the CBC-MAC . 제1항에 있어서,The method of claim 1, 상기 데이터 병렬화부는, 상기 처리 대상 태스크의 데이터들 간에 종속성이 있는 경우, 상기 데이터 병렬화를 수행하지 않는 것을 특징으로 하는 범용 멀티코어 프로세스를 이용한 AES-CCM 병렬처리 장치.The data parallelization unit, AES-CCM parallel processing apparatus using a general-purpose multi-core process, if there is a dependency between the data of the task to be processed, the data parallelization. 제1항에 있어서,The method of claim 1, 상기 데이터 병렬화부는, 상기 처리 대상 태스크가 CBC-MAC인 경우, 상기 데이터 병렬화를 수행하지 않는 것을 특징으로 하는 범용 멀티코어 프로세스를 이용한 AES-CCM 병렬처리 장치.The data parallelization unit, AES-CCM parallel processing apparatus using a general-purpose multi-core process, characterized in that the data parallelization does not perform when the task to be processed is CBC-MAC. 제1항에 있어서,The method of claim 1, 상기 AES-CCM 병렬처리 장치는, 상기 AES-CCM의 처리 대상 태스크들 중, CTR 및 CBC-MAC에 대한 태스크 병렬화(task parallelism)를 수행하는 태스크 병렬화부를 더 포함하는 것을 특징으로 하는 범용 멀티코어 프로세스를 이용한 AES-CCM 병렬처리 장치.The AES-CCM parallel processing apparatus further includes a task parallelization unit configured to perform task parallelism on CTR and CBC-MAC among tasks to be processed in the AES-CCM. AES-CCM parallel processing unit using. 제9항에 있어서,10. The method of claim 9, 상기 코어 할당부는, 상기 범용 멀티코어 프로세스의 코어들 중에서, 상기 CBC-MAC에 대해서는 하나의 코어를 할당하고, 상기 CTR에 대해서는 1 또는 2 이상의 코어를 할당하는 것을 특징으로 하는 범용 멀티코어 프로세스를 이용한 AES-CCM 병렬처리 장치.The core allocator may allocate one core to the CBC-MAC and one or more cores to the CTR among the cores of the general-purpose multicore process. AES-CCM parallel processing unit. 제10항에 있어서,The method of claim 10, 상기 데이터 병렬화부는, 상기 CTR에 대해서만 상기 데이터 병렬화를 수행하는 것을 특징으로 하는 범용 멀티코어 프로세스를 이용한 AES-CCM 병렬처리 장치.The data parallelization unit, AES-CCM parallel processing apparatus using a general-purpose multi-core process, characterized in that for performing the data parallelization only for the CTR. 제10항에 있어서,The method of claim 10, 상기 범용 멀티코어 프로세서는, 상기 CTR 및 상기 CBC-MAC에 대한 처리를 병렬적으로 수행하는 것을 특징으로 하는 범용 멀티코어 프로세스를 이용한 AES-CCM 병렬처리 장치.The general-purpose multicore processor, the AES-CCM parallel processing apparatus using a general-purpose multicore processor, characterized in that for performing the processing for the CTR and the CBC-MAC in parallel. 범용 멀티코어 프로세서를 사용하는 컴퓨터 시스템에서, AES-CCM의 처리 대상 태스크(task)에 대해 상기 범용 멀티코어 프로세서의 코어 중 상기 처리 대상 태스크에 따라 필요한 하나 이상의 코어를 할당하는 코어 할당 단계;In a computer system using a general-purpose multicore processor, a core allocation step of allocating one or more cores required according to the processing target task among the cores of the general-purpose multicore processor to the processing target task of AES-CCM; 상기 컴퓨터 시스템에서, 상기 할당된 코어의 개수에 대응하여 상기 처리 대상 태스크에 대한 데이터 병렬화(data parallelism)를 수행하는 데이터 병렬화 단계; 및In the computer system, performing data parallelism on the task to be processed in correspondence to the number of allocated cores; And 상기 범용 멀티코어 프로세서에서, 상기 데이터 병렬화된 상기 처리 대상 태스크를 상기 할당된 코어를 통해 병렬적으로 처리하는 처리 단계를 포함하는 범용 멀티코어 프로세스를 이용한 AES-CCM 병렬처리 방법.In the general-purpose multi-core processor, AES-CCM parallel processing method using a general-purpose multi-core process comprising the step of processing the data parallelized processing target task through the assigned core in parallel. 제13항에 있어서,The method of claim 13, 상기 코어 할당 단계는, 상기 범용 멀티코어 프로세스의 코어들 중에서, 상기 처리 대상 태스크가 CTR인 경우 2 이상의 코어를 할당하고, 상기 처리 대상 태스크가 CBC-MAC인 경우 하나의 코어를 할당하는 단계인 것을 특징으로 하는 범용 멀티코어 프로세스를 이용한 AES-CCM 병렬처리 방법.The core allocating step may include allocating two or more cores when the task to be processed is CTR and one core when the task to be processed is CBC-MAC among the cores of the general-purpose multicore process. AES-CCM parallel processing method using a general purpose multicore process. 제14항에 있어서,The method of claim 14, 상기 코어 할당 단계는, 상기 처리 대상 태스크가 상기 CTR인 경우, 상기 범용 멀티코어 프로세스의 코어 전체를 할당하는 단계인 것을 특징으로 하는 범용 멀티코어 프로세스를 이용한 AES-CCM 병렬처리 방법.And the core allocating step comprises allocating an entire core of the general purpose multicore process when the task to be processed is the CTR. 제15항에 있어서,The method of claim 15, 상기 처리 단계는, 상기 CTR 및 상기 CBC-MAC에 대한 처리 수행시, 상기 CTR 또는 상기 CBC-MAC에 대한 처리를 먼저 수행하는 단계인 것을 특징으로 하는 범용 멀티코어 프로세스를 이용한 AES-CCM 병렬처리 방법.Wherein the processing step, AES-CCM parallel processing method using a general-purpose multi-core process, characterized in that when performing the processing for the CTR and the CBC-MAC, the first processing for the CTR or the CBC-MAC . 제13항에 있어서,The method of claim 13, 상기 데이터 병렬화 단계는, 상기 처리 대상 태스크가 CBC-MAC인 경우, 상기 데이터 병렬화를 수행하지 않는 단계인 것을 특징으로 하는 범용 멀티코어 프로세스를 이용한 AES-CCM 병렬처리 방법.The data parallelizing step is the step of performing the data parallelism when the task to be processed is the CBC-MAC, AES-CCM parallel processing method using a general-purpose multi-core process. 범용 멀티코어 프로세서를 사용하는 컴퓨터 시스템에서, AES-CCM의 처리 대상 태스크들 중, CTR 및 CBC-MAC에 대한 태스크 병렬화(task parallelism)를 수행하는 태스크 병렬화 단계;In a computer system using a general-purpose multicore processor, a task parallelization step of performing task parallelism for CTR and CBC-MAC among the tasks to be processed in the AES-CCM; 상기 컴퓨터 시스템에서, 상기 범용 멀티코어 프로세스의 코어들 중에서, 상기 CBC-MAC에 대해서는 하나의 코어를 할당하고, 상기 CTR에 대해서는 1 또는 2 이상의 코어를 할당하는 코어 할당 단계;In the computer system, allocating one core for the CBC-MAC and one or more cores for the CTR among the cores of the general-purpose multicore process; 상기 컴퓨터 시스템에서, 상기 할당된 코어의 개수에 대응하여 상기 CTR에 대한 데이터 병렬화(data parallelism)를 수행하는 데이터 병렬화 단계; 및In the computer system, performing data parallelism on the CTR in correspondence with the allocated number of cores; And 상기 범용 멀티코어 프로세서에서, 상기 데이터 병렬화된 CTR 및 상기 CBC-MAC를 상기 할당된 코어를 통해 병렬적으로 처리하는 처리 단계를 포함하는 범용 멀티코어 프로세스를 이용한 AES-CCM 병렬처리 방법.And in the general-purpose multicore processor, processing the data parallelized CTR and the CBC-MAC in parallel through the allocated cores. 제13항 내지 제18항 중 어느 한 항에 따른 방법을 컴퓨터로 실행하기 위한 프로그램이 기록된 컴퓨터 판독가능 기록매체.A computer-readable recording medium having recorded thereon a program for executing a method according to any one of claims 13 to 18 with a computer. 제19항에 있어서,The method of claim 19, 상기 프로그램은, 병렬적으로 작동하는 소프트웨어의 작성에 사용되는 표준 API(Application Programming Interface)인 Pthread(POSIX Threads)를 통해 프로그래밍된 것을 특징으로 하는 컴퓨터 판독가능 기록매체.The program is a computer-readable recording medium, characterized in that programmed through the Pthread (POSIX Threads), which is a standard application programming interface (API) used for writing software that operates in parallel.
KR1020090069948A 2009-07-30 2009-07-30 Apparatus and method for parallel-processing of AES-CCM using general purpose multi-core processor KR101077972B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090069948A KR101077972B1 (en) 2009-07-30 2009-07-30 Apparatus and method for parallel-processing of AES-CCM using general purpose multi-core processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090069948A KR101077972B1 (en) 2009-07-30 2009-07-30 Apparatus and method for parallel-processing of AES-CCM using general purpose multi-core processor

Publications (2)

Publication Number Publication Date
KR20110012285A KR20110012285A (en) 2011-02-09
KR101077972B1 true KR101077972B1 (en) 2011-10-31

Family

ID=43772233

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090069948A KR101077972B1 (en) 2009-07-30 2009-07-30 Apparatus and method for parallel-processing of AES-CCM using general purpose multi-core processor

Country Status (1)

Country Link
KR (1) KR101077972B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107256363B (en) * 2017-06-13 2020-03-06 杭州华澜微电子股份有限公司 High-speed encryption and decryption device composed of encryption and decryption module array

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Proc. of the international conferencen on information technology,vol.2,IEEE, Alireza Hodjat et al Architectural Design Features of a Programmable High Throughput AES Coprocessor,pp.498-502(2004)
한국통신학회논문지 제31권 제6A호,한국통신학회,황석기(Seok-Ki Hwang) 외 2인공저, IEEE 802.11i 무선 랜 보안을 위한 AES 기반 CCMP 코어 설계, pp.640-647(2006.06.)

Also Published As

Publication number Publication date
KR20110012285A (en) 2011-02-09

Similar Documents

Publication Publication Date Title
US10552620B2 (en) Technologies for trusted I/O protection of I/O data with header information
US10142101B2 (en) Hardware enforced one-way cryptography
US10972265B2 (en) Addressing a trusted execution environment
WO2016058487A1 (en) Information processing method and apparatus
JP2013232219A (en) Methods and apparatus for secure handling of data in microcontroller
CN110430051B (en) Key storage method, device and server
JP2010140470A (en) Method and apparatus for secure processing of confidential content within virtual machine of processor
US20120144208A1 (en) Indexed table based code encrypting/decrypting device and method thereof
CN111917540B (en) Data encryption and decryption method and device, mobile terminal and storage medium
CN111656345B (en) Software module enabling encryption in container files
KR20170114582A (en) Image processing apparatus and control method thereof
CN111310213A (en) Service data protection method, device, equipment and readable storage medium
US20150113272A1 (en) Method and apparatus for authenticating and managing application using trusted platform module
WO2020073712A1 (en) Method for sharing secure application in mobile terminal, and mobile terminal
US11886574B2 (en) Using a trusted execution environment for a cryptographic key wrapping scheme that verifies remote device capabilities
CN112469036A (en) Message encryption and decryption method and device, mobile terminal and storage medium
WO2023029447A1 (en) Model protection method, device, apparatus, system and storage medium
CN110750791B (en) Method and system for guaranteeing physical attack resistance of trusted execution environment based on memory encryption
CN114124364A (en) Key security processing method, device, equipment and computer readable storage medium
JP2014081613A (en) Encryption and decryption method for session state information
US11520878B2 (en) Using a trusted execution environment for a proof-of-work key wrapping scheme that restricts execution based on device capabilities
KR101077972B1 (en) Apparatus and method for parallel-processing of AES-CCM using general purpose multi-core processor
US11341280B2 (en) Executing entity-specific cryptographic code in a cryptographic coprocessor
CN103605927A (en) Encryption and decryption method based on embedded Linux system
KR101088260B1 (en) apparatus for parallel processing ??????? using multi­core processor and method for processing thereof

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20151026

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee