DOI QR코드

DOI QR Code

CCTV 영상보안 위한 AES 암호 알고리듬의 효율적인 구현

An Efficient Implementation of AES Encryption Algorithm for CCTV Image Security

  • 강민섭 (안양대학교 컴퓨터공학과)
  • Kang, Min-Sup (Dept. of Compter Engineering, Anyang University)
  • 투고 : 2021.03.10
  • 심사 : 2021.04.09
  • 발행 : 2021.04.30

초록

본 논문에서는 C# 언어를 이용하여 CCTV 영상보안 시스템의 효율적인 구현을 제안한다. 제안한 방법에서는 AES 알고리듬의 각 라운드 과정에서 요구되는 지연시간의 최소화를 위한 합성체 기반의 S-Box를 설계하고, 이를 기반으로 한 영상보안 시스템을 GF(((22)2)2) 상에서 구현한다. 또한, 메모리 공간의 최소화를 위해서 각 라운드 변환 및 키 스케쥴링 과정에서 필요한 S-Box를 공동으로 사용하도록 설계한다. 성능평가를 통하여 기존의 방법 보다 제안한 방법이 보다 효율적임을 확인하였다. 제안한 CCTV 영상보안 시스템은 Visual Studio 2010을 사용하여 C# 언어로 구현하였다.

In this paper, an efficient implementation of AES encryption algorithm is presented for CCTV image security using C# language. In this approach, an efficient S-Box is first designed for reducing the computation time which is required in each round process of AES algorithm, and then an CCTV image security system is implemented on the basis of this algorithm on a composite field GF(((22)2)2). In addition, the shared S-Box structure is designed for realizing the minimized memory space, which is used in each round transformation and key scheduling processes. Through performance evaluation, it was confirmed that the proposed method is more efficient than the existing method. The proposed CCTV system in C# language using Visual studio 2010.

키워드

Ⅰ. 서론

CCTV(Closed Circuit Television)는 영상정보를 특정의 목적으로 사용하기 위하여 주로 IP 기반의 네트워크로 구성된다. 하지만 현재 CCTV 보안은 너무 허술하여 네트워크 접근에 따른 해킹이 가능하여 사생활 침해, 개인정보 유출이나 침해, 데이터 위변조 등 다양한 위협에 노출되어 있다. 이와 같이 디지털 정보를 보호하기 위하여 암호화 기술을 이용한 CCTV 보안 시스템 설계 방법들이 제안되었다[1].

AES(Advanced Encryption Standard)는 암호화키와 복호화키가 동일한 대칭형 암호시스템이다. 기존의 대칭키 방식의 표준 DES(Data Encryption Standard)가 컴퓨터의 계산능력 향상으로 인한 안전성 저하 문제가 대두되어 미국 상무부 기술표준국(NIST)에서 차세대 암호표준 과정을 통하여 벨기에의 RIJNDAEL을 최종 AES로 선정하였고, AES는 효율, 보안, 성능, 구현, 유연성과 같은 다양한 면을 고려할 때 기존 암호화 알고리즘에 비해 성능이 뛰어나다[2].

이러한 암호 시스템에 수반되는 실행 시간과 자원 사용량을 최소화하여 성능을 향상시키기 위한 방법이 연구되고 있다[2-3].

AES 암호 알고리듬에 있어서 SubBytes (InvSubBytes) 연산은 많은 양의 메모리가 필요할 뿐만 아니라, 수행 시간도 많이 소모되는 모듈이다. S-Box를 구현하는 많은 방법이 제안되었으며, 가장 기본적인 연산방법은 S-Box 를 LUT(Look-Up Table) 방식으로 구현하는 것이다. 이 방식은 암호화 연산을 위한 S-Box와 복호화 연산을 위한 InvS-Box가 독립적으로 필요하며, 고정된 설계 구조로 인하여 많은 지연(delay)이 발생하게 된다[4].

이와 같이 문제점들을 개선하기 위한 효율적인 S-Box를 기반으로 한 효율적인 AES 암호 알고리듬의설계가 요구된다[5].

본 논문에서는 C#을 이용하여 효율적인 S-Box 기반의 CCTV 영상보안 시스템 구현을 제안한다. 제안한 방법에서는 AES 알고리즘의 라운드 과정에서 가장 큰 시간을 소모하는 S-Box의 개선된 구조를 설계하고 제안한다.

Ⅱ. CCTV 영상 보안시스템

1. 시스템의 구성도

