블록암호 SIMON의 카운터 모드 사전 연산 고속 구현 - 권혁동(Hyeok-Dong Kwon); 장경배(Kyung-Bae Jang); 김현지(Hyun-Ji Kim); 서화정(Hwa-Jeong Seo) (한국정보통신학회논문지, 2021)
SIMON, a lightweight block cipher developed by the US National Security Agency, is a family of block ciphers optimized for hardware implementation. It supports many kinds of standards to operate in various environments. The counter mode of operation is one of the operational modes. It provides to encrypt plaintext which is longer than the original size. The counter mode uses a constant(Nonce) and Counter value as an input value. Since Nonce is the identical for all blocks, so it always has same result when operates with other constant values. With this feature, it is possible to skip some instructions of round function by pre-computation. In general, the input value of SIMON is affected by the counter. However in an 8-bit environment, it is calculated in 8-bit units, so there is a part that can be pre-computed. In this paper, we focus the part that can be pre-calculated, and compare with previous works. 미국 국가안보국에서 개발된 경량 블록암호 SIMON은 하드웨어 구현에 최적화 된 블록암호 군으로서, 여러 환경에서 효율적으로 동작할 수 있도록 많은 입·출력 규격을 제공한다. 블록암호 카운터 운용모드는 블록암호의 입력 규격보다 더 큰 평문을 암호화할 수 있도록 제공되는 운용모드 중 하나이다. 카운터 운용모드는 입력 값으로 상수 값인 논스와 블록의 번호인 카운터를 사용한다. 이때 논스 부분은 모든 블록이 동일하기 때문에, 다른 상수 값과 연산한다면 항상 동일한 연산 결과를 가진다. 이 특징을 활용한다면 일부 값을 사전 연산하여 라운드 함수의 일부분을 생략하는 것이 가능하다. 일반적인 상황에서 SIMON의 입력 값은 카운터에 영향을 받으나, 8-bit 환경에서는 8-bit 단위로 연산이 되기에 고속 구현이 가능한 부분이 존재한다. 따라서 본 논문에서는 연산 생략이 가능한 지점을 중점적으로 확인하고 기존 SIMON 구현물과 성능 비교를 통해 제안하는 기법의 우수성을 확인한다.