Korean Institute of Information Technology

Current Issue

The Journal of Korean Institute of Information Technology - Vol. 22 , No. 3

[ Article ]
The Journal of Korean Institute of Information Technology - Vol. 19, No. 3, pp. 113-119
Abbreviation: Journal of KIIT
ISSN: 1598-8619 (Print) 2093-7571 (Online)
Print publication date 31 Mar 2021
Received 16 Nov 2020 Revised 22 Mar 2021 Accepted 25 Mar 2021
DOI: https://doi.org/10.14801/jkiit.2021.19.3.113

프레임 분할 스레드를 이용한 실시간 CCTV 영상 보안시스템 설계
강민섭*
*안양대학교 컴퓨터공학과 교수

Design of Real-Time CCTV Image Security Systems using Frame Partition Threads
Min-Sup Kang*
Correspondence to : Min-Sup Kang Dept. of Computer Science Engineering, Anyang University 22, Samdeok-ro 37beon-gil, Manan-gu, Anyang-si, Korea, Tel.: +82-31-463-1347, Email: mskang@anyang.ac.kr


초록

본 논문에서는 프레임 분할 스레드를 이용한 실시간 CCTV 영상 보안시스템의 설계를 제안한다. 제안한 방법에서는 영상정보의 크기를 줄이기 위하여 프레임을 블록 단위로 분할하여 비교하는 프레임 블록화 방법을 사용한다. 이때 데이터의 효율적인 처리를 위해 16개의 스레드를 이용하여 구현한다. 가공된 모든 데이터들은 ARIA 암호화 알고리즘에 의해 암호화되어 저장되기 때문에 영상정보에 대한 기밀성이 보장된다. 실험 결과를 통하여, 영상처리 속도는 원본 영상을 사용하는 기존의 방법에 비해 약 40% 정도 개선되었고, 영상의 크기는 약 60% 정도 감소됨을 확인하였다.

Abstract

This paper presents the design of a real-time CCTV image security system using the frame partition threads. In this approach, a frame blocking method is used for reducing the size of image information, and it divides the frame into blocks and compares it. At this time, it is implemented using 16 threads for efficient data processing. Since all processed data is encrypted and stored by ARIA encryption algorithm, so the confidentiality of video information is guaranteed. Through the experimental results, we found that the image processing speed was improved by about 40%, and image size decreased by about 60% compared to conventional method using the original image.


Keywords: CCTV, image security, frame blocking, threads, ARIA encryption

Ⅰ. 서 론

CCTV의 사용 초기에는 주로 치안과 방범 목적으로 사용하여 왔으나, 현재에는 사람이 필요한 곳에 사람을 대신하여 녹화된 영상을 증거로 교통 정보수집, 범죄 예방, 사고, 증거, 보안, 감시, 관찰 등을 위하여 CCTV가 많이 사용되고 있다. 이전에는 CCTV에서 이미지 저장은 주로 제한된 용량의 하드 디스크를 이용하였으나, 최근에는 기존의 네트워크 기반의 CCTV를 초월하는 클라우드 컴퓨팅 시스템 기반의 지능형 CCTV로 진화하고 있다[1].

지금까지 대표적인 보안장비라 할 수 있는 CCTV는 4차 산업혁명의 중요한 분야인 인공지능, 자율주행, 사물인터넷, 빅데이터 등의 다양한 정보통신기술을 만나면서 다양한 산업에 적용되고 있다. 즉, CCTV는 재난과 안전분야, 환경과 에너지, 헬스케어 등 다양한 스마트시티 서비스뿐만 아니라 스마트 홈과 스마트 팩토리 등 다양한 분야에도 응용이 가능하다.

지금의 CCTV는 과거의 아날로그 방식에서 디지털 방식으로 전환하면서 대량의 정보를 저장할 수 있게 되었다. 이렇게 많은 양의 정보를 저장하게 되면서 저장 공간에 대한 비용이 대폭 증가하였고 이를 위한 대책이 필요하게 되었다[2]. 또한, 디지털 방식이므로 정보에 대한 접근도 용이하게 되어 이에 대한 보안대책도 필요하게 되었다[2].

