KR101186335B1 - 하이브리드 방식의 치환박스 연산장치를 포함하는 아리아 암복호화 장치 및 방법. - Google Patents

하이브리드 방식의 치환박스 연산장치를 포함하는 아리아 암복호화 장치 및 방법. Download PDF

Info

Publication number
KR101186335B1
KR101186335B1 KR1020080127415A KR20080127415A KR101186335B1 KR 101186335 B1 KR101186335 B1 KR 101186335B1 KR 1020080127415 A KR1020080127415 A KR 1020080127415A KR 20080127415 A KR20080127415 A KR 20080127415A KR 101186335 B1 KR101186335 B1 KR 101186335B1
Authority
KR
South Korea
Prior art keywords
inverse
value
affine
substitution box
affine transformation
Prior art date
Application number
KR1020080127415A
Other languages
English (en)
Other versions
KR20100068902A (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 KR1020080127415A priority Critical patent/KR101186335B1/ko
Publication of KR20100068902A publication Critical patent/KR20100068902A/ko
Application granted granted Critical
Publication of KR101186335B1 publication Critical patent/KR101186335B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/726Inversion; Reciprocal calculation; Division of elements of a finite field

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 하이브리드 방식의 치환박스(Substitution box) 연산장치를 포함하는 아리아 암복호화 장치 및 방법에 관한 것이다. 본 발명에 따른 하이브리드 방식의 치환박스 연산장치를 포함하는 아리아 암복호화 장치 및 방법은, 아리아 암복호화 알고리즘의 테이블 변환방식의 치환연산을 아핀변환, 역아핀변환 및 유한체 역원연산을 포함한 조합회로로 변경한다. 이에 의해, 본 발명은 유한체 역원연산을 테이블 변환방식으로 하여 암복호화 시간의 지연을 방지하면서, 치환박스 및 치환연산용 테이블의 저장공간을 줄여 아리아 암복호화 장치의 하드웨어를 소형화 할 수 있다.
아리아, 암호화, 복호화, 대치연산, 아핀변환, 역아핀변환, 유한체 역원연산 테이블

Description

하이브리드 방식의 치환박스 연산장치를 포함하는 아리아 암복호화 장치 및 방법.{Apparatus and method for ARIA cipher with hybrid substitution box module}
본 발명은 아리아 암복호화 장치의 경량화 및 고속화를 위해, 아리아 암복호화 알고리즘의 테이블변환 방식의 치환연산을 아핀연산, 역아핀연산 및 테이블변환 방식의 유한체 역원변환을 포함한 연산방식으로 변경한 아리아 암복호화 장치 및 방법에 관한 것이다.
본 발명은 지식경제부 및 정보통신연구진흥원의 IT 원천기술개발 사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2008-F-036-01, 과제명: 익명성 기반의 u지식정보보호기술 개발].
아리아 암복호화 알고리즘은 국가 보안 기술 연구소(NSRI)에서 개발된 민관 겸용 블록 대칭키 암호 알고리즘이다.
일반적으로 아리아 암복호화 알고리즘에서는 라운드의 수와 마스터키의 크기에 대해, 마스터키가 128비트이면 12라운드 연산, 마스터키가 192비트이면 14라운드 연산, 마스터키가 256비트이면 16라운드 연산을 사용하도록 권고하고 있다.
아리아 암복호화 알고리즘은 암호화과정과 복호화과정이 동일한 구조로 이루어진 알고리즘으로, 라운드 연산에 의하여 암복호화 연산을 수행하며, 각 라운드 연산은 치환연산(Substitution), 확산연산(Diffusion)을 포함한다.
치환연산은 입력값을 미리 정의된 다른 값으로 변경하는 연산을 말하며, 아리아 암복호화 알고리즘의 치환연산은 비트 단위로 수행되며, 홀수 라운드와 짝수 라운드에 서로 다른 치환연산을 사용한다. 치환연산은 각 바이트별로 치환방법이 정의된 치환박스의 조합으로 구성된 변환테이블을 사용한다.
확산연산은 미리 정의된 연산에 의해 입력값의 문자열 위치를 변경하는 연산을 말한다. 아리아 암복호화 알고리즘의 확산연산은 자신과 역행렬이 같은 16×16행렬을 이용하여, 입력값에 바이트 단위의 행렬곱을 수행하여 그 결과값을 출력한다.
치환연산과 확산연산을 수행하는 방법 및 키 확장 과정을 수행하는 방법에 따라 아리아 암복호화 알고리즘의 수행속도 및 하드웨어 리소스의 요구량에 차이가 있으며, 최종적으로 아리아 암복호화 알고리즘의 성능과 직결되는 문제가 된다.
또한, 아리아 암복호화 알고리즘은 치환연산을 위해 하드웨어의 저장공간에 저장된 치환박스의 조합으로 구성된 변환테이블을 이용하므로, 변환테이블을 저장하기 위한 별도의 저장공간을 구비해야 한다. 따라서, 하드웨어의 크기가 커지고, 아리아 암복호화 알고리즘의 수행속도가 저장공간의 접근시간으로 결정될 수 있다.
본 발명의 목적은, 아리아 암복호화 알고리즘의 치환박스의 조합으로 구성된 테이블변환 방식의 치환연산을 아핀 연산, 역아핀연산 및 테이블변환 방식의 유한체 역원변환을 포함한 연산방법으로 변경한 하이브리드 방식의 치환박스 연산장치를 포함하는 아리아 암복호화 장치 및 방법을 제공하는 것이다.
상기 목적은, 아리아 암호화 알고리즘의 제1 치환박스에 대응하여, 입력 비트값에 대해 역아핀변환을 수행한 제1 역아핀변환값을 생성하는 제1 역아핀변환부, 상기 아리아 알고리즘의 제2 치환박스에 대응하여, 상기 입력값을 받아 역아핀변환을 수행한 제2 역아핀변환값을 생성하는 제2 역아핀변환부, 상기 제1 역아핀변환값, 상기 제2 역아핀변환값 및 상기 입력값을 입력받아 유한체 역원 연산부의 입력값을 선택하여 전달하는 제1 다중화부, 상기 제1 다중화부로 부터 선택된 값을 유한체의 역원으로 변환하는 유한체 역원 연산부, 상기 제1 치환박스의 역치환 박스에 대응하여, 상기 역원을 입력값으로 받아 아핀변환을 수행한 제1 아핀변환값을 생성하는 제1 아핀 변환부, 상기 제2 치환박스의 역치환 박스에 대응하여, 상기 역원을 입력값으로 받아 아핀변환을 수행한 제2 아핀변환값을 생성하는 제2 아핀 변환부, 상기 제1 아핀변환값, 상기 제2 아핀변환값 및 상기 역원을 입력받아 최종 출력값을 출력하는 제2 다중화부 및 상기 복수의 치환박스에 대응하는 상기 제1 다중화부 및 상기 제2 다중화부의 제어신호를 생성하는 다중화기 제어부를 포함하는 하이브리드 방식의 치환박스 연산장치를 포함하는 아리아 암복호화 장치에 의해 달성될 수 있다.
또한, 아리아 암호화 알고리즘의 제1 치환박스에 대응하여, 입력 비트값에 대해 역아핀변환을 수행한 제1 역아핀변환값을 생성하는 단계, 상기 아리아 알고리즘의 제2 치환박스에 대응하여, 상기 입력값을 받아 역아핀변환을 수행한 제2 역아핀변환값을 생성하는 단계, 상기 제1 역아핀변환값, 상기 제2 역아핀변환값 및 상기 입력값을 입력받아 유한체 역원 연산부의 입력값을 선택하여 전달하는 단계, 상기 제1 다중화부로 부터 선택된 값을 유한체의 역원으로 변환하는 단계, 상기 제1 치환박스의 역치환 박스에 대응하여, 상기 역원을 입력값으로 받아 아핀변환을 수행한 제1 아핀변환값을 생성하는 단계, 상기 제2 치환박스의 역치환 박스에 대응하여, 상기 역원을 입력값으로 받아 아핀변환을 수행한 제2 아핀변환값을 생성하는 단계, 상기 제1 아핀변환값, 상기 제2 아핀변환값 및 상기 역원을 입력받아 최종 출력값을 출력하는 단계 및 상기 복수의 치환박스에 대응하는 상기 제1 다중화부 및 상기 제2 다중화부의 제어신호를 생성하는 단계를 포함하는 하이브리드 방식의 치환박스 연산장치를 포함하는 아리아 암복호화 방법에 의해 달성될 수 있다.
본 발명에 따르면, 아리아 암복호화 알고리즘의 치환박스를 이용한 테이블 변환으로 구성된 치환연산을 아핀 연산, 역아핀 연산 및 유한체 역원연산 테이블을 이용한 유한체 역원 연산으로 변경한다. 따라서, 아리아 알고리즘의 암복호화 시간의 지연 없이, 치환연산을 위한 별도의 저장공간을 줄일 수 있어, 아리아 암복호화 장치의 하드웨어의 크기를 줄일 수 있다.
또한, 아리아 암복호화 알고리즘의 치환연산을 모두 연산로직으로 구현하는 경우, 연산지연시간이 증가하여 아리아 암복호화 장치의 동작주파수가 낮아진다. 그러나, 본 발명은 유한체 역원연산을 테이블 변환으로 구성한 하이브리드 방식을 취함으로써, 연산지연시간이 발생하지 않아 아리아 암복호화 장치의 동작주파수를 높일 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세하게 설명한다.
본 하이브리드 방식의 치환박스 연산장치를 포함하는 아리아 암복호화 장치 및 방법은 아리아 암복호화 알고리즘의 치환연산을 아핀 연산, 역아핀연산 및 유한체 역원연산 테이블을 포함한 연산방법으로 변경하는 것을 특징으로 한다.
도 1은 아리아 암복호화 알고리즘의 치환연산부(200)를 구성하는 치환박스부(100)의 구조도이다.
치환박스부(100)는 4가지의 치환박스로 구성되며, 각 치환박스는 S1(110), S2(120), S1 -1(130), S2 -1(140)으로 표시한다. S1 -1(130), S2 -1(140)는 S1(110), S2(120)의 역치환박스 이다.
각 치환박스는 8비트의 입력값에 대해 미리 정의된 치환값으로 각 비트를 치환하여 8비트의 결과값을 출력한다.
각 치환박스는 8비트의 조합으로 가능한 모든 비트열을 포함하므로, 28(=256)바이트의 저장공간이 필요하다. 따라서, 4개의 치환박스로 구성된 치환박스부(100)를 저장하기 위해 모두 1024바이트의 저장공간이 필요하다.
도 2는 본 발명에 의해 아핀연산, 역아핀연산 및 역원연산을 포함하는 연산회로로 변경될 아리아 암복호화 알고리즘의 치환연산부(200)의 구조도이다.
치환연산부(200)는 128비트의 입력값을 병렬처리하기 위해 16개의 치환박스를 포함한다. 치환연산부(200)는 제1 치환부(210)와 제2 치환부(220)로 구성되며, 홀수 라운드는 제1 치환부(210)를 짝수 라운드는 제2 치환부(220)를 사용한다. 제1 치환부(210)와 제2 치환부(220)는 서로 역의 관계가 있다.
1개의 치환박스는 256바이트가 필요하므로, 각 치환부는 16개의 치환박스를 저장하기 위해 4096바이트의 저장공간이 필요하다. 따라서, 치환연산부(200)는 제1 치환부(210)와 제2 치환부(220)를 저장하기 위해 8192바이트의 저장공간이 필요하다.
도 3은 후술할 하이브리드 방식을 이용한 블록 암호 아리아의 치환박스 연산장치의 유한체 역원 변환부에서 아리아 알고리즘의 치환연산부를 연산회로로 변경하기 위해 사용할 유한체 역원 변환테이블(300)이다.
유한체 역원 변환테이블(300)은 아리아 암복호화 알고리즘의 치환박스 생성에 이용되는 기약다항식인
Figure 112008086169978-pat00001
을 이용하여 생성된다.
유한체 역원 변환테이블(300)은 입력값 8비트에 대해 상위 4비트를 x로, 하 위 4비트를 y로 표시한다. x,y는 16진수 표기법으로 표시되며, x,y에 대한 16진수 표시는 표 1과 같다.
비트패턴 16진수 비트패턴 16진수 비트패턴 16진수 비트패턴 16진수
0000 0 0004 4 0008 8 0012 c
0001 1 0005 5 0009 9 0013 d
0002 2 0006 6 0010 a 0014 e
0003 3 0007 7 0011 b 0015 f
따라서, 입력값 0001 0002 는 12로 표시된다.
유한체 역원 변환테이블(300)을 이용한 역원 변환방법은 단계별로 살펴보면 다음과 같다.
첫째, 8비트의 입력값을 비트패턴에 따라 상위 4비트를 16진수 x로, 하위 4비트를 16진수 y로 변경한다. 둘째, 유한체 역원 변환테이블(300)의 인덱스의 가로항목에서 x, 세로항목에서 y값을 찾는다. 셋째, 유한체 역원 변환테이블(300)의 x 및 y 항목에 해당하는 테이블 값을 읽으면, 그 값이 입력값에 대한 역원값이 된다.
유한체 역원 변환테이블(300)을 이용한 역원 변환의 일예로, 입력값 00010002는 16진수 12로 표시되므로, 유한체 역원변환 테이블(300)의 x값은 1, y값은 2가 된다. 유한체 역원 변환테이블(300)의 가로항목에서 1, 세로항목에서 2를 찾으면, 입력값에 대한 유한체 역원 변환값이 16진수 aa 임을 알 수 있다. 따라서, 16진수 aa를 비트패턴으로 변경하면, 00100010이 되므로, 입력값 00010002에 대한 유한체 역원 변환값은 00100010이 된다.
유한체 역원 변환테이블(300)은 8비트로 표현할 수 있는 모든 비트열에 대응하므로 256바이트의 저장공간이 필요하다. 따라서, 후술할 하이브리드 방식을 이용한 블록 암호 아리아의 치환박스 연산장치는 유한체 역원 변환테이블(300)용 256바이트의 저장공간만 요구한다. 그러므로, 아리아 암복호화 알고리즘에 비해 8960바이트의 저장공간이 절약된다.
도 4는 본 발명의 일실시예인 하이브리드 방식을 이용한 블록 암호 아리아의 치환박스 연산 장치의 구성 블록도 이다.
치환박스 연산장치(400)는 다중화기 제어부(410), 제1 역아핀 변환부(420), 제2 역아핀 변환부(430), 제1 다중화기(440), 유한체 역원 연산부(450), 제1 아핀 변환부(460), 제2 아핀변환부(470), 및 제2 다중화기(480)를 포함한다.
본 발명에 의한 아리아 알고리즘의 치환박스 연산장치를 구현하기 위한 개략적인 방법은 다음과 같다. 치환박스 연산장치(400)에서는, 치환박스 S1 -1, S2 -1를 연산방법으로 변경하기 위해, 입력값에 대해 치환박스 S1 -1, S2 -1에 대응하는 역아핀 변환을 한 후, 역아핀 변환값의 유한체 역원을 구한다. 또한, 치환박스 S1, S2를 연산방법으로 변경하기 위해, 입력값의 유한체 역원을 구한 후, 역원값에 대해 치환박스 S1, S2에 대응하는 아핀변환을 한다.
아핀변환은 행렬의 곱과 백터의 합이 순차적으로 구성된 변환을 말한다. 일반적으로, 아핀변환은 암복호화 알고리즘에서 암복호화를 위해 미리 정의된 행렬을 이용하여 입력값을 다른값으로 치환하기 위해 사용된다. 역아핀변환은 아핀변환의 역변환이다.
다중화기 제어부(410)는 아리아 알고리즘의 치환박스의 종류에 대응하여, 제1 다중화기(440), 제2 다중화기(470)의 치환박스의 선택 제어신호를 생성한다.
치환박스 S1에 대해, 제1 다중화기(440)는 초기 입력값, 제2 다중화기(470)는 제1 아핀 변환값을 선택하는 신호를 생성하고, 치환박스 S2에 대해, 제1 다중화기(440)는 초기 입력값, 제2 다중화기(470)는 제2 아핀 변환값을 선택하는 신호를 생성한다.
치환박스 S1 -1에 대해, 제1 다중화기(440)는 제1 역아핀 변환값, 제2 다중화기(470)는 유한체 역원 변환부(450)의 역원값을 선택하는 신호를 생성하고, 치환박스 S2 -1에 대해, 제1 다중화기(440)는 제2 역아핀 변환값, 제2 다중화기(470)는 유한체 역원 변환부(450)의 역원값을 선택하는 신호를 생성한다.
제1 역아핀 변환부(420)는 치환박스 S1 -1에 대응하여 입력값 x에 대해 수학식 1에 정의된 역아핀 변환을 한다.
Figure 112008086169978-pat00002
y는 역아핀변환값, x는 입력값을 나타내며, i는 각 값의 비트의 위치를 나타낸다. 즉, x0, y0는 최하위비트를 나타내고, x7, y7은 최상위비트를 나타낸다.
제2 역아핀 변환부(430)는 치환박스 S2 -1에 대응하여 입력값 x에 대해 수학식 2에 정의된 역아핀 변환을 한다.
Figure 112008086169978-pat00003
y는 역아핀변환값, x는 입력값을 나타내며, i는 각 값의 비트의 위치를 나타낸다. 즉, x0, y0는 최하위비트를 나타내고, x7, y7은 최상위비트를 나타낸다.
제1 다중화기(440)는 다중화기 제어부(410)에서 생성된 치환박스의 선택 신호에 따라, 유한체 역원 연산부(450)의 입력값을 선택한다.
유한체 역원 변환부(450)는 도 3에서 설명한 유한체 역원테이블을 이용하여 유한체 역원연산을 실행한다. 유한체 역원 변환부(450)를 조합회로로 구현하지 않고 테이블 변환방식으로 구현함으로써, 유한체 역원연산를 위한 시간이 지연되지 않는다.
제1 아핀 변환부(460)는 치환박스 S1에 대응하여 입력값 x에 대해 수학식 3 에 정의된 아핀 변환을 한다.
Figure 112008086169978-pat00004
y는 아핀변환값, x는 입력값을 나타내며, i는 각 값의 비트의 위치를 나타낸다. 즉, x0, y0는 최하위비트를 나타내고, x7, y7은 최상위비트를 나타낸다.
제2 아핀 변환부(470)는 치환박스 S2에 대응하여 입력값 x에 대해 수학식 4에 정의된 아핀 변환을 한다.
Figure 112008086169978-pat00005
y는 아핀변환값, x는 입력값을 나타내며, i는 각 값의 비트의 위치를 나타낸다. 즉, x0, y0는 최하위비트를 나타내고, x7, y7은 최상위비트를 나타낸다.
제2 다중화기(480)는 다중화기 제어부(410)에서 생성된 치환박스의 선택 신 호에 따라, 최종 출력값을 선택한다.
도 5는 본 발명의 일실시예인 하이브리드 방식을 이용한 블록 암호 아리아의 치환박스 연산 장치를 이용한 치환박스 S1의 연산방법을 나타내는 흐름도이다.
다중화기 제어부(410)는 치환박스 S1을 위한 제어신호를 생성한다(S510). 생성된 제어신호에 의해, 제1 다중화기(440)는 유한체 역원 연산부(450)의 입력으로 초기 입력값이 설정되고(S520), 제2 다중화기(480)는 제1 아핀 변환부(460)의 변환값이 최종 출력값으로 설정된다(S530).
유한체 역원 변환부(450)에서 초기 입력값의 유한체 역원을 구하고(S540), 제1 아핀 변환부(460)에서 변환된 역원값에 대한 제1 아핀변환을 실행한다(S550).
도 6은 본 발명의 일실시예인 하이브리드 방식을 이용한 블록 암호 아리아의 치환박스 연산 장치를 이용한 치환박스 S1 -1의 연산방법을 나타내는 흐름도이다.
다중화기 제어부(410)는 치환박스 S1 -1을 위한 제어신호를 생성한다(S610). 생성된 제어신호에 의해, 제1 다중화기(440)는 유한체 역원 연산부(450)의 입력으로 초기 입력값이 제1 역아핀 변환부(420)에 의해 변환된 제1 역아핀 변환값으로 설정되고(S620), 제2 다중화기(480)는 유한체 역원 연산부(450)에서 변환된 역원값이 최종 출력값으로 설정된다(S630).
제1 역아핀 변환부(420)에서 초기 입력값에 대한 제1 역아핀 변환을 실행하고(S640), 유한체 역원 변환부(450)에서 제1 역아핀 변환값의 유한체 역원을 구한 다(S650).
도 7은 본 발명의 일실시예인 하이브리드 방식을 이용한 블록 암호 아리아의 치환박스 연산 장치를 이용한 치환박스 S2의 연산방법을 나타내는 흐름도이다.
다중화기 제어부(410)는 치환박스 S2을 위한 제어신호를 생성한다(S710). 생성된 제어신호에 의해, 제1 다중화기(440)는 유한체 역원 연산부(450)의 입력으로 초기 입력값이 설정되고(S720), 제2 다중화기(480)는 제2 아핀 변환부(470)의 변환값이 최종 출력값으로 설정된다(S730).
유한체 역원 변환부(450)에서 초기 입력값의 유한체 역원을 구하고(S740), 제2 아핀 변환부(470)에서 변환된 역원값에 대한 제1 아핀변환을 실행한다(S750).
도 8은 본 발명의 일실시예인 하이브리드 방식을 이용한 블록 암호 아리아의 치환박스 연산 장치를 이용한 치환박스 S2 -1의 연산방법을 나타내는 흐름도이다.
다중화기 제어부(410)는 치환박스 S2 -1을 위한 제어신호를 생성한다(S810). 생성된 제어신호에 의해, 제1 다중화기(440)는 유한체 역원 연산부(450)의 입력으로 초기 입력값이 제2 역아핀 변환부(430)에 의해 변환된 제2 역아핀 변환값으로 설정되고(S720), 제2 다중화기(480)는 유한체 역원 연산부(450)에서 변환된 역원값이 최종 출력값으로 설정된다(S830).
제2 역아핀 변환부(430)에서 초기 입력값에 대한 제2 역아핀 변환을 실행하고(S840), 유한체 역원 변환부(450)에서 제2 역아핀 변환값의 유한체 역원을 구한 다(S650).
이상 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안 될 것이다.
도 1은 아리아 암복호화 알고리즘의 치환박스부 구성도,
도 2는 아리아 암복호화 알고리즘의 치환연산부 구성도,
도 3은 블록 암호 아리아의 치환박스 연산 장치의 유한체 역원 변환 테이블,
도 4는 블록 암호 아리아의 치환박스 연산 장치의 구성 블록도,
도 5는 블록 암호 아리아의 치환박스 연산 방법에서 치환박스 S1에 대응하는 치환연산 흐름도,
도 6은 블록 암호 아리아의 치환박스 연산 방법에서 치환박스 S1 -1에 대응하는 치환연산 흐름도,
도 7은 블록 암호 아리아의 치환박스 연산 방법에서 치환박스 S2에 대응하는 치환연산 흐름도, 그리고,
도 8은 블록 암호 아리아의 치환박스 연산 방법에서 치환박스 S2 -1에 대응하는 치환연산 흐름도이다.

Claims (10)

  1. 아리아 암호화 알고리즘의 제1 치환박스에 대응하여, 입력 비트값에 대해 역아핀변환을 수행한 제1 역아핀변환값을 생성하는 제1 역아핀변환부;
    상기 아리아 알고리즘의 제2 치환박스에 대응하여, 상기 입력 비트값에 대해 역아핀변환을 수행한 제2 역아핀변환값을 생성하는 제2 역아핀변환부;
    상기 제1 역아핀변환값, 상기 제2 역아핀변환값 및 상기 입력 비트값 중에서 선택된 어느 하나를 출력하는 제1 다중화부;
    상기 제1 다중화부로 부터 출력되는 값을 유한체의 역원으로 변환하는 유한체 역원 연산부;
    상기 제1 치환박스의 역치환 박스에 대응하여, 상기 역원에 대해 아핀변환을 수행한 제1 아핀변환값을 생성하는 제1 아핀 변환부;
    상기 제2 치환박스의 역치환 박스에 대응하여, 상기 역원에 대해 아핀변환을 수행한 제2 아핀변환값을 생성하는 제2 아핀 변환부;
    상기 제1 아핀변환값, 상기 제2 아핀변환값 및 상기 역원 중에서 선택된 어느 하나를 최종 출력값으로 출력하는 제2 다중화부; 및,
    상기 제1 다중화부 및 상기 제2 다중화부의 제어신호를 생성하는 다중화기 제어부;를 포함하는 하이브리드 방식의 치환박스 연산장치를 포함하는 아리아 암복호화 장치.
  2. 제 1항에 있어서, 상기 제1 역아핀 변환부는,
    다음의 식에 의해 상기 제1 역아핀변환값을 생성하는 것을 특징으로 하는 하이브리드 방식의 치환박스 연산장치를 포함하는 아리아 암복호화 장치:
    Figure 112008086169978-pat00006
    여기서, y는 상기 제1 역아핀변환값이고, x는 상기 입력 비트값임.
  3. 제 1항에 있어서, 상기 제2 역아핀 변환부는,
    다음의 식에 의해 상기 제2 역아핀변환값을 생성하는 것을 특징으로 하는 하이브리드 방식의 치환박스 연산장치를 포함하는 아리아 암복호화 장치:
    Figure 112008086169978-pat00007
    여기서, y는 상기 제2 역아핀변환값이고, x는 상기 입력 비트값임.
  4. 제 1항에 있어서, 상기 제1 아핀 변환부는,
    다음 식에 의해 상기 제1 아핀변환값을 생성하는 것을 특징으로 하는 하이브리드 방식의 치환박스 연산장치를 포함하는 아리아 암복호화 장치:
    Figure 112008086169978-pat00008
    여기서, y는 상기 제1 아핀변환값이고, x는 상기 입력 비트값임.
  5. 제 1항에 있어서, 상기 제2 아핀 변환부는,
    다음 식에 의해 상기 제2 아핀변환값을 생성하는 것을 특징으로 하는 하이브리드 방식의 치환박스 연산장치를 포함하는 아리아 암복호화 장치:
    Figure 112008086169978-pat00009
    여기서, y는 상기 제2 아핀변환값이고, x는 상기 입력 비트값임.
  6. 아리아 암호화 알고리즘의 제1 치환박스에 대응하여, 입력 비트값에 대해 역 아핀변환을 수행한 제1 역아핀변환값을 생성하는 단계;
    상기 아리아 알고리즘의 제2 치환박스에 대응하여, 상기 입력 비트값에 대해 역아핀변환을 수행한 제2 역아핀변환값을 생성하는 단계;
    상기 제1 역아핀변환값, 상기 제2 역아핀변환값 및 상기 입력 비트값 중에서 선택된 값을 유한체의 역원으로 변환하는 단계;
    상기 제1 치환박스의 역치환 박스에 대응하여, 상기 역원에 대해 아핀변환을 수행한 제1 아핀변환값을 생성하는 단계;
    상기 제2 치환박스의 역치환 박스에 대응하여, 상기 역원에 대해 아핀변환을 수행한 제2 아핀변환값을 생성하는 단계; 및,
    상기 제1 아핀변환값, 상기 제2 아핀변환값 및 상기 역원 중에서 선택된 어느 하나를 최종 출력값으로 출력하는 단계;를 포함하는 하이브리드 방식의 치환박스 연산장치를 포함하는 아리아 암복호화 방법.
  7. 제 6항에 있어서,
    상기 제1 역아핀변환값은 다음의 식에 의해 생성하는 것을 특징으로 하는 하이브리드 방식의 치환박스 연산장치를 포함하는 아리아 암복호화 방법:
    Figure 112008086169978-pat00010
    여기서, y는 상기 제1 역아핀변환값이고, x는 상기 입력 비트값임.
  8. 제 6항에 있어서,
    상기 제2 역아핀 변환값은 다음의 식에 의해 생성하는 것을 특징으로 하는 하이브리드 방식의 치환박스 연산장치를 포함하는 아리아 암복호화 방법:
    Figure 112008086169978-pat00011
    여기서, y는 상기 제2 역아핀변환값이고, x는 상기 입력 비트값임.
  9. 제 6항에 있어서,
    상기 제1 아핀변환값은 다음 식에 의해 생성하는 것을 특징으로 하는 하이브리드 방식의 치환박스 연산장치를 포함하는 아리아 암복호화 방법:
    Figure 112008086169978-pat00012
    여기서, y는 상기 제1 아핀변환값이고, x는 상기 입력 비트값임.
  10. 제 6항에 있어서,
    상기 제2 아핀변환값은 다음 식에 의해 생성하는 것을 특징으로 하는 하이브리드 방식의 치환박스 연산장치를 포함하는 아리아 암복호화 방법:
    Figure 112008086169978-pat00013
    여기서, y는 상기 제2 아핀변환값이고, x는 상기 입력 비트값임.
KR1020080127415A 2008-12-15 2008-12-15 하이브리드 방식의 치환박스 연산장치를 포함하는 아리아 암복호화 장치 및 방법. KR101186335B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080127415A KR101186335B1 (ko) 2008-12-15 2008-12-15 하이브리드 방식의 치환박스 연산장치를 포함하는 아리아 암복호화 장치 및 방법.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080127415A KR101186335B1 (ko) 2008-12-15 2008-12-15 하이브리드 방식의 치환박스 연산장치를 포함하는 아리아 암복호화 장치 및 방법.

Publications (2)

Publication Number Publication Date
KR20100068902A KR20100068902A (ko) 2010-06-24
KR101186335B1 true KR101186335B1 (ko) 2012-09-27

Family

ID=42367089

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080127415A KR101186335B1 (ko) 2008-12-15 2008-12-15 하이브리드 방식의 치환박스 연산장치를 포함하는 아리아 암복호화 장치 및 방법.

Country Status (1)

Country Link
KR (1) KR101186335B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103368725B (zh) * 2012-04-06 2016-08-31 中国科学院软件研究所 一种g0类s盒构造方法及其电路
CN103378968B (zh) * 2012-04-16 2016-08-03 中国科学院软件研究所 一种g1类s盒构造方法及其电路
KR102133200B1 (ko) * 2013-08-08 2020-07-13 서울대학교산학협력단 데이터의 보호 방법 및 장치
KR102457166B1 (ko) 2020-11-23 2022-10-20 부산대학교 산학협력단 ARIA의 암호화 및 복호화를 지원하는 프로세서용 32bit 확장 명령어 체계를 갖는 하드웨어 모듈 및 이의 제어 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020027987A1 (en) 2000-07-04 2002-03-07 Roelse Petrus Lambertus Adriaanus Substitution-box for symmetric-key ciphers
KR100786391B1 (ko) 2006-09-28 2007-12-17 한국전자통신연구원 고속 아리아 블록 암호화/복호화 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020027987A1 (en) 2000-07-04 2002-03-07 Roelse Petrus Lambertus Adriaanus Substitution-box for symmetric-key ciphers
KR100786391B1 (ko) 2006-09-28 2007-12-17 한국전자통신연구원 고속 아리아 블록 암호화/복호화 장치