그림 1은 영상 보안시스템의 전체 구성도를 나타낸다. 그림 1에서 카메라 모듈에서 촬영한 영상을 현재 프레임과 이전 프레임을 비교하여 두 프레임간의 차이를 비교하여 두 프레임간의 픽셀 차를 구하여 저장한다. 두 프레임 간의 픽셀 차이를 전체 해상도에서 적당한 크기의 블록으로 잘라내어 블록의 위치를 왼쪽에서 오른쪽으로 정렬시킨다. 이 데이터를 AES 암호화 알고리즘을 이용하여 암호화 하여 DB에 저장한다[6].

OTNBBE_2021_v21n2_1_f0001.png 이미지

그림 1. 영상 보안 시스템 구성도

Fig. 1. Configuration of image security system

저장된 데이터를 뷰어로 전송 후 뷰어에서 해당 데이터를 복호화 및 역처리를 통해 차이 값을 데이터로 복구한다.

2. AES 암호 알고리듬

AES 알고리즘은 대칭형 암호화 알고리즘이며 4×4 바이트 행렬인 128비트의 데이터 블록에 대한 SubBytes, ShiftRow, MixColumns 및 AddRoundKey 등의 연산을 반복 수행하여 암호문을 생성한다. 그림 2는 AES 암호 알고리듬의 수행과정을 나타낸다[2].

OTNBBE_2021_v21n2_1_f0002.png 이미지

그림 2. AES 암호 알고리즘

Fig. 2. AES encryption algorithm

복호화는 암호화의 역순으로 진행되고 마찬가지로 최종 라운드에서 Inverse MixColumns 연산을 수행하지 않는다.

그림 3은 LUT 기반의 S-Box를 구현하기 위한 C# code를 나타낸다.

OTNBBE_2021_v21n2_1_f0003.png 이미지

그림 3. LUT 기반의 S-Box code

Fig. 3. LUT based S-Box code

AES 알고리듬에서 S-Box는 8비트의 입력 값에 대해 8비트의 출력 값을 가지며, 비선형 연산을 실행한다. 128비트 알고리즘의 경우 SubBytes 연산에 16개, KeySchedule 에는 4개의 S-Box가 필요하므로 S-Box 는 암호화에서 매우 큰 용량의 메모리가 요구된다.

본 논문에서는 메모리 공간의 최소화를 위해서 각 라운드 변환 과정 및 키 스케쥴링 과정에서 요구되는 S-Box를 공동으로 사용하는 구조로 설계하고 구현한다 (그림 2 참조).

Ⅲ. 효율적인 AES S-Box 설계

AES 알고리듬에서의 S-Box 구현은 Galois Field (GF) 상에서 연산을 수행한다. 1-바이트를 GF(28))의 다항식으로 표현하고, 이때 각 원소들은 GF(22)의 형태로 변환시켜 사용한다. AES-128에서 SubByte 연산은 1 바이트를 GF(28) 상에서의 역원을 구한후 아핀 변환을 행하고, 8비트씩의 치환 연산을 반복하여 16회 수행한다[2].

SubBytes 과정은 유한체 GF(28) 상에서 곱셈 역원 연산을 실행한 후, 아핀 변환(Affine Transformation) 을 하게 된다. 그리고 InvSubBytes 과정은 이와 반대로 수행하게 된다. 그림 4는 곱셈역원(multiplicative inverse) 연산이 SubBytes와 InvSubBytes에서 동시에 사용하는 과정을 나타낸다[5].

OTNBBE_2021_v21n2_1_f0004.png 이미지

그림 4. 합성체에서 SubBytes와 InvSubBytes변환 과정

Fig. 4. SubBytes and InvSubBytes transformation in composite field

그림 4에서 Enc = 0 일 경우는 Mux의 0 입력이 출력으로 연결되어 암호화 과정이 수행되어 아핀변환 후에 연산 결과가 출력된다. 복호화 경우는 입력에 대해 아핀변환을 먼저 수행한 후에, 곱셈역원 연산 과정을 거치게 된다. LUT 기반의 AES S-Box의 구현 방법은 입력에 대한 S-Box 출력값을 모두 LUT에 저장하기 때문에 메모리 낭비라는 문제가 있다[4].

그림 5는 SubBytes 연산에서 곱셈역원 연산을 위한이반적인 S-Box의 구조를 나타낸다.

OTNBBE_2021_v21n2_1_f0005.png 이미지