일반적으로 사용되고 있는 CCTV는 있는 그대로의 영상을 찍어서 디지털 영상으로 전환한 후 저장하는 방식을 사용하고 있다. 즉 영상을 적절한 방법으로 가공하지 않은 채 그대로 저장하는 방식이다[3][4]. IP 카메라는 기존의 카메라와 비교하여 화질이 좋고 다양한 부가기능이 제공되며, 메타 데이터로부터 분석된 개인 관련정보를 마스킹 할 수 있는 지능형 IP 카메라도 사용되고 있다[5]. 그러나 기존의 방법들은 영상에 대한 위조, 변조가 가능하기 때문에 사생활 침해 등 많은 보안관련 문제가 발생할 수 있다[6][7].

본 논문에서는 프레임 분할 스레드를 이용한 실시간 CCTV 영상 보안시스템의 설계 및 구현을 제안한다. 제안한 방법에서는 영상 정보의 크기를 줄이기 위하여 프레임을 블록 단위로 분할하여 비교하는 프레임 블록화 방법을 사용하고, 16개의 스레드를 이용하여 구현한다. 가공된 모든 데이터들은 ARIA 암호화 알고리즘[8]에 의해 암호화되어 저장되기 때문에 영상정보에 대한 기밀성이 보장된다.


Ⅱ. 제안하는 CCTV 영상 보안시스템

본 논문에서 제안하는 시스템의 영상 처리과정은 CCTV로 부터 영상을 전송받아서 영상 가공과 암호화를 진행한다. 가공된 데이터는 Viewer로 전송되어 Viewer에서 복호화 및 영상 복원을 실행하여 원래영상을 재생한다.

본 논문에서의 영상 가공 방법은 프레임의 상관관계를 이용한 방법으로 비교 대상 프레임과 현재 재생되는 프레임을 비교하여 의미 있는 픽셀의 값만을 추출하여 저장한다. 이것은 고정된 위치에서 같은 장소를 연속적으로 촬영하는 CCTV가 다른 영상들보다 픽셀값이 중복된다는 점을 이용한 방법이다. 이 방법을 이용하면 중복되는 프레임을 제외하고 의미 있는 프레임만을 추출하여 기존 중복되는 프레임에 합성하기 때문에 프레임 용량을 대폭 줄일 수 있다.

영상 보안시스템에서 카메라로 촬영을 하고 기준 프레임을 60초마다 생성한다고 가정했을 때, 촬영 후 Viewer 서버로 전송까지의 동작은 그림 1과 같다.


Fig. 1. 
Flowchart of proposed image processing

제안하는 영상 처리과정은 그림 1에 나타난 바와 같이 카메라 촬영을 시작으로 프레임을 수신하여 비교 대상 프레임과 현재 프레임 간의 차이를 구한 후, 그 값을 블록화시킨다. 이때 프레임 간의 차이 값과 블록화는 효율성을 고려하여 16 분할 스레드를 기반으로 하여 설계된다. 그 후 블록화된 프레임이 정렬되며 각 블록의 첫 좌표(기준 프레임)를 파일에 저장해둔다. 이후에 ARIA 암호알고리즘을 이용하여 기준이 되는 각 프레임 데이터에 대해 암호화를 수행하여 Viewer로 보내고, 가공된 블록 정렬 데이터들도 Viewer로 전송한다.


Ⅲ. 이미지 가공 방법 및 암호화 기법
3.1 16분할 스레드 설계

동영상이란 각각의 정지된 화면 즉, 프레임을 빠르게 지나가게 하여 마치 움직이는 것처럼 보이도록 하는 기술이다. 프레임의 상관관계란 연속된 프레임이 약간의 차이가 있을 때 배경은 똑같지만 움직이는 물체가 있는 부분이 두 프레임의 차이를 말한다.

프레임의 상관관계를 이용하여 픽셀 차이를 구하기 위해 종래에는 주로 두 프레임 전체를 픽셀 단위로 비교하는 방법을 사용해 왔다. 그러나 이 방법은 비교하는데 많은 시간이 소요되기 때문에 보다 효율적인 프레임 비교를 위해서 본 논문에서는 이미지를 16분할하여 처리하는 방법을 제안한다.

