【技术实现步骤摘要】
基于关键帧和图像压缩的视频流并行混沌加密的方法
[0001]本专利技术属于混沌加密和并行计算领域,具体为提取视频流中的关键帧,对关键帧的感兴趣区域和经过压缩后的非关键帧结合完全二叉树实现混沌并行加密。
技术介绍
[0002]随着数字通信和网络技术的迅速发展,信息的安全传输也被视为一个关键的问题。如果不能保证互联网上的信息被高效又安全地进行传输,用户的隐私就会受到威胁。通过互联网共享和存储的多媒体大多以图像的形式出现。不同于文本信息,图像可以更加直观且立体的表达人们想要表达的内容,也更加的形象生动,所以每天都会有海量的图片在网络上传输,一旦在传输过程中受到攻击,将会给个人用户、商业和政府机构带来不可估计的损失。如何使这些图像高效又安全地在网络上传输是人们迫切需要解决的问题。
[0003]视频流是由数字图像构成,数字图像加密通过使用数学算法将原始图像转换为难以解释的形式,从而增加对安全攻击的抵抗力,例如暴力攻击、统计和差分攻击。加密后的图像与原图像相比,其变化主要表现为像素空间位置变化、像素值变化以及相邻像素相关性变化。在图像加密过程中,原始图像与密钥结合以对图像进行编码,而对于图像解密过程,使用解密算法对加密图像进行解码以恢复原始图像。
[0004]混沌系统是一类非线性动态系统。它具有复杂的伪随机性,既不具有周期性,也不具有收敛性。混沌系统对系统的初值非常敏感。初始值的微小变化将影响整个系统的变化,这在密码学中具有重要价值。由于混沌系统对初始值的敏感性和强跟踪遍历性的特点,它经常被用作伪随机数发生器。相 ...
【技术保护点】
【技术特征摘要】
1.一种基于关键帧和图像压缩的视频流并行混沌加密的方法,其特征在于:Part_1、对视频流的图像帧进行预处理;通过帧间差分法提取视频流中的关键帧,对关键帧图像采用高斯肤色模型提取人脸特征,定义关键帧图像的感兴趣区域(Region of Interest,记为ROI),对非关键帧图像采用DCT(Discrete Cosine Transform)压缩变换,将关键帧中的ROI区域图像和压缩后的非关键帧图像放入构建完成的完全二叉树中;Part_2、通过混沌密码发生器生成的混沌序列对图像执行并行加密过程;混沌密码发生器包括2D
‑
Logistic混沌系统和四维Chen混沌系统,四维Chen混沌系统生成的混沌序列用于图像的置乱和多方向扩散,2D
‑
Logistic混沌系统生成的混沌序列用于图像的循环移位和扩散,多维混沌系统的初始值由SHA
‑
256函数生成的每幅明文图像的哈希值设定;Part_3、加密过程分为两部分,第一部分是对关键帧中感兴趣区域图像进行加密,第二部分是对压缩后的非关键帧图像进行加密,通过四维Chen混沌系统生成的混沌序列实现对感兴趣区域图像的加密,使用2D
‑
Logistic映射实现对压缩后的非关键帧图像加密,图像的置乱和循环移位过程通过完全二叉树中图像所在结点位置确定,算法为对称加密算法,解密算法为加密算法的逆过程;一种基于关键帧和图像压缩的视频流并行混沌加密的方法,具体包括:Part_1、视频流图像预处理Func1.1、关键帧提取具体步骤描述为:S1_1_1、设视频流中的帧为{f1,f2,f3,
…
,f
len_n1
},其中,len_n1为视频流中帧的总数,每一帧大小为M
×
N,M代表存储的矩阵行数,N代表存储的矩阵列数,选取两个视频帧记为f
i
和f
j
,i和j为整数,1<= i, j <= len_n1,计算平均帧间差分强度D:D(f
i
,f
j
)=(∑|f
i
(pos_x,pos_y)
‑
f
j
(pos_x,pos_y)|)/(M
×
N)其中,pos_x和pos_y代表点的位置坐标;S1_1_2、假设t为目标阈值,前景点数占图像比例为w0,平均灰度为u0;背景点数占图像比例为w1,平均灰度为u1;图像的总平均灰度u计算为:u=w0*u0+w1*u1;前景和背景图像的方差g计算为:g=w0*(u0‑
u)*(u0‑
u)+w1*(u1‑
u)*(u1‑
u)设置方差最大的分割阈值作为图像二值化的阈值;S1_1_3、根据选择的目标阈值t,确定视频流中的关键帧;S1_1_4、当平均帧间差分强度D>t时,f
i
为关键帧;当平均帧间差分强度D<=t时,f
i
为非关键帧;S1_1_5、Func1.1过程结束;Func1.2、关键帧的感兴趣区域提取具体步骤描述为:S1_2_1、基于高斯肤色模型实现对人脸特征提取,采用带有人脸特征的彩色图像作为训练图像;将RGB图像转换到YCbCr空间中;其中,Y表示亮度,Cr表示RGB图像中的红色部分,Cb表示RGB图像中的蓝色部分;S1_2_2、将YCbCr空间中全部像素的Y值按照由大到小的顺序排列,通过循环排列前5%的像素数,存放到集合中作为参考白,计算参考白的像素平均值;通过参考白的像素平均值
计算光照补偿系数,将光照补偿系数与原图像中对应的R、G、B的像素值相乘,得到光照补偿后的训练图像;S1_2_3、对光照补偿后的训练图像,截取每张训练图像中带有肤色图像的部分,构建二维高斯肤色模型G_D2=(m_gd2,C_gd2),其中m_gd2是平均值,C_gd2是协方差矩阵;每个像素点的色度向量为Xi_gd2=(Cb,Cr)
T
,()
T
代表转置操作,平均值m_gd2和协方差矩阵C_gd2的计算公式为:m_gd2=E(Xi_gd2)=1/ len_n2∑
len_n2i=1
Xi_gd2C_gd2=E[(Xi_gd2
‑
m_gd2)(Xi_gd2
‑
m_gd2)
T
]=1/len_n2∑
len_n2i=1
(Xi_gd2
‑
m_gd2)(Xi_gd2
‑
m_gd2)
T
其中,len_n2为训练样本中的肤色像素的数量;S1_2_4、二维高斯肤色模型通过判断各像素点的Cb和Cr值距离其平均值的远近得到图像每个像素属于肤色的概率;概率p(Cb,Cr)的计算公式为:p(Cb,Cr)=exp[
‑
0.5(Xi_gd2
‑
m_gd2)
T
C_gd2
‑1(Xi_gd2
‑
m_gd2)]其中,exp()是以自然常数e为底的指数函数;S1_2_5、输入待检测图像,对图像二值化处理,与输入图像比对排除非人脸区域,通过阈值分割将肤色区域和背景区域分开,选定阈值后,将计算的概率与阈值比较,大于等于阈值选定为肤色像素,反之为非肤色像素;S1_2_6、对二值化图像得到初步肤色区域进行形态学处理,对初步得到的肤色区域进行先腐蚀后膨胀的开运算,通过判断人脸区域面积,设置固定大小的人脸特征的矩形,获得最终的人脸区域;感兴趣区域图像序列记为ImageSeq={IsR1,IsR2,
…
,IsR
len_n3
},len_n3代表集合元素数量;S1_2_7、Func1.2过程结束;Func1.3、非关键帧的图像压缩具体步骤描述为:S1_3_1、对非关键帧的视频图像采用DCT离散变换进行压缩,二维信号序列形式化为矩阵MarixVideo
M
×
N
,其中,{MvX(i_m,i_n)|i_m=0,1,
…
,M
‑
1;i_n=0,1,
…
,N
‑
1},DCT变换公式表示为:MvY(i_u,i_v)=(2/sqrt(M*N))*MvC(i_u)*MvC(i_v)*Σ
i_m=0M
‑1Σ
i_n=0N
‑1MvX(i_m,i_n)*cos((2*i_m+1)*i_u*pi/2M)cos((2*i_n+1)*i_u*pi/2N)其中,i_u=1,2,
…
,M
‑
1;i_v=1,2,
…
,N
‑
1;sqrt()为计算平方根函数,pi为圆周率,pi=3.14;当MvC(i_u)=1,i_u≠0时,MvC(i_u)=1/sqrt(2);当MvC(i_v)=1,i_v≠0时,MvC(i_v)=1/sqrt(2);S1_3_2、将非关键帧的视频图像的RGB色彩空间转换为YCbCr,将各分量图像像素值减128,定义偏移的像素值分布区间为[
‑
128,127];分别将各图像分量划分为8
×
8的子块,并分别对子块执行DCT压缩变换,将图像矩阵从空间域映射到频域,获得由直流系数DC和交流系数AC组成的系数值矩阵;S1_3_3、对经过DCT压缩变换的各子块进行量化,过滤掉DCT变换后得到的高频数据,公式为:Val_I(pointu,pointv)=round(Val_D(pointu,pointv)/Val_Q(pointu,pointv))
其中,round()为四舍五入函数,Val_I(pointu,pointv)为量化后的系数在点(pointu, pointv)对应的值,Val_D(pointu,pointv)为经过DCT变换的系数在(pointu,pointv)点对应的值,Val_Q(pointu,pointv)为量化表中(pointu,pointv)对应的系数值;S1_3_4、对DC系数采用差分脉冲调制编码处理,采用相邻子块间DC系数的差值进行编码,对AC系数采用行程编码的方式处理,首先需要将交流系数AC通过zigzag扫描得到一组一维数组,对一维数组进行行程编码处理;S1_3_5、对经过编码处理后的DC系数和AC系数进行熵编码,通过对照Huffman编码表进行熵编码,获得压缩后的图像;对非关键帧压缩后的图像序列记为ImageSeqNo={IsT1, IsT2,
…
,IsT
len_n4
},len_n4代表集合元素数量;S1_3_6、Func1.3过程结束;Func1.4、完全二叉树的构造S1_4_1、将关键帧中提取到的ROI区域图像序列与压缩后的非关键帧图像序列存放到完全二叉树的各结点中;S1_4_2、将完全二叉树的根结点记为Tree_0,通过判断图像在完全二叉树的左结点和右结点,确定图像的置乱方式;S1_4_3、Func1.4过程结束;Part_1描述完毕;Part_2、构造混沌密码发生器将256位哈希值转换为32位十进制值,记为HVal=h1h2…
h
32
;Func2.1、四维Chen混沌序列的生成具体步骤描述为:S2_1_1、四维Chen混沌系统公式为:Chen_X
n+1
=Chen_a*(Chen_Y
n
‑
Chen_X
n
)Chen_Y
n+1
=Chen_d*Chen_X
n
‑
Chen_X
n
*Chen_Z
n
+Chen_c*Chen_Y
n
‑
Chen_U
n
Chen_Z
n+1
=Chen_X
n
*Chen_Y
n
‑
Chen_b*Chen_Z
n
Chen_U
n+1
=Chen_X
n
+Chen_k其中,Chen_a、Chen_b、Chen_c、Chen_d、Chen_k是Chen超混沌系统的控制参数,状态变量为Chen_X
n+1
、Chen_Y
n+1
、Chen_Z
n+1
和Chen_U
n+1
,n代表迭代时间;S2_1_2、通过关键帧中提取到的每张感兴趣区域图像的哈希值计算四维Chen混沌系统的初始值,其中,四维Chen混沌系统初始值的计算公式为:Chen_X0=X0’
+(h1⊕
h2⊕
h3⊕
h4⊕
h5⊕
h6⊕
h7⊕
h8)/256Chen_Y0=Y0’
+(h9⊕
h
10
⊕
h
11
⊕
h
12
⊕
h
13
⊕
h
14
⊕
h
15
⊕
h
16
)/256Chen_Z0=Z0’
+(h
17
⊕
h
18
⊕
h
19
⊕
h
20
⊕
h
21
⊕
h
22
⊕
h
23
⊕
h
24
)/256Chen_U0=U0’
+(h
25
⊕
h
26
⊕
h
27
⊕
h
28
⊕
h
29
⊕
h
30
⊕
h
31
⊕
h
32
)/256其中,
⊕
为异或运算,X0’
、Y0’
、Z0’
、U0’
均为给定值;S2_1_3、将计算出的混沌系统的初始值代入到四维Chen混沌系统公式中进行迭代;S2_1_4、主进程将四个初始值分配到四个子进程中,并行迭代得到四组混沌序列CX(id_chen),CY(id_chen),CZ(id_chen)和CU(id_chen),其中,id_chen为索引值;S2_1_5、将CX(id_chen)分别进行升序和降序排列得到两组索引序列CX1(id_chen)和CX2(id_chen),根据感兴趣区域图像在完全二叉树中的位置选择相应的索引序列;根...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。