Symmetry structured SPN block cipher algorithm

대칭구조 SPN 블록 암호 알고리즘

  • 김길호 (부경대학교 컴퓨터공학과) ;
  • 박창수 (부경대학교 컴퓨터공학과) ;
  • 조경연 (부경대학교 컴퓨터공학과)
  • Published : 2008.08.30

Abstract

Feistel and SPN are the two main structures in designing a block cipher algorithm. Unlike Feistel, an SPN has an asymmetric structure in encryption and decryption. In this paper we propose an SPN algorithm which has a symmetric structure in encryption and decryption. The whole operations in our SPN algorithm are composed of the even numbers of N rounds where the first half of them, 1 to N/2, applies function and the last half of them, (N+1)/2 to N, employs inverse function. Symmetry layer is executed to create a symmetry block in between function layer and inverse function layer. AES encryption and decryption algorithm, whose safety is already proved, are exploited for function and inverse function, respectively. In order to be secure enough against the byte or word unit-based attacks, 32bit rotation and simple logical operations are performed in symmetry layer. Due to the simplicity of the proposed encryption and decryption algorithm in hardware configuration, the proposed algorithm is believed to construct a safe and efficient cipher in Smart Card and RFID environments where electronic chips are built in.

블록 암호를 설계하는 방식으로 크게 Feistel 구조와 SPN 구조로 나눌 수 있다. Feistel 구조는 암호 및 복호 알고리즘이 같은 구조이고, SPN구조는 암호 및 복호 알고리즘이 다르다. 본 논문에서는 암호와 복호 과정이 동일한 SPN 구조 블록 암호 알고리즘을 제안한다. 즉 SPN 구조 전체를 짝수인 N 라운드로 구성하고 1 라운드부터 N/2라운드까지는 정함수를 사용하고, (N/2)+1 라운드부터 N 라운드까지는 역함수를 사용한다. 또한 정함수 단과 역함수 단 사이에 대칭 블록을 구성하는 대칭 단을 삽입한다. 본 논문에서 정함수로는 안전성이 증명된 AES의 암호 알고리즘을, 역함수로는 AES의 복호 알고리즘을 사용하고, 대칭 단은 32 비트 회전과 간단한 논리연산을 사용하여 비선형성을 증가시켜 바이트 또는 워드 단위의 공격에 강하게 한다. 본 논문에서 제안한 암호와 복호가 동일한 대칭 구조 SPN 알고리즘은 하드웨어 구성이 간단한 장점을 가지므로 제한적 하드웨어 및 소프트웨어 환경인 스마트카드와 전자 칩이 내장된 태그와 같은 RFID 환경에서 안전하고 효율적인 암호를 구성할 수 있다.

Keywords