비교 대상 프레임(기준 프레임)과 현재 재생되는 프레임을 비교하여 의미 있는 내용을 추출한다. 즉, 두 프레임과의 비교에서 움직이는 물체가 없는 고정된(기준) 프레임은 추출하지 않고, 움직이는 물체가 존재하는 경우 두 프레임의 픽셀의 차이만을 구하는 방법이다.

이때 픽셀 차이를 비교하여 중복되는 데이터는 제거되고, 의미 있는 데이터만을 가변적인 블록으로 구성하게 된다. 다시 말해서 픽셀 차이를 비교한 후, 같은 부분은 흰색으로 채우고 움직이는 물체(기준 프레임과 다른 부분)만 이미지에 채운다. 프레임을 블록 단위로 분할하는 이유는 의미 있는 픽셀의 값을 객체화시켜서 빠르고 정확하게 처리하기 위한 것이며, 이때 값을 가지지 않은 블록은 의미가 없으므로 연산에서 제외된다.

픽셀(프레임) 간의 차이 값을 구하는 것과 프레임 블록화는 둘 다 영역을 지정한 후 수행이 가능하기 때문에 전체영역을 16분할하여 동시에 스레드를 이용할 수 있다. 따라서 각 분할된 영역의 스레드는 동 시간대에 프레임간의 차이 값 구하기와 프레임 블록화가 수행되고 모든 영역에 대한 작업이 끝났을 때 다음 프레임의 작업을 수행하게 된다.

이렇게 16분할 스레드를 설계함으로써 영상 처리속도를 증대하여 현재 프레임과 다음 프레임간의 속도 간섭을 막을 수 있다. 그림 2는 프레임 16분할 스레드의 구성 예를 나타낸다.


Fig. 2. 
Configuration example of frame 16 partition thread

스레드는 CPU 내에서 실행되는 최소의 프로그램 단위로서 스레드 ID, 레지스터들의 집합, 스택, 프로그램 카운터 등과 같은 정보들로 구성된다. 멀티 스레드는 동일 프로세스 내에서도 메모리 공유가 가능하므로 효율적인 데이터 처리가 가능함은 물론 시스템의 자원 낭비를 줄인다. 본 논문에서는 많은 스레드가 실행될 때 데이터의 데이터 처리의 효율성을 고려하여 16분할하여 영상을 처리한다.

그림 2에서 Locked는 동기를 맞추기 위해 사용하며, 하나의 프로세스에 속한 16개의 스레드는 메모리 등의 자원을 공유하여 병렬처리가 가능하므로 처리속도가 매우 빠르게 된다.

3.2 기준 프레임 지정

기준 프레임(이미지) 지정은 지정된 장소를 촬영하는 CCTV 영상의 특성을 이용하여 지정된 시간마다 기준 이미지를 생성한다. 기준 이미지가 지정되면 그 이후의 프레임들은 이 기준 이미지와 픽셀을 비교하게 된다. 기준 이미지와 이후 프레임의 배경 밝기가 같고 움직이는 물체가 있다고 가정했을 때, 이전과 중복되는 부분에 대해서는 픽셀의 차이가 없으므로 이 부분은 흰색으로 채우고 움직이는 물체만을 추출하여 이미지에 채운다.

비교를 위한 이미지 파일들의 크기를 절약하기 위하여 일정 시간마다 생성하는 기준 이미지를 이용한다. 그림 3의 (a)는 기준 이미지를 생성하기 위한 방법을, (b)는 픽셀 비교를 위한 효율적인 알고리즘을 나타낸다.


Fig. 3. 
Basic image generation and Pixel comparison algorithm

그림 3에서 알 수 있듯이 기준 이미지는 60초 마다 생성이 되며, 이 파일은 암호화되어 저장된다.

3.3 프레임 블록화 및 블록정렬

