视频监控系统安全传输复合加密算法设计
2021-06-28王晓芳
陶 槊,王晓芳,陈 滨
(合肥科技职业学院电子信息系,安徽合肥 231201)
全球视频监控系统在用摄像头数量已达7.7亿台[1],为保证监控系统的安保效能,必须对系统存在的漏洞与安全隐患进行防范与修补。目前常用的方法是依靠传统加密方式,如3DES/AES/hash及改进算法等,对图像元素(pixel/bit/相移)加密[2],或者对视频编码流实现全加密[3-4]。现有方法的缺点是难以控制码流的压缩率,从而影响网速与视频存储,或者是解决方案因加密手段过于繁琐、对设备要求过高而难以普及[5]。因此,本文采用非对称与对称加密分步结合的模式,在保证传输效率的前提下,尽量增加密钥空间,提高系统的安全性。
1 技术方案与工作思路
在当前视频监控产品都在向智能化、高清化的发展趋势下,受硬件处理能力、带宽时延等条件的限制,只能继续依靠H.265/HEVC(High Efficiency Video Coding)编码标准[6]。视频传输所依托的IEEE802.3架构,面对Ethernet和无线移动传输技术自身的诸多不足与漏洞[7],最有效的解决策略是让视频在生成、通信连接和调用过程中实现可靠的身份验证。在信息传送过程中,对码流采取符合监控特点和要求的加密方式来保护传输安全。
根据监控系统现有技术与条件,选取高效算法,进行针对性改进及合理组合。连接通过连续的双向身份验证:利用建立连接时所包含的随机信息不易被掌握的特点,用于生成增强ElGamal算法密钥。在视频中断/重连后,不定时的交换握手验证信息与非对称加密公钥,使非法入侵者难以实现“中间人劫持”[8]。
鉴于高清数字监控对实时性和大流量的要求,首要工作是加密代码的快速生成,其次是低冗余与时延、兼容现有产品编码格式,再保证合理可靠的安全性。基于此,利用H.265特定熵编码格式,结合改进的logistic混沌加密算法控制编码长度,改进对称加密RC6算法,实现码流置乱,提升破解难度。
2 设计原理与过程
2.1 身份验证
为保证监控设备在建立连接时的及时性和可信性,本文提出利用视频码流和生成时间的不确定性作为参量实现身份验证。在连接建立时,可以追溯发送者身份,通过连续身份检验保证连接双方可靠通信。相对其他传统的非对称算法,数字签名算法(DSA)的ElGamal算法[9]具有生成迅速、安全可靠的特点,所以在1991年被NIST(National Institute of Standards&Technology)确定为数字签名标准(DSS)。为保证双方验证安全,以该算法为基础进一步改进,基本过程为:监控两端设备内部有各自信息串x(图像首码流定时截取),离散握手时间戳t、t1、t2(t<t1<t2),生成随机大素数p=P(xt,t),g=G(xt,t),且p≠g,生成公钥:
被验证方利用收到的公钥key(p,g,y),对要发送的验证信息M(t,t1,t2,x)=M1M2加密:
验证方获得密文C=(C1C′1)(C2C′1)进行解密:
双方互换对方的握手信息M M′,作为动态更新的双方验证码,包含本机序列号、时间序列、背景参量n阶矩阵抽取Dn瞬时协商函数f(t)、迭代数i等参数,用于后续传输加密的初始信息。在系统脱机重新建立链路再鉴别身份时,由于对方需要断网前一时间握手时某个瞬间的x,冒充者难以提供,无法生成正确的p或g,即无法通过双向验证,可有效阻止被顶替/劫持,控制端及时收到报警[8],过程见图1所示。
图1 收发端安全验证过程
2.2 编码处理
根据H.265视频流编码过程:原始图像首先实施GoP自行条片(Slice/Tile),矩阵4分叉为CTU(Coding Tree Unit)、转编码单元(CU)、预测单元(PU)、变换单元(TU)基本块,进行预测、DCT 变换(Discrete Cosine Transform)、量化、去块滤波(deblocking filter)[10],然后进入熵编码加密。在CABAC的DCT变换中,视频移动快,目标能量主要集中到low_freq_coeff区间;纹理复杂图像能量主要集中在high_freq_coeff区间。当图像呈连续变化时,二进制流出现重复0/1,便于熵编码预测。CABAC参数变换后二进制流包括:常规部分(x+y+SCF+GR1+GR2)+旁路部分(SIGN+REM)[11]。在生成过程中,常规编码本身具有很强的上下文相关性(Context Modeling),对其能量集中区进行加密会对整个码流的识别产生重要影响。而监控产品出于通用性考虑,一般会在出厂时将QP(Quantization Parameter)固定(21-30),这样就能把常规编码复杂度控制在一定范围内。将TU局部熵编码(局部SCF+旁路GR1+SIGN+REM)(64位)作为源码,以改进的logistic算法生成语法元素(Syntax Element)的密钥,对熵编码RBSP(Raw Bit Sequence Payload)实体部分实施加密,见图2。
图2 熵编码复合加密流程
用改进的RC6(Rivest Cipher-6)[12]对熵编码关键信息分组置乱,在保证基本安全的前提下,兼容熵编码格式,不会对HEVC视频压缩率造成太大的影响[13]。
2.3 加密过程
(1)加密算法
基本logistic混沌的缺陷是对初值和参数敏感,映射空间窄,安全性不高,优点是计算简单。对原算法进行改进,引入修剪和指数,得
作为新的混沌映射关系,式中k为控制系数,由监控系统产品决定;xn为序列状态,x0∈(0,1),n∈N+,这样在k、μ未知的情况下,求解反推xn困难[15]。当μ>3.127时,即进入混沌状态,好于原logistic分岔(bifurcation)混沌的分布性(信息点x分布情况见图3)。因为改进函数具有比原logistic更宽阔的混沌区间,把k值的确定交由前后台双方不定时连接随机协商函数f(t)决定,增加其破解难度。
图3 改进算法混沌映射分布
为保证该混沌分布的无序性和均匀性,用LE(Lyapunov Exponent)来考察此指数混沌函数的相空间相邻轨迹的平均分布情况,用下列函数求LE[16]:
λ为LE的计算值,其中x0=0,取N=1000,设偏差间隔Δxn=0.001,k=1,求f(xn)的导数,迭代得λ。从图4 可知,当μ=9.142,有λmax≈0.857 3。根据传统logistic 混沌计算[17],在所有参数一致的条件下,混沌区间的LE在(0.45,0.7)之间,而根据本文方法,LE最大值大于0.7,表明改进算法优于传统算法。
图4 改进logistic混沌的LE
(2)序列发生器与密文生成
取步长Δxn=0.001,用Runge-kutta算法对改进logistic混沌序列迭代n次,生成的xn∈R,还必须对混沌后的E(xn)二进制展开,表达式为[18]
(3)码流置乱
为确保密文安全,不能被轻易反推,采用改进的RC6算法进行码流置乱[19]。RC6分组加密算法可以自定义视频流加密长度块LCi=64位,加密轮数r(由握手函数协商,r≥16),密钥长度LKi=64位。密钥数组,定义4 个32 位寄存器:r1-r4=熵编码参数段,则整个加密过程表示为:
将Entropy Bitstream按照SE idx参数表对应的MVD(Motion Vector Difference)、DC系数阵、帧内/间参数码流、Regular&Bypass codes局部常量部分64 bits分组进行置乱,获得加密传输编码流。收方根据bitstream段header提取字段,以逆算法解密。
3 实验结果与分析
搭建仿真服务器,在Visual Studio 2010中加载HM-16.18(为适应监控环境,选择MV-HEVC版),实现标准编码函数调用,加载HM_vc2010.sln,加/解密图像效果如图5所示。
图5 加/解密图像效果。(a)原图像;(b)加密图像;(c)解密图像
3.1 效果测试
从图5(a)~(c)加/解密图像效果可以看到,改进的算法处理直观效果符合预期。为确定kμ取值区间,分别取多路视频编码加密,假设视频硬件处理耗时平均以29帧/s计,获得在不同分辨率(dpi)下总的平均耗时百分率统计表(见图6)。从图中可以看出,如果依据HEVC所面向的一般64位长监控设备,最好控制4 <kμ<50,否则会快速增加监控两端加解密的运算处理时延。
3.2 主要身份验证算法比较
对比几种非对称加密身份验证算法模式[22-23](见表1),考虑安全性、算法效率、密钥空间、抗攻击性、设备要求等一系列综合因素,本文是针对监控环境特别设计的ElGamal算法结构,更具实用性。
3.3 同类方法实验分析
为保证研究的客观性,分别选取几种具有代表性的混沌或复合加密算法进行评估。在仿真环境相同的条件下,对比这些视频加密方法的效果。
信息熵是反映编码随机性的重要指标,用以衡量加密后图像变换情况[21]。图像熵值越高,表明编码随机性越好。信息熵的表达式如下:
其中p(xi)是图像点xi出现的概率,N=256。信息熵的理想值为8。
视频是连续变化的,存在加密图像的相关敏感性,密文前后的变化,可以分别用像素变化强度(NPCR)和灰度平均变化强度(UACI)来考察加密效果,其表达式如下:
其中Pij,为图像加密前后图像像素点的灰度,M、N为图像尺寸,理想值应分别是99.6%与33.4%。
表2为几个同类算法加密效果对比结果,由表2可知,本文算法的加密强度适中。
表2 各算法的信息熵、NPCR和UACI比较
算法效率可通过计算视频生成时间获得,如表3所示。由表3可知,文献[13]中的logistic算法采取直接局部熵编码,虽然耗时短,但安全性低;文献[14]中的置换算法受算法复杂度限制不适于通用监控产品;文献[17]中的方法生成密钥强度不足,图像压缩率低;文献[19]报道的复合算法基于像素加密,编码耗时大,算法效率低;文献[20]中的方法随着图像分辨率的增加,处理耗时快速增加;本文的算法是以适度安全性为前提,针对监控产品QP出厂初值固定的特点,对局部熵编码特定分布加密来提高算法效率。结合上节LE分析可知,通过算法改进,本算法具备比多数传统算法更优的安全性[23],从功效比来看,更适用于监控场合。
表3 各视频生成-加密算法平均耗时统计(单位:min)
4 结束语
根据目前主流的视频加密模式的各种优缺点,本文针对视频监控系统的应用场合,提出了两点改进算法及组合:(1)利用改进的ELGamal算法实现监控两端连接的可靠身份验证;(2)为保证视频码流的安全传输提出了一种改进的指数logistic混沌系统和RC6 加密算法。本文算法在不增加算法复杂度的前提下,可以提高原算法安全系数。实验证明,该复合算法是可靠的,有很强的实用性,并给出了合理的配置参数。总之,在同等条件下,改进的算法不仅可以保证监控视频传输的安全性,而且兼顾了码流的处理效率,可以被推广应用。