암호학 - ARIA 알고리즘 암호화, 복호화

2011. 6. 28. 07:02카테고리 없음





피카피카 유튜브 바로가기



@ ARIA (Academy, Research Institute, Agency) 암호화 알고리즘
 

- 초고속 네트워크 기반의 전자정부 시스템을 비롯해 앞으로 다가올 정보보호 환경을 대비하여 개발된 차세대 국가 암호 알고리즘 아리아 (ARIA)는 대한민국의 국가보안기술연구소에서 개발한 블록 암호체계이다. ARIA라는 이름은 학계(Academy), 연구소(Research Institute), 정부기관(Agency)이 공동으로 개발한 특징을 함축적으로 표현한 것이다. ARIA는 지난 2004년 한국 산업 규격 KS 표준으로 제정되었다. ARIA는 민간 암호 알고리즘 SEED와 함께 전자정부의 대국민 행정 서비스용으로 보급되고 있으며, 스마트 카드 등의 초경량 환경 및 고성능 서버 환경 등에서 SEED에 비하여 상대적으로 장점을 가지고 있다.
 암호학 - ARIA 알고리즘 암호화, 복호화 

@ 암호화 & 복호화 과정
 

1. 암호화 및 복호화 과정의 전체 개략도  암호학 - ARIA 알고리즘
 


 암호학 - ARIA 알고리즘 암호화, 복호화 

- ARIA는 암호의 난이도에 따라서 128, 192, 256비트 길이의 암호키를 선택할 수 있으며, 키의 길이에 따라서 라운드 함수가 12,14,16번 반복 실행한다. 라운드 함수에 필요한 라운드 키는 암호키로부터 키 확장을 통해서 생성한다. 암호키의 길이에 따라 ARIA-128, ARIA-192, ARIA-256으로 구분하여 표기한다. 그리고 128비트 데이터 블록에 대해 암호화, 복호화를 수행한다.
 암호학 - ARIA 알고리즘 암호화, 복호화 

2. 암호문 출력 과정
 


- ARIA의 암호화, 복호화는 Involution SPN 구조를 가지며, ISPN의 구조적 특징을 이용하여 별도의 복호화기를 사용하지 않고 복호화를 할 수 있다.
 
 암호학 - ARIA 알고리즘 암호화, 복호화 

* ISPN (Involution Substitution-Permutation-Networks) 구조?
 

- 일반적인 SPN 구조의 암호 알고리즘의 암호화 순서는 [평문] -> [치환계층] -> [확산계층] -> [암호문]과 같은 구조가 된다. 반대로 복호화 할 때는 [암호문] -> [Inverse 확산계층] -> [Inverse 치환계층] -> [평문] 순으로 될 것이다. ARIA의 각 라운드 함수를 보면 짝수 라운드와 홀수 라운드에서 치환계층이 서로 틀리다. 게다가 짝수 라운드의 치환 계층의 Inverse가 홀수 라운드의 치환계층이 되는 구조로 되어있다. 또한 확산계층의 Matrix의 Inverse가 자기 자신이 되는 구조이다. 이러한 구조로 인해 ARIA는 별도의 복호화기가 필요치 않은 것이다.
 

3. 라운드 함수
 
 암호학 - ARIA 알고리즘 암호화, 복호화 

- ARIA의 라운드 함수는 라운드 키 덧셈 (AddRoundKey), 치환계층 (SubstLayer), 확산 계층 (DiffLayer) 세부분으로 구성되어 있다. 라운드 함수는 홀수 라운드, 짝수 라운드에 따라 다른 유형의 치환 계층이 사용되며, 마지막 라운드에서 확산 계층을 라운드 키 덧셈으로 대치한다.
 

 암호학 - ARIA 알고리즘 암호화, 복호화 
* ek1 : plaintext와 암호 키에 의해 생성된 각 라운드 키

3.1 라운드 키 덧셈
 
 암호학 - ARIA 알고리즘 암호화, 복호화 

- 128비트 라운드 키와 라운드 입력 128비트와 비트별 XOR 한다.
 

3.2 치환 계층
 
 암호학 - ARIA 알고리즘 암호화, 복호화 

- ARIA의 치환 계층은 8비트 입/출력을 가지는 S-box S1, S2와 그 역치환으로 구성되어 있다. 아래와 같이 2개 유형의 치환계층이 이용되는데, 홀수 라운드와 짝수 라운드에 교대로 사용되어 Involution 구조가 되도록 한다.
 

 암호학 - ARIA 알고리즘

3.3 확산 계층
 

- 확산 계층은 ARIA를 다른 블록암호 알고리즘과 구별 짓는 주요 부분으로 16x16 Involution 이진 행렬을 사용한다. 확산 함수는 입력 16바이트에 대하여 바이트 단위의 행렬 곱을 수행한 결과 16바이트를 출력으로 한다.
 
 암호학 - ARIA 알고리즘 암호화, 복호화 

4. 키 확장
 

- ARIA의 키 확장은 키 초기화 과정과 라운드 키 생성 과정의 두 부분으로 나뉜다.
 

4.1 키 초기화 과정
 
 암호학 - ARIA 알고리즘 암호화, 복호화 

- 키 초기화 과정에서는 아래 그림과 같이 3라운드 Feistel 암호를 이용하여 암호 키로부터 네 개의 128비트 값을 생성한다.
 


- 키의 길이가 128 비트인 경우에는 KL을 암호 키로 채우고, KR은 0으로 채운다. 키의 길이가 192 비트인 경우에는 KL은 암호 키의 상위 129 비트로 채우고, KR은 암호 키의 하위 64 비트와 64 비트의 0으로 채운다. 키의 길이가 256 비트인 경우 KL과 KR은 각각 암호 키의 상위, 하위 128 비트로 채운다.

- Fo와 Fe를 각각 홀수, 짝수 라운드 함수라고 할 때 특정 연산에 의해 W0,1,2,3을 생성한다.
 

4.2 라운드 키 생성과정
 

- 라운드 키 생성 과정에서는 네 개의 128 비트 W0,1,2,3를 조합하여 암호화 라운드 키와 복호화 라운드 키를 생성한다. 위에서 말한 바와 같이 라운드 수는 암호 키의 크기에 따라 다르다. 마지막 라운드에서는 키 덧셈 계층이 두 번 있으므로 각각 13,15,17개의 라운드 키를 생성해야 한다. 복호화 라운드 키는 암호화 라운드 키와 다르며 암호화 라운드 키로부터 유도된다.
 

@ ARIA의 안전성, 효율성
 

- ARIA는 블록 암호에 대한 알려진 모든 공격에 대한 내성을 갖도록 설계되었다. 일차적으로 설계자들에 의한 내부적인 안전성 분석을 거친 뒤에, 객관적인 안전성 및 효율성 평가를 위하여 NESSIE의 주관 기관인 벨기에 루벤 대학으로부터 평가를 받았다. ARIA는 하드웨어 구현 및 8비트 환경에서 뛰어난 효율성을 가지고 있어 IC 카드, VPN 장비 등 다양한 환경에 적용이 가능하다. 또한 소프트웨어 구현에서도 벨기에 루벤 대학의 효율성 평가에서 Camellia 보다 빠르고 AES에 근접하는 성능을 보였다.
 
 암호학 - ARIA 알고리즘

@ 간단 정리

1. 고정 길이의 입/출력 (128 비트)

2. 가변 길이의 키 길이 지원 (128/192/256 비트 키)

3. ISPN 구조

3. 간단한 연산 사용으로 초경량 환경에 효율적

4. 바이트 단위의 연산으로 하드웨어에 효율적 암호학 - ARIA 알고리즘



피카피카 유튜브 바로가기