그림 5. 곱셈역원 연산을 위한 S-Box 구조[4]

Fig. 5. S-Box structure for multiplicative inverse[4]

그림 5에서 알 수 있듯이 입력된 8비트의 입력 값은 체 변환 행렬에 의해 GF(28)에서 GF((22)2) 로 변환 후. 곱셈역원을 계산한다. 이때, 체 역변환 행렬 연산에 의해 다시 GF(28)의 형태로 변환되어 Affine 연산에 의해 최종 출력을 얻는다. GF(((22)2)2) 상의 곱셈원 연산을 위해 GF((22)2) 상의 곱셈 연산기 3개와 GF(24) 상의 제곱 및 역원회로, 그리고 XOR 연산회로가 필요하다[5-6].

본 논문에서는 메모리 용량과 연산속도 면에서 보다 효율적인 개선된 S-Box의 구조를 설계한다. 제안한 방법은 GF(((22)2)2) 상에서 보다 빠른 연산을 위해 x2과 λ를 1개 모듈로 통합한다. 또한, 체 역변환 (δ-1) 및 아핀연산 모듈도 1개로 통합하여 간략화시킨다.

그림 6은 개선된 S-Box 구조를 구현하기 위한 Function getSBOX()를 나타낸다.

OTNBBE_2021_v21n2_1_f0006.png 이미지

그림 6. 개선된 S-Box 구현을 위한 getSBOX()

함수 Fig. 6. getSBOX() Function for advanced S-Box implementation

그림 6에서 알 수 있듯이 체 역변환(δ-1) 및 아핀연산 모듈이 1개의 함수(del_and_aff(val))로 통합하여 연산을 수행하고 있다. 그리고 체 변환 행렬은 delta() 함수에서 연을 하고 있다.

그림 7은 그림 6에 나타난 함수 getSBOX()내에서 합성체 연산을 수행하기 위한 서브루틴인 Op_gf8() 함수를 나타낸다.

OTNBBE_2021_v21n2_1_f0007.png 이미지

그림 7. 서브루틴 Op_gf8()

Fig. 7. subroutine Op_gf8()