픽셀 차이를 비교하여 중복되는 데이터가 제거되면 의미 있는 데이터만을 가변적인 블록으로 구성한다. 이때, 픽셀이 같은 부분은 흰색으로 채우고 기준 프레임(이미지)과 달라지는 부분만을 채우고 일정한 크기로 블록화 한다. 만일 이 수준의 값보다 더욱 정밀한 움직임이나 데이터를 추출하고자 한다면 픽셀 비교의 기준 값을 더 낮추거나 블록의 크기를 줄여서 데이터를 추출하면 된다.

블록화를 한 후 각 블록들을 좌측 상단부터 차례대로 채운다. 이때 각 블록의 원래 위치를 찾을 수 있도록 각 블록의 앞에 좌표 값을 넣어준다. 블록화와 블록정렬은 전체 이미지를 블록 크기별로 탐색하여 수행한다. 탐색한 값이 흰색이 아닐 경우에만 값을 저장하여 블록화하고. 그 블록의 첫 번째 좌표를 저장하고 블록들을 정렬한다. 그림 4는 16분할로 동시 실행하는 블록화 및 블록정렬 과정을 나타낸다.


Fig. 4. 
Process of image blocking and block alignment

이러한 과정을 통하여 이미지를 가공했을 때, 불필요한 데이터를 줄여 이미지 파일의 크기를 기존의 원본 이미지 파일 크기보다 최대 1/30까지 줄일 수 있다. 정렬 할 때에는 각 블록의 첫 좌표가 파일에 저장되며 Viewer를 통해 읽어 들일 때 같이 읽어 들여서 블록을 재배치 할 때 사용한다.

3.4 이미지 Viewer 설계

이미지를 영상으로 재생시키려면 각 이미지를 촬영할 때의 처리속도(FPS, Frame Per Second)를 알아야 실제 촬영 영상과 동일한 영상을 볼 수 있다. FPS를 모른다면 영상이 너무 빠르거나 느리고 영상 재생 중 누락되는 부분이 있을 수 있다. 그렇기 때문에 CCTV촬영을 하면서 FPS를 이미지 파일에 같이 저장해야 한다.

Viewer 서버에는 CCTV 영상 촬영 후 가공된 이미지파일들이 저장된다. 이때 이미지들은 블록화 및 블록정렬 후에 저장되기 때문에 Viewer에서는 이미 전송된 각 블록들(조각들)의 좌표(각각의 기준 프레임에 대한 좌표)를 찾아야 한다. 그리고 블록 좌표에 맞춰 기준 이미지 파일에 정렬된 블록을 연결하여 원래 영상을 재생한다.

3.5 기준 프레임의 암호화

제안한 CCTV 보안시스템은 ARIA 암호알고리즘을 기반으로 하여 암호화 및 복호를 수행한다. 대칭키 알고리즘인 ARIA는 블록의 길이가 128비트이며, 128/192/256비트인 키의 길이를 가변적으로 사용할 수 있다. 또한, 키의 크기에 따라 각각 10/12/14번의 라운드를 반복하여 암호화를 실행한다[8].

구현된 암호화 엔진은 암호화와 복호화를 수행하는 라운드 모듈과 키 값을 생성하기 위한 스케줄러로 되어 있다. 본 논문에서는 128비트의 키를 사용하여 암호화 엔진을 설계하고 구현한다.

라운드 함수의 모듈은 키 덧셈(AddRoundKey 함수), 치환 계층(SubstLayer 함수), 그리고 확산 계층(DiffLayer 함수) 등 크게 세 부분으로 구성된다. 라운드 함수의 키 덧셈은 128 비트의 라운드 키와 128 비트의 입력 값에 대해 비트 별로 XOR 연산을 수행한다. 치환 계층은 2 종류로 구성되며, 이들 각 계층은 8비트의 입력과 출력 S-box 그리고 그들에 대한 역변환 구조를 가진다. 확산 함수를 수행하는 확산 계층은 16×16 인볼루션(Involution) 구조이며, 행렬 연산을 실행한다[8].


Ⅳ. 구현 결과 및 성능 평가
4.1 구현 결과

본 논문에서는 기존의 ARIA C(C++) 소스 코드를 C# 코드로 변환하여 시스템을 구현하였다. 각각 클래스를 이용하여 정의 부분과 암호화, 복호화 부분을 재구성 하였으며, 고정 키 값을 설정하여 사용하였다. 그림 5는 기존의 ARIA 알고리즘의 C 소스코드를 C# 코드로 변환하는 과정을 나타낸다.


