KR20220071048A - ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈 및 이의 제어 방법 - Google Patents
ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈 및 이의 제어 방법 Download PDFInfo
- Publication number
- KR20220071048A KR20220071048A KR1020200158243A KR20200158243A KR20220071048A KR 20220071048 A KR20220071048 A KR 20220071048A KR 1020200158243 A KR1020200158243 A KR 1020200158243A KR 20200158243 A KR20200158243 A KR 20200158243A KR 20220071048 A KR20220071048 A KR 20220071048A
- Authority
- KR
- South Korea
- Prior art keywords
- aria
- instruction
- decryption
- encryption
- bit
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/54—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3802—Instruction prefetching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/16—Obfuscation or hiding, e.g. involving white box
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
Abstract
본 발명은 32bit 마이크로 프로세서에서 블록 암호 ARIA 연산의 수행 성능을 향상시킬 수 있도록 한 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈 및 이의 제어 방법에 관한 것으로, 명령어 패치,명령어 해석,명령어 실행을 하는 명령어 파이프라인;명령어 파이프라인에 구비되어 명령어 실행을 위한 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 ARIA 연산 모듈;을 포함하고,ARIA 연산 모듈을 통한 ARIA의 암/복호화 기능을 제공하기 위해 ARIA의 치환계층 명령어와 확산계층 명령어의 두가지 종류의 명령어를 32bit 단위 연산 명령어로 제공되고,치환계층 명령어는 ARIA 암/복호화의 짝수 라운드를 위한 명령어와 홀수 라운드를 위한 명령어 두가지를 포함하며, 확산계층은 확산계층의 짝수 서브 라운드를 위한 4종의 명령어와 홀수 서브 라운드를 위한 4종의 명령어를 포함하는 것이다.
Description
본 발명은 ARIA 블록 암호 운영에 관한 것으로, 구체적으로 32bit 마이크로 프로세서에서 블록 암호 ARIA 연산의 수행 성능을 향상시킬 수 있도록 한 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈 및 이의 제어 방법에 관한 것이다.
아리아 암호화 알고리즘은 국가 보안 기술 연구소(National Security Research Institute)에서 개발된 민관 겸용 블록 대칭키 암호화 알고리즘이다.
인터넷을 기반으로 하는 사회 및 경제적 활동이 늘어나면서, 전자 거래의 안전성과 신뢰성, 사용자 프라이버시 보호에 관한 수요가 급증하고 있다.
특히, 전자 정부 구현 등으로 국가기관과 민간(G2C, Government to Citizen) 사이에 자료소통의 필요성이 커지게 되어, 정보보호를 목적으로 블록 대칭키 암호 알고리즘인 아리아(ARIA)가 발표되었다.
아리아 암복호화 알고리즘은 암호화과정과 복호화과정이 동일한 구조로 이루어진 알고리즘으로, 라운드 연산에 의하여 암복호화 연산을 수행하며, 각 라운드 연산은 치환연산(Substitution), 확산연산(Diffusion)을 포함한다.
한편, IoT 디바이스의 확산으로 보안이 취약한 IoT 제품의 사용이 증가하고 있다. IoT 디바이스는 주로 저성능 프로세서를 사용하고 고성능 연산 기능을 요구하는 암호 알고리즘에 대응하지 못하고 있으며 보안을 지원하기 위해 프로세서 외부의 보안 모듈과의 연결이 요구되는 경우가 많다.
오픈소스 ISA인 RISC-V ISA가 등장함에 따라 IoT 디바이스와 같은 저성능 디바이스의 보안 문제의 해결을 위해 명령어 셋 레벨에서 프로세서의 보안을 강화할 수 있는 방안이 연구되고 있으나 프로세서의 동작 요구사항에 맞추어 명령어를 추가하는 것은 암호 알고리즘의 하드웨어적 구조 변경이 요구가 되기 때문에 구현이 어려운 과제이다.
이와 같은 문제를 해결하기 위한 기술 연구가 진행되고 있으나, 종래 기술의 대부분은 데이터 암/복호화에서 가장 많이 사용되는 블록암호 알고리즘에 대해서 다루고 있지 않는다는 문제점이 있다.
인텔의 AES-NI 암호 확장명령어는 블록암호 AES를 위한 128 비트 단위 연산 명령어를 제공한다.
암호화 라운드 명령어, 라운드 키 생성 명령어와 같이 하나의 명령어의 연산 단위가 크기 때문에 해당 명령어를 수행하기 위해 삽입되는 암호 모듈의 크기도 커진다.
이런 특징은 경량 IoT 디바이스와 같은 저성능 프로세서에 AES-NI를 적용할 수 없고 고성능 프로세서에만 적용이 가능하다는 것을 의미한다.
따라서, 확장 명령어의 추가가 가능한 프로세서에서 확장 명령어를 위한 국산 블록암호 알고리즘 ARIA의 효율적인 하드웨어 구조의 구현을 위한 새로운 기술의 개발이 요구되고 있다.
본 발명은 종래 기술의 ARIA 블록 암호 운영 기술의 문제점을 해결하기 위한 것으로, 32bit 마이크로 프로세서에서 블록 암호 ARIA 연산의 수행 성능을 향상시킬 수 있도록 한 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈 및 이의 제어 방법을 제공하는데 그 목적이 있다.
본 발명은 국산 블록암호 ARIA의 기본 연산 단위인 128 비트 연산을 32 비트 연산 명령으로 수행할 수 있도록 한 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈 및 이의 제어 방법을 제공하는데 그 목적이 있다.
본 발명은 추가한 32 비트 치환 계층과 확산 계층 명령어와 경량 IoT 디바이스와 같은 저성능 프로세서의 기본 연산 명령어를 이용하여 전체 ARIA 암호화를 수행할 수 있도록 한 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈 및 이의 제어 방법을 제공하는데 그 목적이 있다.
본 발명은 총 8개의 확산계층 명령어 또한 32 비트 단위 연산 명령어이기 때문에 32 비트 경량 IoT 디바이스와 같은 32 비트 체계를 가지는 저성능 프로세서에서 사용하기에 적합한 구조를 갖도록 한 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈 및 이의 제어 방법을 제공하는데 그 목적이 있다.
본 발명은 소프트웨어만을 이용한 연산 보다 빠른 속도를 가지면서 소프트웨어 명령어와 하드웨어 명령어의 조합을 통해 전체 암호화가 수행되므로 추가되는 암호모듈의 면적을 줄일 수 있도록 한 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈 및 이의 제어 방법을 제공하는데 그 목적이 있다.
본 발명의 다른 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기와 같은 목적을 달성하기 위한 본 발명에 따른 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈은 명령어 패치,명령어 해석,명령어 실행을 하는 명령어 파이프라인;명령어 파이프라인에 구비되어 명령어 실행을 위한 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 ARIA 연산 모듈;을 포함하고,ARIA 연산 모듈을 통한 ARIA의 암/복호화 기능을 제공하기 위해 ARIA의 치환계층 명령어와 확산계층 명령어의 두가지 종류의 명령어를 32bit 단위 연산 명령어로 제공되고,치환계층 명령어는 ARIA 암/복호화의 짝수 라운드를 위한 명령어와 홀수 라운드를 위한 명령어 두가지를 포함하며, 확산계층은 확산계층의 짝수 서브 라운드를 위한 4종의 명령어와 홀수 서브 라운드를 위한 4종의 명령어를 포함하는 것을 특징으로 한다.
여기서, 치환계층 2종의 명령어는 ARIA의 2가지 종류의 sbox와 그 역치환을 사용하여 구현되며, 2종의 명령어는 구현된 4개의 sbox 모듈의 제어방식만을 바꾸어 사용하는 것을 특징으로 한다.
그리고 32-bit 단위 연산 명령어로 지원되기 때문에 한 라운드에 명령어가 4번씩 사용되어 128-bit 연산을 수행하는 것을 특징으로 한다.
그리고 확산계층의 8종의 명령어는 ARIA의 확산계층 연산을 위해서 부분 행렬 간의 swap 방식을 사용하고, 각 서브 라운드 마다 32-bit 단위 연산 명령어가 4개씩 사용이 되어 128-bit 연산을 수행하고, 이전 서브 라운드의 결과값에 현재의 연산 결과값을 누적시키는 방식으로 4번의 서브 라운드가 지나면 ARIA의 확산계층 연산 결과값이 나오는 구조를 갖는 것을 특징으로 한다.
다른 목적을 달성하기 위한 본 발명에 따른 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈의 제어 방법은 32-bit 단위 연산을 위한 ARIA 치환 계층 및 확산 계층 명령어 연산을 위하여, ARIA 암/복호화 연산을 위한 라운드 함수 실행은 ARIA의 홀/짝수 라운드를 위한 치환 계층 확장 명령어 연산을 하는 ARIA 암/복호화를 위한 치환 계층 함수 실행 단계;ARIA의 단일 라운드에 대한 홀수 서브 라운드 확산 계층 확장 명령어 연산 및 ARIA의 단일 라운드에 대한 짝수 서브 라운드 확산 계층 확장 명령어 연산을 하는 ARIA 암/복호화를 위한 확산 계층 함수 실행 단계;를 포함하는 것을 특징으로 한다.
여기서, 프로세서의 명령어 파이프라인 과정 중 명령어 실행 단계에서 동작하는 블록암호 ARIA 전용 연산 장치에서 ARIA 고속 암/복호화를 지원하는 확장 명령어 셋은, 32-bit 치환 계층 명령어와 32-bit 확산 계층 명령어로 구성되는 것을 특징으로 한다.
그리고 치환 계층 명령어는 홀수 라운드와 짝수 라운드를 위한 2개의 하위 명령어로 구성되며 확산 계층은 홀수 서브 라운드와 짝수 서브 라운드를 위한 8개의 하위 명령어로 구성되는 것을 특징으로 한다.
그리고 치환계층 명령어의 경우에는 치환계층 연산을 위해 사용되는 4종류의 SBOX 연산 모듈을 구현하고, 홀수 라운드와 짝수 라운드에서 사용되는 서로 다른 유형의 치환계층 연산을 지원하기 위해 멀티플렉싱을 통해 32 비트 단위 연산 명령어가 구현되도록 하는 것을 특징으로 한다.
그리고 치환 계층 명령어를 지원하기 위해서 SBOX의 구현은 S1, S2 두개의 SBOX와 그 역을 포함한 4개의 SBOX로 구성되며, 각 SBOX는 하드웨어상으로 단일 모듈로 구현되며 2개의 치환 계층 명령어에서 사용될 때는 내부 제어 신호를 통해 모듈의 입력과 출력이 변경되는 방식으로 동작하는 것을 특징으로 한다.
그리고 확산 계층 명령어는 홀수 서브 라운드에서 각 4*4 행렬의 연산을 위한 명령어가 하나씩 존재하므로 총 4개의 명령어가 사용되고 짝수 서브 라운드에서도 각 4*4 행렬의 연산을 위한 명령어가 하나씩 존재하므로 총 4개의 명령어가 사용되는 것을 특징으로 한다.
그리고 한 라운드의 연산을 위해서 홀수 서브 라운드 명령어와 짝수 서브 라운드 명령어가 교대로 사용되는 것을 특징으로 한다.
이상에서 설명한 바와 같은 본 발명에 따른 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈 및 이의 제어 방법은 다음과 같은 효과가 있다.
첫째, 프로세서의 성능저하 없이 국산 블록암호 알고리즘 ARIA를 이용하는 어플리케이션에서 고속의 암/복호화 연산이 가능하도록 한다.
둘째, 국산 블록암호 ARIA의 기본 연산 단위인 128 비트 연산을 32 비트 연산 명령으로 수행할 수 있도록 하고, 32bit 마이크로 프로세서에서 블록 암호 ARIA 연산의 수행 성능을 향상시킬 수 있도록 한다.
셋째, 추가한 32 비트 치환 계층과 확산 계층 명령어와 경량 IoT 디바이스와 같은 저성능 프로세서의 기본 연산 명령어를 이용하여 전체 ARIA 암호화를 수행할 수 있도록 한다.
넷째, 총 8개의 확산계층 명령어 또한 32 비트 단위 연산 명령어이기 때문에 32 비트 경량 IoT 디바이스와 같은 32 비트 체계를 가지는 저성능 프로세서에서 사용하기에 적합한 구조를 갖도록 한다.
다섯째, 소프트웨어만을 이용한 연산 보다 빠른 속도를 가지면서 소프트웨어 명령어와 하드웨어 명령어의 조합을 통해 전체 암호화가 수행되므로 추가되는 암호모듈의 면적을 줄일 수 있도록 한다.
도 1은 본 발명에 따른 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈 구성도
도 2는 ARIA의 라운드 함수 연산을 위해 사용되는 ARIA 확장 명령어의 실행 순서도
도 3은 32-bit 치환 계층 명령어 2종을 지원하는 모듈의 구조도
도 4는 확산 계층의 32-bit 홀수 서브 라운드 명령어와 32-bit 짝수 서브 라운드 명령어를 지원하는 모듈의 구조도
도 5는 확산 계층 명령어의 첫번째 서브 라운드의 동작 방식을 나타낸 구성도
도 6은 확산 계층 명령어의 두번째 서브 라운드의 동작 방식을 나타낸 구성도
도 7은 확산 계층 명령어의 세번째 서브 라운드의 동작 방식을 나타낸 구성도
도 8은 확산 계층 명령어의 네번째 서브 라운드의 동작 방식을 나타낸 구성도
도 2는 ARIA의 라운드 함수 연산을 위해 사용되는 ARIA 확장 명령어의 실행 순서도
도 3은 32-bit 치환 계층 명령어 2종을 지원하는 모듈의 구조도
도 4는 확산 계층의 32-bit 홀수 서브 라운드 명령어와 32-bit 짝수 서브 라운드 명령어를 지원하는 모듈의 구조도
도 5는 확산 계층 명령어의 첫번째 서브 라운드의 동작 방식을 나타낸 구성도
도 6은 확산 계층 명령어의 두번째 서브 라운드의 동작 방식을 나타낸 구성도
도 7은 확산 계층 명령어의 세번째 서브 라운드의 동작 방식을 나타낸 구성도
도 8은 확산 계층 명령어의 네번째 서브 라운드의 동작 방식을 나타낸 구성도
이하, 본 발명에 따른 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈 및 이의 제어 방법의 바람직한 실시 예에 관하여 상세히 설명하면 다음과 같다.
본 발명에 따른 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈 및 이의 제어 방법의 특징 및 이점들은 이하에서의 각 실시 예에 대한 상세한 설명을 통해 명백해질 것이다.
도 1은 본 발명에 따른 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈 구성도이다.
본 발명에 따른 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈 및 이의 제어 방법은 암호 가속을 위해 벡터 기반 확장 명령어를 활용하였던 기존 구조와 달리, 32bit 연산 체계에서 하드웨어와 소프트웨어의 조합에 의한 고속화 모델을 제시함에 따라 더욱 경량화된 환경에서 고속의 ARIA 블록 암호 운영을 지원할 수 있도록 한 것이다.
이를 구현하기 위해 본 발명은 치환계층 명령어의 경우에는 치환계층 연산을 위해 사용되는 4종류의 SBOX 연산 모듈을 구현하고, 홀수 라운드와 짝수 라운드에서 사용되는 서로 다른 유형의 치환계층 연산을 지원하기 위해 멀티플렉싱을 통해 32 비트 단위 연산 명령어가 구현되도록 하는 구성을 포함할 수 있다.
본 발명은 확산계층 명령어의 경우에는 홀수 라운드와 짝수 라운드에 대한 구분은 없지만 한 라운드의 연산을 나누어서 수행하기 위해 4개의 서브 라운드로 분리를 하였고 홀수 서브 라운드와 짝수 서브 라운드 연산을 위한 명령어가 4개씩 각각 구현되도록 하는 구성을 포함할 수 있다.
본 발명에 따른 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈 구성은 도 1에서와 같이, 명령어 메모리와 데이터 메모리 사이에 명령어 파이프라인(100)이 위치하고, 명령어 파이프라인(100)은 명령어 패치(120),명령어 해석(130),명령어 실행(140)으로 명령어 실행을 하고, 명령어 실행(140)을 위한 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 ARIA 연산 모듈(110)이 구비된다.
ARIA 연산 모듈(110)을 통한 ARIA의 암/복호화 기능을 제공하기 위해 ARIA의 치환계층 명령어와 확산계층 명령어의 두가지 종류의 명령어를 32bit 단위 연산 명령어로 제공되고, 치환계층 명령어는 ARIA 암/복호화의 짝수 라운드를 위한 명령어와 홀수 라운드를 위한 명령어 두가지를 포함하며, 확산계층은 확산계층의 짝수 서브 라운드를 위한 4종의 명령어와 홀수 서브 라운드를 위한 4종의 명령어를 포함한다.
치환계층 2종의 명령어는 ARIA의 2가지 종류의 sbox와 그 역치환을 사용하여 구현되며 2종의 명령어는 구현된 4개의 sbox 모듈의 제어방식만을 바꾸어 사용하기 때문에 중복되는 모듈의 구현이 없는 효율적인 구조를 가진다.
또한, 32-bit 단위 연산 명령어로 지원되기 때문에 한 라운드에 명령어가 4번씩 사용 되어 128-bit 연산을 수행한다.
확산계층의 8종의 명령어는 ARIA의 확산계층 연산을 위해서 부분 행렬 간의 swap 방식을 사용하고 각 서브 라운드 마다 32-bit 단위 연산 명령어가 4개씩 사용이 되어 128-bit 연산을 수행한다.
이전 서브 라운드의 결과값에 현재의 연산 결과값을 누적시키는 방식으로 4번의 서브 라운드가 지나면 ARIA의 확산계층 연산 결과값이 나오는 구조를 가진다.
이와 같은 본 발명은 본 발명에 따른 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈은 총 8개의 확산계층 명령어 또한 32 비트 단위 연산 명령어이기 때문에 32 비트 경량 IoT 디바이스와 같은 32 비트 체계를 가지는 저성능 프로세서에서 사용하기에 적합한 구조를 갖는다.
특히, 기존 소프트웨어만을 이용한 연산 보다 빠른 속도를 가지면서 소프트웨어 명령어와 하드웨어 명령어의 조합을 통해 전체 암호화가 수행되므로 추가되는 암호모듈의 면적 또한 작다는 장점을 갖는다.
도 2는 ARIA의 라운드 함수 연산을 위해 사용되는 ARIA 확장 명령어의 실행 순서도이다.
32-bit 단위 연산을 위한 ARIA 치환 계층 및 확산 계층 명령어 연산을 위하여, ARIA 암/복호화 연산을 위한 라운드 함수(200) 실행은 ARIA의 홀/짝수 라운드를 위한 치환 계층 확장 명령어(211) 연산을 하는 ARIA 암/복호화를 위한 치환 계층 함수(210) 실행 단계와, ARIA의 단일 라운드에 대한 홀수 서브 라운드 확산 계층 확장 명령어(221) 연산 및 ARIA의 단일 라운드에 대한 짝수 서브 라운드 확산 계층 확장 명령어(222) 연산을 하는 ARIA 암/복호화를 위한 확산 계층 함수(220) 실행 단계를 포함한다.
이와 같이, 프로세서의 명령어 파이프라인 과정 중 명령어 실행 단계에서 동작하는 블록암호 ARIA 전용 연산 장치에서, ARIA 고속 암/복호화를 지원하는 확장 명령어 셋은, 32-bit 치환 계층 명령어와 32-bit 확산 계층 명령어로 구성된다.
치환 계층 명령어는 홀수 라운드와 짝수 라운드를 위한 2개의 하위 명령어로 구성되며 확산 계층은 홀수 서브 라운드와 짝수 서브 라운드를 위한 8개의 하위 명령어로 구성된다.
도 3은 32-bit 치환 계층 명령어 2종을 지원하는 모듈의 구조도이고, 도 4는 확산 계층의 32-bit 홀수 서브 라운드 명령어와 32-bit 짝수 서브 라운드 명령어를 지원하는 모듈의 구조도이다.
본 발명은 치환계층 명령어의 경우에는 치환계층 연산을 위해 사용되는 4종류의 SBOX 연산 모듈을 구현하고, 홀수 라운드와 짝수 라운드에서 사용되는 서로 다른 유형의 치환계층 연산을 지원하기 위해 멀티플렉싱을 통해 32 비트 단위 연산 명령어가 구현되도록 하는 구성을 포함할 수 있다.
치환 계층 명령어를 지원하기 위해서 sbox의 구현은 S1, S2 두개의 sbox와 그 역을 포함한 4개의 sbox로 구성되며 각 sbox는 하드웨어상으로 단일 모듈로 구현되며 2개의 치환 계층 명령어에서 사용될 때는 내부 제어 신호를 통해 모듈의 입력과 출력이 변경되는 방식으로 동작한다.
본 발명은 확산계층 명령어의 경우에는 홀수 라운드와 짝수 라운드에 대한 구분은 없지만 한 라운드의 연산을 나누어서 수행하기 위해 4개의 서브 라운드로 분리를 하였고 홀수 서브 라운드와 짝수 서브 라운드 연산을 위한 명령어가 4개씩 각각 구현되도록 하는 구성을 포함할 수 있다.
도 5는 확산 계층 명령어의 첫번째 서브 라운드의 동작 방식을 나타낸 구성도이고, 도 6은 확산 계층 명령어의 두번째 서브 라운드의 동작 방식을 나타낸 구성도이다.
그리고 도 7은 확산 계층 명령어의 세번째 서브 라운드의 동작 방식을 나타낸 구성도이고, 도 8은 확산 계층 명령어의 네번째 서브 라운드의 동작 방식을 나타낸 구성도이다.
확산 계층 명령어는 홀수 서브 라운드에서 각 4*4 행렬의 연산을 위한 명령어가 하나씩 존재하므로 총 4개의 명령어가 사용되고 짝수 서브 라운드에서도 각 4*4 행렬의 연산을 위한 명령어가 하나씩 존재하므로 총 4개의 명령어가 사용된다.
한 라운드의 연산을 위해서는 홀수 서브 라운드 명령어와 짝수 서브 라운드 명령어가 교대로 사용되어야 한다.
이와 같은 본 발명은 암호 가속을 위해 벡터 기반 확장 명령어를 활용하였던 기존 구조와 달리, 32bit 연산 체계에서 하드웨어와 소프트웨어의 조합에 의한 고속화 모델을 제시함에 따라 더욱 경량화된 환경에서 고속의 ARIA 블록 암호 운영을 지원한다.
이상에서 설명한 본 발명에 따른 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈 및 이의 제어 방법은 32bit 마이크로 프로세서에서 블록 암호 ARIA 연산의 수행 성능을 향상시킬 수 있도록 한 것이다.
본 발명은 국산 블록암호 ARIA의 기본 연산 단위인 128 비트 연산을 32 비트 연산 명령으로 수행할 수 있도록 하여 32 비트 경량 IoT 디바이스와 같은 32 비트 체계를 가지는 저성능 프로세서에서 사용하기에 적합한 구조를 갖도록 한 것이다.
이상에서의 설명에서와 같이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 본 발명이 구현되어 있음을 이해할 수 있을 것이다.
그러므로 명시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 하고, 본 발명의 범위는 전술한 설명이 아니라 특허청구 범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
100. 명령어 파이프라인 110. ARIA 연산 모듈
Claims (11)
- 명령어 패치,명령어 해석,명령어 실행을 하는 명령어 파이프라인;
명령어 파이프라인에 구비되어 명령어 실행을 위한 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 ARIA 연산 모듈;을 포함하고,
ARIA 연산 모듈을 통한 ARIA의 암/복호화 기능을 제공하기 위해 ARIA의 치환계층 명령어와 확산계층 명령어의 두가지 종류의 명령어를 32bit 단위 연산 명령어로 제공되고,
치환계층 명령어는 ARIA 암/복호화의 짝수 라운드를 위한 명령어와 홀수 라운드를 위한 명령어 두가지를 포함하며, 확산계층은 확산계층의 짝수 서브 라운드를 위한 4종의 명령어와 홀수 서브 라운드를 위한 4종의 명령어를 포함하는 것을 특징으로 하는 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈. - 제 1 항에 있어서, 치환계층 2종의 명령어는 ARIA의 2가지 종류의 sbox와 그 역치환을 사용하여 구현되며, 2종의 명령어는 구현된 4개의 sbox 모듈의 제어방식만을 바꾸어 사용하는 것을 특징으로 하는 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈.
- 제 1 항에 있어서, 32-bit 단위 연산 명령어로 지원되기 때문에 한 라운드에 명령어가 4번씩 사용 되어 128-bit 연산을 수행하는 것을 특징으로 하는 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈.
- 제 1 항에 있어서, 확산계층의 8종의 명령어는 ARIA의 확산계층 연산을 위해서 부분 행렬 간의 swap 방식을 사용하고, 각 서브 라운드 마다 32-bit 단위 연산 명령어가 4개씩 사용이 되어 128-bit 연산을 수행하고,
이전 서브 라운드의 결과값에 현재의 연산 결과값을 누적시키는 방식으로 4번의 서브 라운드가 지나면 ARIA의 확산계층 연산 결과값이 나오는 구조를 갖는 것을 특징으로 하는 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈. - 32-bit 단위 연산을 위한 ARIA 치환 계층 및 확산 계층 명령어 연산을 위하여,
ARIA 암/복호화 연산을 위한 라운드 함수 실행은 ARIA의 홀/짝수 라운드를 위한 치환 계층 확장 명령어 연산을 하는 ARIA 암/복호화를 위한 치환 계층 함수 실행 단계;
ARIA의 단일 라운드에 대한 홀수 서브 라운드 확산 계층 확장 명령어 연산 및 ARIA의 단일 라운드에 대한 짝수 서브 라운드 확산 계층 확장 명령어 연산을 하는 ARIA 암/복호화를 위한 확산 계층 함수 실행 단계;를 포함하는 것을 특징으로 하는 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈의 제어 방법. - 제 5 항에 있어서, 프로세서의 명령어 파이프라인 과정 중 명령어 실행 단계에서 동작하는 블록암호 ARIA 전용 연산 장치에서 ARIA 고속 암/복호화를 지원하는 확장 명령어 셋은, 32-bit 치환 계층 명령어와 32-bit 확산 계층 명령어로 구성되는 것을 특징으로 하는 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈의 제어 방법.
- 제 6 항에 있어서, 치환 계층 명령어는 홀수 라운드와 짝수 라운드를 위한 2개의 하위 명령어로 구성되며 확산 계층은 홀수 서브 라운드와 짝수 서브 라운드를 위한 8개의 하위 명령어로 구성되는 것을 특징으로 하는 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈의 제어 방법.
- 제 7 항에 있어서, 치환계층 명령어의 경우에는 치환계층 연산을 위해 사용되는 4종류의 SBOX 연산 모듈을 구현하고,
홀수 라운드와 짝수 라운드에서 사용되는 서로 다른 유형의 치환계층 연산을 지원하기 위해 멀티플렉싱을 통해 32 비트 단위 연산 명령어가 구현되도록 하는 것을 특징으로 하는 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈의 제어 방법. - 제 8 항에 있어서, 치환 계층 명령어를 지원하기 위해서 SBOX의 구현은 S1, S2 두개의 SBOX와 그 역을 포함한 4개의 SBOX로 구성되며,
각 SBOX는 하드웨어상으로 단일 모듈로 구현되며 2개의 치환 계층 명령어에서 사용될 때는 내부 제어 신호를 통해 모듈의 입력과 출력이 변경되는 방식으로 동작하는 것을 특징으로 하는 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈의 제어 방법. - 제 6 항에 있어서, 확산 계층 명령어는 홀수 서브 라운드에서 각 4*4 행렬의 연산을 위한 명령어가 하나씩 존재하므로 총 4개의 명령어가 사용되고 짝수 서브 라운드에서도 각 4*4 행렬의 연산을 위한 명령어가 하나씩 존재하므로 총 4개의 명령어가 사용되는 것을 특징으로 하는 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈의 제어 방법.
- 제 6 항에 있어서, 한 라운드의 연산을 위해서 홀수 서브 라운드 명령어와 짝수 서브 라운드 명령어가 교대로 사용되는 것을 특징으로 하는 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈의 제어 방법.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200158243A KR102457166B1 (ko) | 2020-11-23 | 2020-11-23 | ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈 및 이의 제어 방법 |
PCT/KR2020/017191 WO2022107972A1 (ko) | 2020-11-23 | 2020-11-27 | Aria의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈 및 이의 제어 방법 |
US17/510,884 US11392706B2 (en) | 2020-11-23 | 2021-10-26 | Hardware module and its control method with a 32-bit instruction extension for processor supporting ARIA encryption and decryption |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200158243A KR102457166B1 (ko) | 2020-11-23 | 2020-11-23 | ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈 및 이의 제어 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220071048A true KR20220071048A (ko) | 2022-05-31 |
KR102457166B1 KR102457166B1 (ko) | 2022-10-20 |
Family
ID=81658349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200158243A KR102457166B1 (ko) | 2020-11-23 | 2020-11-23 | ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈 및 이의 제어 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11392706B2 (ko) |
KR (1) | KR102457166B1 (ko) |
WO (1) | WO2022107972A1 (ko) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070063713A (ko) * | 2005-12-15 | 2007-06-20 | 주식회사 팬택앤큐리텔 | 아리아 알고리즘을 이용한 블록 암호화 장치 |
KR100734877B1 (ko) * | 2005-08-19 | 2007-07-03 | 한국전자통신연구원 | Aria 암호 모듈 및 그 방법 |
KR100786391B1 (ko) | 2006-09-28 | 2007-12-17 | 한국전자통신연구원 | 고속 아리아 블록 암호화/복호화 장치 |
KR20090021972A (ko) | 2007-08-29 | 2009-03-04 | (주) 임베디드 솔루션 | 데이터 암호화와 인증이 가능한 아리아 암호화 방법 및이를 수행하기 위한 시스템 |
US20090161864A1 (en) * | 2007-12-20 | 2009-06-25 | Sang-Woo Lee | Block cipher aria substitution apparatus and method |
KR20100068902A (ko) | 2008-12-15 | 2010-06-24 | 한국전자통신연구원 | 하이브리드 방식의 치환박스 연산장치를 포함하는 아리아 암복호화 장치 및 방법. |
KR20110026929A (ko) * | 2009-09-09 | 2011-03-16 | 부경대학교 산학협력단 | 산술 쉬프트 레지스터를 이용한 안전성이 향상된 새로운 32비트 스트림 암호 설계 방법 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4216445B2 (ja) * | 2000-07-13 | 2009-01-28 | 株式会社東芝 | パラメータ決定装置、パラメータ決定方法、および暗号化/復号装置 |
US7826613B2 (en) * | 2002-08-19 | 2010-11-02 | Qualcomm Incorporated | Stream cipher cryptographic system and method |
US8923510B2 (en) * | 2007-12-28 | 2014-12-30 | Intel Corporation | Method and apparatus for efficiently implementing the advanced encryption standard |
CN104011709B (zh) * | 2011-12-22 | 2018-06-05 | 英特尔公司 | 在256位数据路径中执行jh加密散列的指令 |
CN103490877A (zh) * | 2013-09-05 | 2014-01-01 | 北京航空航天大学 | 基于cuda的aria对称分组密码算法并行化方法 |
US9577832B2 (en) * | 2014-07-31 | 2017-02-21 | Netronome Systems, Inc. | Generating a hash using S-box nonlinearizing of a remainder input |
US9467279B2 (en) * | 2014-09-26 | 2016-10-11 | Intel Corporation | Instructions and logic to provide SIMD SM4 cryptographic block cipher functionality |
US9996708B2 (en) * | 2015-06-26 | 2018-06-12 | Intel Corporation | SMS4 acceleration processors having encryption and decryption mapped on a same hardware |
US10797858B2 (en) * | 2018-02-02 | 2020-10-06 | Intel Corporation | Unified hardware accelerator for symmetric-key ciphers |
-
2020
- 2020-11-23 KR KR1020200158243A patent/KR102457166B1/ko active IP Right Grant
- 2020-11-27 WO PCT/KR2020/017191 patent/WO2022107972A1/ko active Application Filing
-
2021
- 2021-10-26 US US17/510,884 patent/US11392706B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100734877B1 (ko) * | 2005-08-19 | 2007-07-03 | 한국전자통신연구원 | Aria 암호 모듈 및 그 방법 |
KR20070063713A (ko) * | 2005-12-15 | 2007-06-20 | 주식회사 팬택앤큐리텔 | 아리아 알고리즘을 이용한 블록 암호화 장치 |
KR100786391B1 (ko) | 2006-09-28 | 2007-12-17 | 한국전자통신연구원 | 고속 아리아 블록 암호화/복호화 장치 |
KR20090021972A (ko) | 2007-08-29 | 2009-03-04 | (주) 임베디드 솔루션 | 데이터 암호화와 인증이 가능한 아리아 암호화 방법 및이를 수행하기 위한 시스템 |
US20090161864A1 (en) * | 2007-12-20 | 2009-06-25 | Sang-Woo Lee | Block cipher aria substitution apparatus and method |
KR20100068902A (ko) | 2008-12-15 | 2010-06-24 | 한국전자통신연구원 | 하이브리드 방식의 치환박스 연산장치를 포함하는 아리아 암복호화 장치 및 방법. |
KR20110026929A (ko) * | 2009-09-09 | 2011-03-16 | 부경대학교 산학협력단 | 산술 쉬프트 레지스터를 이용한 안전성이 향상된 새로운 32비트 스트림 암호 설계 방법 |
Also Published As
Publication number | Publication date |
---|---|
WO2022107972A1 (ko) | 2022-05-27 |
US11392706B2 (en) | 2022-07-19 |
KR102457166B1 (ko) | 2022-10-20 |
US20220164454A1 (en) | 2022-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Neve et al. | Advances on access-driven cache attacks on AES | |
US9628265B2 (en) | Encryption processing device and method capable of defending differential power analysis attack | |
CN111324383B (zh) | 一种基于risc-v指令扩展的安全协处理器结构 | |
EP3550764A1 (en) | Hardware accelerators and methods for high-performance authenticated encryption | |
US8971526B2 (en) | Method of counter-measuring against side-channel attacks | |
US9515820B2 (en) | Protection against side channels | |
US20200412523A1 (en) | Platform neutral data encryption standard (des) cryptographic operation | |
US9619658B2 (en) | Homomorphically encrypted one instruction computation systems and methods | |
US8699702B2 (en) | Securing cryptographic process keys using internal structures | |
Agosta et al. | Record setting software implementation of DES using CUDA | |
Bluhm et al. | Fast software implementation of binary elliptic curve cryptography | |
Wen | Security analysis of a color image encryption scheme based on skew tent map and hyper chaotic system of 6th-order CNN against chosen-plaintext attack | |
Karroumi et al. | Addition with blinded operands | |
Pachori et al. | Improved performance of advance encryption standard using parallel computing | |
Tezcan | Key lengths revisited: GPU-based brute force cryptanalysis of DES, 3DES, and PRESENT | |
CN106462701B (zh) | 以抵抗外部监视攻击的方式执行密码编译数据处理操作 | |
US11463236B2 (en) | Programmable block cipher with masked inputs | |
KR102457166B1 (ko) | ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈 및 이의 제어 방법 | |
Fukushima et al. | Fault injection attack on Salsa20 and ChaCha and a lightweight countermeasure | |
US10341085B2 (en) | Software protection against differential fault analysis | |
Kim et al. | An efficient implementation of AES on 8-Bit AVR-based sensor nodes | |
Gao et al. | Cache-collision attacks on GPU-based AES implementation with electro-magnetic leakages | |
WO2020181002A1 (en) | Side-channel-attack-resistant memory access on embedded central processing units | |
CN107203487B (zh) | 一种抗功耗攻击的安全可重构架构 | |
Wadi et al. | A low cost implementation of modified advanced encryption standard algorithm using 8085A microprocessor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |