谢慧芝,刘 晔,彭 煜,郭 昊
(1.南昌大学电子信息工程系,江西南昌 330031;2.暨南大学信息与科学技术学院电子系,广东广州 510632;3.中国移动通信集团江西吉安分公司,江西吉安 343000)
基于Android的嵌入式加密视频监控系统研究应用
谢慧芝1,刘 晔1,彭 煜2,郭 昊3
(1.南昌大学电子信息工程系,江西南昌 330031;2.暨南大学信息与科学技术学院电子系,广东广州 510632;3.中国移动通信集团江西吉安分公司,江西吉安 343000)
信息技术飞速发展,传统视频监控系统已经跟不上时代的步伐,需要设计一种方便携带、安全性能高、可随时观察的视频监控系统。简要介绍了嵌入式加密视频监控系统的组成,对Android客户端的通信机制、AES加密算法做了重点的阐述。同时对目前视频监控系统存在的许多问题进行了分析,并针对性地提出了解决方案。
Android,嵌入式,AES,视频监控
【本文献信息】谢慧芝,刘晔,彭煜,等.基于Android的嵌入式加密视频监控系统研究应用[J].电视技术,2014,38(3).
视频监控是一种防范能力较强的综合系统,是安全防范系统的重要组成部分,视频监控拥有直观、准确、及时和信息丰富等优点,能够广泛应用于各种场合[1]。在近几个世纪的发展中,伴随着3G/4G通信与嵌入式技术的蓬勃发展,视频监控技术也发逐渐由企业化进入人们的日常生活中。
与此同时,随着人们对个人隐私保护重视程度的逐年增加,视频监控系统基本的监控功能已经不能满足人们的需求,人们在得到消息的同时考虑更多的是如何保存消息以防止消息泄露。因此监控系统也需要顺应时代潮流的发展,在原有的基础上加入相应的加密模块,实现对采集得到图像的加密工作,对应的解密则设计在客户端,根据客户的需求对图像进行解密处理,这样也有效地防止在传输过程中信息的泄露。
Android能够作为目前手机市场占有率最大的智能终端,主要得益于其开源的优势。开放源代码使Android在应用程序的开发上具备显著的优势,基于Linux的Android可以与各种基于Linux平台的ARM嵌入式处理器进行通信。这两点让Android成为新一代视频监控系统的主角。
Android架构主要分为4层,分别为Linux内核层、系统运行层、应用程序框架层以及应用层[1]。内核层是一个抽象的层次,主要提供核心服务;运行层包括核心层和它所对应的虚拟机Dalvik应用层,主要预装一组核心应用程序;应用程序框架层主要用于发布不同应用程序,具体功能应用如表1,其中Java是Android系统默认的开发语言[9]。
表1 Android应用机制
Android客户端通信模块主要由4个模块构成[9],客户端通信机制具体结构框图如图1所示。由图1可知,当主控模块向网络通信模块发出控制命令后,通信模块接收采集得到的数据,经过视频缓冲区到达视频解码模块进行解码,最后由视频显示模块刷新屏幕时就能得到实时的传输影像。
AES加密算法即密码学中的高级加密标准(Advanced Encryption Standard,AES),又称 Rijndael加密法,是美国联邦政府采用的一种区块加密标准[10]。
图1 Android客户端总体框架
AES加密算法的变换是一种基于矩阵的运算,这种算法很适合用硬件来实现。AES加密算法除了具有中间数据量恒定的特点外,还拥有开源的大多数项目。许多的程序员都可以利用这些个开源的项目来开发适合自己所要搭载的目标板的AES加密系统。
AES加密算法主要由4个变换构成[8]:字节代换、行移位变换、列润滑变换以及轮密匙加变换,具体结构如图2。AES算法具备的优点有:密钥安装速度快、占用的内存空间少、设计简洁明了、能支持目前多有的主流应用平台、支持并行处理、可抵御目前所有已知攻击。
图2 AES加密结构图
字节代替是一种非线性字节置换。字节代替的实质就是将状态里面的每个字节通过一系列非线性变换过程后,变成另外的字节。它是AES算法中唯一的一组非线性变换。
行移位变换类似于数字电路与逻辑设计中移位寄存器的变量存储。具体变换过程如图3。
图3 AES行移位变换
列润滑变换也可称之为列混合,列混合的实质是矩阵的乘法,在有限域上矩阵的乘法实质是2个矩阵经过线性运算后对X4+1取模。
加轮密钥运算简单,可以看成有限域的加法运算,对进行过列混合以后的输出矩阵再进行异或运算。
AES模块一般包括2个部分:AES加密模块和AES解密模块[10]。本文主要讨论的是在USB2.0内加入1个AES加密模块,加密后的数据,经过无线路由传输后到达PC端时,再经由专门的AES解密软件对数据进行解密处理。AES解密模块一般有两种形式:第一种是将加密模块与解密模块放在同一个芯片内;第二种则是在PC端设置专门的解密模块,本文采用的就是第二种方法。由于AES算法的加密过程已经在2.1节中叙述,因此本节列举AES加密模块的相关端口如表2所示(其中I表示输入input,O表示输出output,宽度的单位为bit),经由端口显示的数据来判断该芯片是正在加密还是已经完成一轮加密。当LD为1时,开始加密。当DONE=1时,加密过程完成一次。
表2 AES加密端口
USB加密芯片主要由两大功能模块组成:AES加密模块和USB2.0通信模块。其中AES加密模块对收到的视频数据加密。根据数据的流向,能够把系统的工作原理划分为2个部分,即PC—芯片以及芯片—PC。
PC—芯片的流程指的是PC通过Linux内核向对应加载的USB发送指令,USB2.0加密芯片接收该指令,而后做好从视频采集端接收数据的准备。
芯片—PC的流程指的是加密芯片在上一环节做好接收准备后,接收到来自终端的图像数据,USB 2.0加密芯片对采集来的图像数据进行加密,将加密后的数据存储在USB摄像头的数据存储模块中,通过无线网卡与无线路由互连将数据传给ARM9嵌入式板的S3C2440处理器,经由处理器处理后再通过PC端安装的解密模块,将数据解密而后在视频接收端的管理界面上显示。
鉴于AES利用循环群复原复杂性作为安全依赖,改进算法本身没有特别的意义。通过实验可以知道加密过程的运算时间也不能直接被缩短。因此唯一能使用的方法就是在编程时利用直接查表的方法查找对应指针,而后缩短乘法运算的处理器时间。
AES加密模块在GF(28)上两个元素乘法的结果可以看成这两项元素对应的二进制多项式的乘积对一个阶数为8的不可约二进制多项式取模的运算结果[3]。AES加密的运算过程可以看成是矩阵变换的过程,因此,要想减少乘法运算的处理时间,就必须对相关的乘法运算先进行分解接着合并多项式,从而合并其中相同的运算单元,再将复杂的不同单元作为不同的整体去看待,目的是使最终结果简单化,从而逐步实现运算时间的优化;此外也可以采用查表的方法取代乘法运算,这样做可以节省乘法计算的时间但是与之相对应的是要耗费一定的存储空间。
本文所设计的视频监控系统主要实现的功能是:通过前端USB摄像头实时获取视频图像数据,采集得到的数据经过USB2.0加密芯片加密后,返回至USB加密芯片的存储单元存储,经由USB无线网卡与无线路由构成的无线网络传输,把所获得的视频图像数据实时地传送到远端的移动终端上,通过移动终端上专门的解密软件进行解密,显示出采集所得到的图像,实现视频的远程监控。整个系统主体结构如图4所示。
图4 视频监控系统主体结构图
确定整个系统的构成后,在实验室环境中采用S3C2440芯片,先建立交叉编译环境,交叉编译环境建立成功后,对嵌入式Linux内核进行相应的裁剪并移植,移植过程中主要使用U-Boot技术,内核移植成功后,加载相关的功能硬件,实现功能硬件在嵌入式系统上的正常使用。相关功能硬件的加载包括USB主控制器在内核中的配置、根文件系统目录的构建、YAFFS2文件系统镜像的生成、USB摄像头驱动程序的移植、USB无线网卡驱动程序的移植、USB2.0加密芯片驱动程序的移植。相关功能硬件加载成功后系统的软硬件平台搭建完成。
软硬件平台搭建成功后,编写相应的程序实现视频数据的采集与传输,视频数据采集采用V4L技术,V4L是专门为Linux操作系统定制和设计的,V4L所提供的API源码已经集成到Linux内核中,因此需要在程序中做相应设置完成视频图像的采集过程。视频数据的传输采用无线局域网,基于TCP/IP协议中的UDP格式。在视频传输的客户端与服务端采用C/S模型,在Dalvik上运行写入的视频图像传输代码,对源码make之后再out下生成data,system,root三个文件,用交叉编译环境将这些文件做成一个imag,烧录至Linux系统中,完成客户端与服务端的相关传输流程,最终在三星手机移动终端上得到实时传输的图像。
由于本课题目前仍处于实验室测试阶段,很多相关的应用功能并未能得到全面的扩展,本课题可以扩展的空间如下:
1)Android操作系统版本较多,存在很大的“碎片”问题,由于本系统要求在Android 4.0环境下进行,目前大多数手机使用的仍然是Android 2.2/2.3,因此该系统下的视频监控系统目前很难被普及,可以针对目前情况设计一种基于Android 2.3的视频监控系统。
2)在本课题的设计中,数据的实时传输速率直接影响了视频监控系统的高效运行,可以试着采用多路由捆绑复用来提高数据的上行传输速率,但由于时间不足,未能完成验证。
3)本课题采用AES算法进行加密,但是并未在相应的芯片内设计解密环节,而是将解密环节放在了PC端的应用软件上,加密后的数据包在传输过程中会占用系统较大的内存,使传输速率减慢,因此可以设计尝试将AES加密模块与解密模块融合在同一块芯片上,减少占用内存提高传输速率。
本文所设计的视频监控系统基于Android 4.0版本,采用java编写相应的应用程序在虚拟机上运行,之后利用交叉编译环境与目标板进行通信连接,运行结果显示:加密后的数据在移动终端解密,安全性高;数据传输过程未出现丢帧现象,稳定性好;使用手机作为终端,方便实时观察。这些结果表示本系统能够弥补传统视频监控系统的不足,而且由于Linux系统开源的特点,本课题存在长远扩展的空间。
:
[1]陈金凤.一种基于Android的视频监控系统的控制与实现[D].上海:上海交通大学,2011.
[2]苏黎明,张晓波,苗凤娟,等.DES算法FPGA实现的研究与比较[J].齐齐哈尔大学学报,2006,6(2):37-39.
[3]张祖鹰.嵌入式移动存储设备加密系统的设计[J].微计算机信息,2008,36(36):93-95.
[4]WILLIAM H,TRANTER K,SHANMUGAN S,et al.Principle of communication system simulation with wireless applications[M].[S.l.]:Prentice Hall,2003.
[5]GREG K H.Linux kernel in a nutshell[M].[S.l.]:O’Reilly Media,2006.
[6]孙万忠,苏锦海,张永福.USB安全钥模型的构建与实现[J].计算机工程与设计,2007,24(18):4360-4362.
[7]蔡勇.视频监控平台网络配置管理的设计与实现分析[J].信息安全与技术,2012,12(8):74-76.
[8]王文杰.USB2.0加密接口芯片的设计及其FPGA验证[D].长沙:中南大学,2008.
[9]曹晓芳,王超,李杰.一种基于Android智能手机的远程视频监控系统的设计[J].电子器件,2011,6(6):709-712.
[10]龚进.AES加密算法在电子系统中的优化及应用研究[D].太原:中北大学,2012.
Research and Application on Android-based Embedded Encryption Video Surveillance Systems
XIE Huizhi1,LIU Ye1,PENG Yu2,GUO Hao3
(1.Department of Electronic Information Engineering,Nanchang University,Nanchang 330031,China;2.Department of Electronic College of Information Science and Technology,Jinan University,Guangzhou 510632,China;3.Ji An China Mobile Communications Group,Jiangxi Ji'an,343000,China)
With the rapid development of information technology,a new video surveillance system,which contains convenient carry,high-performance security and anytime surveillance,is indispensable.In this paper,the embedded encryption video surveillance system components are introduced briefly.It focuses on the Android client communication mechanism and AES encryption algorithm.Meanwhile,some problems are analyzed,which exists in the system,and the solutions are offered.
Android;embedded;AES;video surveillance
TN29
A
谢慧芝(1989— ),女,硕士生,研究方向为通信技术与系统。
责任编辑:魏雨博
2013-04-11