Fig. 5. 
Process of converting conventional ARIA C source code to C# code

그림 6은 정렬된 프레임과 기준 프레임의 암호화된 예를 보여준다.


Fig. 6. 
Examples of aligned frames and reference frames

블록 정렬 후 나오는 최종 프레임(정렬된 기준 프레임)에 대해서만 암호화를 수행한다. 그림 6에서 알 수 있듯이 정렬된 프레임을 암호화했을 경우 동일한 주소(Address)에 암호화된 프레임(기준 프레임)이 저장되어 있다. 이때 암호화 대상 파일은 기준 프레임 파일(bmp 파일)이며, 이 파일은 특성상 헤더부분이 손상되면 파일 전체를 읽을 수 없게 된다. 그래서 본 논문에서는 프레임의 헤더 부분인 bmp 파일은 부분적으로 암호화하여 암호화 속도를 높이는 방법을 이용하였다.

그림 7그림 6의 정렬된 프레임의 3개의 평문(Plaintext) 주소(Address)에 대한 각각 암호화(Ciphertext) 및 복호화된(Decrypted) 결과를 보여준다. 위에서 설명한 것처럼, 영상 시스템에서의 Viewer는 고정 프레임 파일과 정렬된 파일, 그리고 좌표 파일을 읽어 들인다. 그 다음에 좌표 파일로부터 블록의 좌표를 읽어 들이고 블록 정렬에 이 좌표를 적용시켜서 블록을 원래 위치로 이동시키는 역할을 한다.


Fig. 7. 
Result of both encrypted and decrypted frames for aligned frames

4.2 성능평가

표 1은 5분간 영상을 촬영하면서 기존의 원본영상[4]과 제안한 방법에 대한 실험결과를 나타낸다.

Table 1. 
Performance comparison and result of image processing
Items Processing speed(FPS) Average capacity(KB) Security
Methods
Original[4] 12 901 Weak
Proposed1 20 188 Weak
Proposed2 20 195 Excellent

원본영상의 경우는 영상을 가공하지 않고 동영상을 그대로 촬영한 방법이다. 실제로 국내에서 제일 많이 쓰이는 방법으로 많은 저장 공간을 필요로 하고 누구나 접근이 가능하여 데이터 보안에 문제가 있다. 제안방법1은 여기에서 제안한 분할 스레드 기반의 방법을, 제안방법2는 분할 스레드 기반 및 암호화 방법을 병행하여 수행한 결과를 나타낸다.

표 1에서 알 수 있듯이 제안방법1은 기존의 원본 영상[4]과 비교하여 FPS는 약 40% 정도 개선되었다. 그리고 용량의 경우도 약 75% 정도 감소되었지만, 누구나 접근이 가능하여 보안에 노출되어 있다.

제안방법2의 경우는 BMP 파일의 헤더부분만 부분적으로 암호화되어 전송하므로 속도 면에서는 방법1과 차이가 없다. 그러나 평균 용량의 경우는 암호화 수행을 통하여 어느 정도 증가하였지만, 비인가자의 접근 및 기밀성이 보장되므로 보안성은 우수한 편이다.

그림 8은 Viewer에서 실행한 화면의 일부분을 나타낸다. 그림 8에서 흰색으로 보이는 부분은 기준 프레임과 변화(차이)가 없는 부분을 나타낸다. 4개의 파일 들 중에서 서버에 파일로 저장되는 이미지 파일들은 블록 정렬과(a)과 기준 프레임(c)이다. 기준 프레임과 블록 영상(d)은 기준 프레임에 블록 재배치된 결과를 합성한 영상인데 실제 촬영되는 영상이 (d)와 같다. 암호화된 이미지는 Viewer에서 영상을 재생할 때만 복호화를 행한다.


Fig. 8. 
View display in Viewer, (a) Block alignment, (b) Block rearrange, (c) Reference frame, (d) Block synthesis with reference frame

