KR20220071048A - ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈 및 이의 제어 방법 - Google Patents

ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈 및 이의 제어 방법 Download PDF

Info

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
Application number
KR1020200158243A
Other languages
English (en)
Other versions
KR102457166B1 (ko
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 KR1020200158243A priority Critical patent/KR102457166B1/ko
Priority to PCT/KR2020/017191 priority patent/WO2022107972A1/ko
Priority to US17/510,884 priority patent/US11392706B2/en
Publication of KR20220071048A publication Critical patent/KR20220071048A/ko
Application granted granted Critical
Publication of KR102457166B1 publication Critical patent/KR102457166B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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/54Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/72Protecting 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
    • 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
    • G06F9/3802Instruction prefetching
    • 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/12Details relating to cryptographic hardware or logic circuitry
    • 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/16Obfuscation or hiding, e.g. involving white box
    • 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/24Key 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 확장 명령어 체계를 갖는 하드웨어 모듈 및 이의 제어 방법{Hardware module and its control method with a 32bit instruction extension for processor supporting ARIA encryption and decryption}
본 발명은 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의 효율적인 하드웨어 구조의 구현을 위한 새로운 기술의 개발이 요구되고 있다.
대한민국 공개특허 제10-2009-0021972호 대한민국 등록특허 제10-0786391호 대한민국 공개특허 제10-2010-0068902호
본 발명은 종래 기술의 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은 확산 계층 명령어의 네번째 서브 라운드의 동작 방식을 나타낸 구성도
이하, 본 발명에 따른 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)

  1. 명령어 패치,명령어 해석,명령어 실행을 하는 명령어 파이프라인;
    명령어 파이프라인에 구비되어 명령어 실행을 위한 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 ARIA 연산 모듈;을 포함하고,
    ARIA 연산 모듈을 통한 ARIA의 암/복호화 기능을 제공하기 위해 ARIA의 치환계층 명령어와 확산계층 명령어의 두가지 종류의 명령어를 32bit 단위 연산 명령어로 제공되고,
    치환계층 명령어는 ARIA 암/복호화의 짝수 라운드를 위한 명령어와 홀수 라운드를 위한 명령어 두가지를 포함하며, 확산계층은 확산계층의 짝수 서브 라운드를 위한 4종의 명령어와 홀수 서브 라운드를 위한 4종의 명령어를 포함하는 것을 특징으로 하는 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈.
  2. 제 1 항에 있어서, 치환계층 2종의 명령어는 ARIA의 2가지 종류의 sbox와 그 역치환을 사용하여 구현되며, 2종의 명령어는 구현된 4개의 sbox 모듈의 제어방식만을 바꾸어 사용하는 것을 특징으로 하는 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈.
  3. 제 1 항에 있어서, 32-bit 단위 연산 명령어로 지원되기 때문에 한 라운드에 명령어가 4번씩 사용 되어 128-bit 연산을 수행하는 것을 특징으로 하는 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈.
  4. 제 1 항에 있어서, 확산계층의 8종의 명령어는 ARIA의 확산계층 연산을 위해서 부분 행렬 간의 swap 방식을 사용하고, 각 서브 라운드 마다 32-bit 단위 연산 명령어가 4개씩 사용이 되어 128-bit 연산을 수행하고,
    이전 서브 라운드의 결과값에 현재의 연산 결과값을 누적시키는 방식으로 4번의 서브 라운드가 지나면 ARIA의 확산계층 연산 결과값이 나오는 구조를 갖는 것을 특징으로 하는 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈.
  5. 32-bit 단위 연산을 위한 ARIA 치환 계층 및 확산 계층 명령어 연산을 위하여,
    ARIA 암/복호화 연산을 위한 라운드 함수 실행은 ARIA의 홀/짝수 라운드를 위한 치환 계층 확장 명령어 연산을 하는 ARIA 암/복호화를 위한 치환 계층 함수 실행 단계;
    ARIA의 단일 라운드에 대한 홀수 서브 라운드 확산 계층 확장 명령어 연산 및 ARIA의 단일 라운드에 대한 짝수 서브 라운드 확산 계층 확장 명령어 연산을 하는 ARIA 암/복호화를 위한 확산 계층 함수 실행 단계;를 포함하는 것을 특징으로 하는 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈의 제어 방법.
  6. 제 5 항에 있어서, 프로세서의 명령어 파이프라인 과정 중 명령어 실행 단계에서 동작하는 블록암호 ARIA 전용 연산 장치에서 ARIA 고속 암/복호화를 지원하는 확장 명령어 셋은, 32-bit 치환 계층 명령어와 32-bit 확산 계층 명령어로 구성되는 것을 특징으로 하는 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈의 제어 방법.
  7. 제 6 항에 있어서, 치환 계층 명령어는 홀수 라운드와 짝수 라운드를 위한 2개의 하위 명령어로 구성되며 확산 계층은 홀수 서브 라운드와 짝수 서브 라운드를 위한 8개의 하위 명령어로 구성되는 것을 특징으로 하는 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈의 제어 방법.
  8. 제 7 항에 있어서, 치환계층 명령어의 경우에는 치환계층 연산을 위해 사용되는 4종류의 SBOX 연산 모듈을 구현하고,
    홀수 라운드와 짝수 라운드에서 사용되는 서로 다른 유형의 치환계층 연산을 지원하기 위해 멀티플렉싱을 통해 32 비트 단위 연산 명령어가 구현되도록 하는 것을 특징으로 하는 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈의 제어 방법.
  9. 제 8 항에 있어서, 치환 계층 명령어를 지원하기 위해서 SBOX의 구현은 S1, S2 두개의 SBOX와 그 역을 포함한 4개의 SBOX로 구성되며,
    각 SBOX는 하드웨어상으로 단일 모듈로 구현되며 2개의 치환 계층 명령어에서 사용될 때는 내부 제어 신호를 통해 모듈의 입력과 출력이 변경되는 방식으로 동작하는 것을 특징으로 하는 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈의 제어 방법.
  10. 제 6 항에 있어서, 확산 계층 명령어는 홀수 서브 라운드에서 각 4*4 행렬의 연산을 위한 명령어가 하나씩 존재하므로 총 4개의 명령어가 사용되고 짝수 서브 라운드에서도 각 4*4 행렬의 연산을 위한 명령어가 하나씩 존재하므로 총 4개의 명령어가 사용되는 것을 특징으로 하는 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈의 제어 방법.
  11. 제 6 항에 있어서, 한 라운드의 연산을 위해서 홀수 서브 라운드 명령어와 짝수 서브 라운드 명령어가 교대로 사용되는 것을 특징으로 하는 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈의 제어 방법.
KR1020200158243A 2020-11-23 2020-11-23 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈 및 이의 제어 방법 KR102457166B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (7)

* Cited by examiner, † Cited by third party
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