Also Published As

Publication number Publication date
KR20100068902A (ko) 2010-06-24

Similar Documents

Publication Publication Date Title
CN106921487B (zh) 可重构s盒电路结构
CN112291056B (zh) 加密密钥生成器及传输系统
US8184806B2 (en) Table masking for resistance to power analysis attacks
US9843441B2 (en) Compact, low power advanced encryption standard circuit
EP3661115B1 (en) Encryption device, decryption device, encryption method, decryption method, encryption program, and decryption program
CN106034021B (zh) 轻量级双模兼容aes加解密模块及其方法
KR101186335B1 (ko) 하이브리드 방식의 치환박스 연산장치를 포함하는 아리아 암복호화 장치 및 방법.
EP3531613A1 (en) Method and circuit for implementing a substitution table
US7024560B2 (en) Power-residue calculating unit using Montgomery algorithm
CN112134686A (zh) 一种基于可重构计算的aes硬件实现方法及运行该方法的计算机设备与可读存储介质
US9696965B2 (en) Input-dependent random number generation using memory arrays
US11895230B2 (en) Information processing apparatus, secure computation method, and program
JP5202350B2 (ja) 暗号処理装置及び暗号処理方法及び暗号処理プログラム
US7552163B2 (en) Montgomery modular multiplier and method thereof
JP2002040932A (ja) データ暗号化標準アルゴリズムを利用する暗号化装置
CN110034918B (zh) 一种sm4加速方法和装置
US20180024813A1 (en) Pseudo-random number generation device and computer readable medium
RU120303U1 (ru) Устройство для преобразования блоков данных при шифровании
RU2503135C1 (ru) Способ криптографического преобразования информации и устройство для его реализации
US20130108038A1 (en) System and method for a collatz based hash function
EP3531612B1 (en) Method and device for performing substitution table operations
JP5113833B2 (ja) 中央演算処理装置の演算能力を高めるための暗号方法および暗号装置
JP4857230B2 (ja) 疑似乱数生成装置及びそれを用いた暗号化処理装置
CN111510296A (zh) Sm4/aes双模加密电路
ES2293665T3 (es) Metodo para la conversion criptografica de bloques de entrada de l bits de informacion de datos digitales en bloques de salida de l bits.

Legal Events

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

Payment date: 20150827

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160826

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170828

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190826

Year of fee payment: 8