구현된 CCTV 영상 보안시스템은 Visual Studio 15의 C#을 사용하여 구현하였으며, 카메라는 USB WebCam ALC-M600을 사용하였다.


V. 결론 및 향후 과제

기존의 CCTV는 영상을 가공하지 않고 원래의 영상을 디지털 영상으로 전환하여 사용하기 때문에 영상에 대한 위조, 변조 등에 있어서 보안성이 취약하다.

본 논문에서는 ARIA 알고리즘을 사용하여 프레임 분할 스레드 기반의 CCTV 보안시스템을 구현에 관하여 기술하였다. 구현된 시스템은 중복되는 프레임을 제외하고 의미 있는 프레임만을 추출하여 기존 중복되는 프레임에 합성하여 영상을 가공하므로 프레임 용량을 대폭 줄일 수 있다. 구현된 보안시스템의 처리속도는 기존의 영상처리 방법[4]에 비해 약 40% 정도 개선되었고, 용량의 경우는 약 60% 정도 감소하였다. 또한, 구현된 시스템은 영상 데이터가 암호화되어 저장되기 때문에 제 3자에 의한 개인정보나 사생활 침해 등을 방지하는데 효과적이다.

향후, 전자정부의 대국민 행정 서비스 및 공공기관에서 사용하는 CCTV에도 쉽게 적용할 수 있도록 영상데이터 가공 및 처리속도 개선에 대한 연구가 필요하다. 또한, 가전제품, 의료, 교통, 환경·재난, 에너지 등 실생활에 밀접한 분야로 IoT 기기에 적용하기 위한 저전력, 경량화 기반의 암호 및 인증 기술에 대한 연구가 필요하다.


References
1. S. M. Kim, "CCTV Image Security Market", Security World, Boannews, 2018.
2. TTA, "Development Trend of Image Information Security Technology", TTA Journal, 2017.
3. S. W. Park, "Security Diagnosis and Operation Issue for CCTV Control System", CCTV Journal, Vol. 13, No. 15, 2016.
4. J. S. Kang and M. S. Kang, "Design of AES Crypto-processor Based on Composite Field S-Box for Security CCTV System", Journal of Security Engineering, Vol. 13, No. 5, pp. 363-378, Oct. 2016.
5. G. J. Hwang, J. P. Park, and S. M. Yang, "RealTime Personal Video Image Protection on CCTV System using Intelligent IP Camera", Journal of Korea Academia-Industrial Cooperation Society, Vol. 17, No. 9 pp. 120-125, Sep. 2016.
6. Yu-Dong Hwang and Dong-Gue Park, "Security Requirement and Framework for IP-Based Video Surveillance System", Journal of KIIT. Vol. 15, No. 5, pp. 11-20, May 2017.
7. Setiya Purbaya, Dodi Wisaksono Sudiharto, and C.atur Wirawan Wijiutomo, "Design and implementation of surveillance embedded IP camera with improved image quality using gamma correction for surveillance camera", Proc. of IEEE International Conference on Science and Technology – Computer (ICST), Yogyakarta, Indonesia, pp. 110-115, Jul. 2017.
8. Tan Zhang, Aakanksha Chowdhery, Paramvir Bahl, Kyle Jamieson, and Suman Banerjee, "The Design and Implementation of a Wireless Video Surveillance System", Proc. of ACM MobiCom’15, Paris France, pp. 426-438, Sep. 2015.
9. NSRI, Security and Performance Analysis of ARIA, http://www.nsri.re.kr/ARIA, 2003.

저자소개
강 민 섭 (Min-Sup Kang)

1979년 2월 : 광운대학교 전자통신공학과 졸업

1984년 8월 : 한양대학교 전자공학과 (공학석사)

1992년 2월 : (일) Osaka University 전자공학과 (공학박사)

1984년 ~ 1993년 : 한국전자통신연구원 선임연구원

2001년 ~ 2002년 : Univ. of California, Irvine 전기전자공학과 객원연구원

1993년 ~ 현재 : 안양대학교 컴퓨터공학과 교수

관심분야 : 암호프로세서 설계, ASIC 설계, 네트워크 보안, 영상처리, 임베디드 시스템, IOT