그림 7에서 알 수 있듯이 방법은 GF(((22)2)2) 상에서 보다 빠른 연산을 위해 x2과 λ를 1개의 함수 (lambdaAndSquare())로 통합하여 연산을 수행하고 있다. 함수 mul_gf2_4()는 체 변환 행렬에 의해 GF(((22)2) 로 변환한 후에 곱셈역원을 수행한다.

제안한 방법을 사용하면 S-Box 출력값을 LUT와 같은 테이블로 저장하지 않고 입력값에 대한 출력값을 S-Box를 이용하여 연산함으로써 메모리 절약과 속도 향상의 효과를 얻을 수 있다.

그림 8은 critical path 지연의 최소화를 위해 사용된 체 변환과 체 역변환 행렬을 나타낸다[6].

OTNBBE_2021_v21n2_1_f0008.png 이미지

그림 8. 체 변환 행렬 δ, 체 역변환 행렬δ-1

Fig. 8. Field transformation matrix δ, field inverse transformation matrix δ-1

Ⅳ. 시스템 구현 및 성능 평가

본 논문에서 제안한 합성체 S-Box 기반의 CCTV 영상 시스템은 Visual Studio 2010을 사용하여 C# 언어로 구현하였다. 또한, 시스템 구성 환경은 윈도우7 OS 상에서 RAM 8G를 사용하였다.

그림 9는 구현한 프로그램의 실행 결과 중 입력된 평문과 Key 및 각 라운드 별 RoundKey와 암호문을 보여준다.

OTNBBE_2021_v21n2_1_f0009.png 이미지

그림 9. 실행 결과

Fig. 9. Execution results

그림 9에서 알 수 있듯이 128-비트의 평문과 128-비트의 암호화 키를 사용하여 12비트의 암호화된 결과가 출력됨을 보인다. 암호문의 검증을 위해 동일한 암호화 키로 암호문을 복호화한 결과 입력된 평문과 동일한 결과 값을 얻을 수 있음을 확인하였다.

그림 10은 암호화시 기존의 방법[3]과 제안한 방법에 대한 메모리 사용량을 나타내며, 그림 11은 복호화에 사용되는 메모리 사용량을 보인다.

OTNBBE_2021_v21n2_1_f0010.png 이미지

그림 10. 암호화시 메모리 사용량

Fig. 10. Memory usage for encryption

OTNBBE_2021_v21n2_1_f0011.png 이미지

그림 11. 복호화시 메모리 사용량

Fig. 11. Memory usage for decryption

그림 10과 11에서 알 수 있듯이 암호화와 복호화의 경우 메모리 사용량 비교시, 기존의 LUT 기반의 S-Box[3]를 사용하는 방법 보다 본 논문에서 제안한 합성체 S-Box를 사용하여 구현한 방법이 보다 효율적임을 알 수 있다. 표 1은 기존의 S-Box 와 개선된 S-Box에 대한 암·복호화의 속도향상 비율을 나타낸다.

표 1. 제안한 시스템의 암·복호화 속도 향상 비율

Table 1. Speed up rate for encryption and decryption of proposed system

OTNBBE_2021_v21n2_1_t0001.png 이미지

표 1에서 알 수 있듯이 제안한 방법은 암·복호화 시간 비교 시 평균 8% 정도의 속도가 향상됨을 확인할 수 있다.

그림 12는 C#을 사용하여 실행된 CCTV 영상 보안시스템의 구현결과를 보여준다. 시스템의 실험 및 구현 결과를 통하여 차이값 추출, 블록화, 블록 정렬, 암호화, 복호화 과정이 정확하게 동작됨을 확인하였다.

OTNBBE_2021_v21n2_1_f0012.png 이미지

그림 12. 프로그램 실행 결과

Fig. 12. Result of the program execution

Ⅴ. 결론

본 논문에서는 합성체 S-Box기반의 CCTV 영상 보안시스템 구현에 관하여 기술하였다. 제안한 방법에서는 시스템의 효율적인 구현을 위해 AES 알고리듬의 각 라운드 과정에서 요구되는 지연시간의 최소화방안을 제안하였다.

구현된 프로그램은 C#을 사용하여 코딩작업을 행하였으며, CCTV 기기는 Seloco사의 SN200을 사용하였다. 실험 결과를 통하여 기존의 LUT기반의 S-Box와 비교하여 개선된 방법은 메모리 사용량은 약 3% 정도 절약되었고, 속도는 약 8% 정도 향상되었다.

암호화 기술을 적용하여 구현된 영상 보안시스템은 외부에서 해킹을 당하더라도 그 내용을 해독할 수 없기 때문이 기밀성이 보장된다.

참고문헌

  1. Min-seok Kang, Ji-su Bae, Tae-min Jang,Min-sup Kang, Design of Digital Image Security System Using AES Algorithm, Journal of Security Engineering, (2011)Vol.8, No.2, pp.277-288.
  2. FIPS 197, "Advanced Encryption Standard (AES)", November 26, 2001.
  3. M. McLoone and J. V. McCanny, "Rijndael FPGA implementation utilizing look-up tables," in IEEEWorkshop on Signal Processing Systems, pp. 349-360, Sept. 2001.
  4. Edwin NC Mui, "Practical Implementation of Rijndael S-Box Using Combinational Logic", Custom R&D Engineer Texco Enterprise Pvt.Ltd, 2007.
  5. Saurabh Kumar, V.K. Sharma and K. K. Mahapatra, "Low Latency VLSI Architecture of S-Box for AES Encryption" IEEE International Conference on Circuits, Power and Computing Technologies (ICCPCT), March 2013. https://doi.org/10.1109/ICCPCT.2013.6528906
  6. Su-Bong Ryu, Min-Sup Kang, "Implementation of Image Security System for CCTV Using Analysis Technique of Color Informations", The Journal of the Institute of Internet, Broadcasting and Communication, Vol. 12, No. 5, pp. 219-227, Oct. 2021. https://doi.org/10.7236/JIWIT.2012.12.5.219
  7. Prathiba, A., Kanchana Bhaaskaran, V.S.: Lightweight S-Box architecture for the secure internet of things. Information 9(1), pp. 1-14, 2018. https://doi.org/10.3390/info9010001
  8. Min-Sup Kang, "Design of AES-Based Encryption Chip for IoT Security", The Journal of the Institute of Internet, Broadcasting and Communication, Vol. 21, No. 1, pp. 1-6, Feb. 2021. https://doi.org/10.7236/JIIBC.2021.21.1.1
  9. Se-Hwan Park, Jong-Kyu Park, "IoT Industry & Security Technology Trends", International journal of advanced smart convergence(IJASC), Vol. 5, No. 3 pp. 27-3, 2016. https://doi.org/10.7236/IJASC.2016.5.3.27