CN116488792A - 基于关键帧和图像压缩的视频流并行混沌加密的方法 - Google Patents
基于关键帧和图像压缩的视频流并行混沌加密的方法 Download PDFInfo
- Publication number
- CN116488792A CN116488792A CN202310650512.1A CN202310650512A CN116488792A CN 116488792 A CN116488792 A CN 116488792A CN 202310650512 A CN202310650512 A CN 202310650512A CN 116488792 A CN116488792 A CN 116488792A
- Authority
- CN
- China
- Prior art keywords
- chen
- image
- pixj
- pixi
- region
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000000739 chaotic effect Effects 0.000 title claims abstract description 133
- 238000000034 method Methods 0.000 title claims abstract description 93
- 230000006835 compression Effects 0.000 title claims abstract description 25
- 238000007906 compression Methods 0.000 title claims abstract description 25
- 230000008569 process Effects 0.000 claims abstract description 50
- 230000009466 transformation Effects 0.000 claims abstract description 15
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 12
- 235000013446 pixi Nutrition 0.000 claims description 177
- 238000009792 diffusion process Methods 0.000 claims description 37
- 238000013507 mapping Methods 0.000 claims description 25
- 238000004422 calculation algorithm Methods 0.000 claims description 21
- 239000011159 matrix material Substances 0.000 claims description 21
- 238000005286 illumination Methods 0.000 claims description 16
- 238000000605 extraction Methods 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 13
- 238000012549 training Methods 0.000 claims description 12
- 230000001174 ascending effect Effects 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 11
- 238000007781 pre-processing Methods 0.000 claims description 9
- 238000003491 array Methods 0.000 claims description 7
- 238000010276 construction Methods 0.000 claims description 7
- 230000011218 segmentation Effects 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 108010076504 Protein Sorting Signals Proteins 0.000 claims description 3
- KZSNJWFQEVHDMF-UHFFFAOYSA-N Valine Chemical compound CC(C)C(N)C(O)=O KZSNJWFQEVHDMF-UHFFFAOYSA-N 0.000 claims description 3
- 238000012804 iterative process Methods 0.000 claims description 3
- 230000000877 morphologic effect Effects 0.000 claims description 3
- 230000001131 transforming effect Effects 0.000 claims 1
- 230000008859 change Effects 0.000 description 13
- 238000004458 analytical method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 239000000284 extract Substances 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 230000001052 transient effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 239000003086 colorant Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010219 correlation analysis Methods 0.000 description 1
- 238000005260 corrosion Methods 0.000 description 1
- 230000007797 corrosion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005312 nonlinear dynamic Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/001—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using chaotic signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/625—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/65—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
- H04N19/66—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving data partitioning, i.e. separation of data into packets or partitions according to importance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Abstract
本发明提供一种基于关键帧和图像压缩的视频流并行混沌加密的方法,具体为:1.提取视频流的关键帧,对关键帧图像采用高斯肤色模型提取关键帧的感兴趣区域ROI图像,对非关键帧图像采用DCT压缩变换,将关键帧的ROI图像和压缩后的非关键帧图像存放到完全二叉树中;2.通过四维Chen和2D‑Logistic混沌系统生成混沌序列,两种多维混沌系统的初始值由明文图像的哈希值确定;3.对关键帧的ROI图像和压缩后的非关键帧图像实现混沌并行加密,对图像的置乱和循环移位过程通过完全二叉树中图像所在结点位置确定。本发明解决了视频流图像加密中效率不佳的问题,保证了密文图像的安全性,并可以应用到互联网视频流文件中。
Description
技术领域
本发明属于混沌加密和并行计算领域,具体为提取视频流中的关键帧,对关键帧的感兴趣区域和经过压缩后的非关键帧结合完全二叉树实现混沌并行加密。
背景技术
随着数字通信和网络技术的迅速发展,信息的安全传输也被视为一个关键的问题。如果不能保证互联网上的信息被高效又安全地进行传输,用户的隐私就会受到威胁。通过互联网共享和存储的多媒体大多以图像的形式出现。不同于文本信息,图像可以更加直观且立体的表达人们想要表达的内容,也更加的形象生动,所以每天都会有海量的图片在网络上传输,一旦在传输过程中受到攻击,将会给个人用户、商业和政府机构带来不可估计的损失。如何使这些图像高效又安全地在网络上传输是人们迫切需要解决的问题。
视频流是由数字图像构成,数字图像加密通过使用数学算法将原始图像转换为难以解释的形式,从而增加对安全攻击的抵抗力,例如暴力攻击、统计和差分攻击。加密后的图像与原图像相比,其变化主要表现为像素空间位置变化、像素值变化以及相邻像素相关性变化。在图像加密过程中,原始图像与密钥结合以对图像进行编码,而对于图像解密过程,使用解密算法对加密图像进行解码以恢复原始图像。
混沌系统是一类非线性动态系统。它具有复杂的伪随机性,既不具有周期性,也不具有收敛性。混沌系统对系统的初值非常敏感。初始值的微小变化将影响整个系统的变化,这在密码学中具有重要价值。由于混沌系统对初始值的敏感性和强跟踪遍历性的特点,它经常被用作伪随机数发生器。相比于传统的加密算法,选择混沌系统构造加密算法能够达到更好的安全性。基于混沌的图像密码体系结构通常包括两个阶段:置乱阶段和扩散阶段。置乱阶段也称为像素排列,其中像素位置在整个图像上重新排列,而像素值保持不变,将图像转换为不可识别的形式。而扩散阶段是将整个图像的像素值改变。多次重复置乱扩散过程,能够达到令人满意的安全水平。
由于混沌系统的这些特点,基于混沌的数字图像加密应用发展非常迅速。为了在更短的时间内完成操作并降低成本,研究人员开始对大量数据进行研究。一维混沌系统结构简单、速度快、效率高。由于其结构更简单,系统需要更少的硬件资源来实现实时应用。但它存在安全性较弱和密钥空间较小的问题。另一方面,多维混沌系统有着更高的安全性和更大的密钥空间。但它存在结构复杂的问题。由于其复杂的结构,系统需要大量的硬件资源来实现实时应用,考虑到速度和安全性之间的权衡,将多维混沌系统与并行计算相结合,在保证安全性的同时又能提高加密效率。
为了提高加密效率,除了使用性能良好的混沌系统外,还应该从视频流图像本身解决问题。图像加密算法分为两种类型:全图像加密和选择性图像加密,前者对整个图像进行加密,后者仅对图像的一部分进行加密。近年来,选择性图像加密作为一种保持高安全性同时减少图像加密和解密处理时间的方法一直很受欢迎,并受到了许多科学家和工程师的关注。对于医学图像来说,图像中只有一部分是有意义的,其他部分是纯黑色区域,可以分为两部分,感兴趣区域(Region of Interest,记为ROI)和非感兴趣区域(Regionof Non-interest,记为 RONI)。对图像的感兴趣区域并行加密,既能缩短加密时间,又能保证加密图像的质量。因此,将图像特征提取和图像加密结合,并采用以多维混沌系统为基础的视频流图像加密技术,能够提高加密过程的性能。
案例1:某医院要对患者的电子病历进行保护。各科室医生通过医院指定的医疗系统为患者开具电子病历并保存到系统中备案,电子病历的内容包含患者的隐私信息,尤其包含患者就诊的医学图像信息,在传输过程中,很容易遭到泄露,对电子病历图像的加密是极为重要的。通常会诊医生们查看的是病人的病灶位置,因此,可以对患者的面部进行加密,保护病人的隐私。由于医学图像中只有一部分图像是需要重点保护的,提取图像的感兴趣区域后能够提高加密效率,提高加密图像的质量。
案例2:某公司要对员工的人脸图像进行安全保护。公司上下班实行刷脸制度,通过视频流采集员工的人脸信息验证是否为公司员工,当人脸图像缓存到后台时,如果该人脸识别系统受到攻击,员工的个人信息将不被保护,因此如何安全的存储人脸图像信息是十分重要的,采用混沌图像加密结合并行计算可以在保证图像安全性的同时又保证了加密速度。
案例3:对视频文件而言,视频是时域中帧的集合。视频中的每一帧都与图像相似,并且具有与图像相同的特征。对视频中的多个帧加密可以理解为多个连续的图像加密。通过对视频中的关键帧提取感兴趣区域,对感兴趣区域重点加密,非感兴趣区域由于不包含视频中的重要信息,可以采用普通的加密方法,同时能够提高对感兴趣区域图像的加密效率。
综上所述,采用基于关键帧和图像压缩的视频流并行混沌加密的方法,既增强了视频流图像加密的安全性,也提高了视频流图像加密的效率。
发明内容
(一)要解决的技术问题
为了增强混沌系统对视频流图像加密的安全性,提高视频流图像加密的效率,本发明提供了基于关键帧和图像压缩的视频流并行混沌加密的方法。首先对视频流的关键帧提取,基于高斯肤色模型提取关键帧图像的感兴趣区域,其次对非关键帧图像采用DCT(Discrete Cosine Transform)压缩变换,最后对关键帧中的感兴趣区域图像和压缩后的非关键帧图像进行加密,使用多维混沌系统提高密钥的复杂性和安全性,使密文视频流图像更难被破解,同时利用并行计算来提高所开发的加密算法的性能和安全级别。
为了克服多维混沌系统密钥空间复杂影响运行效率的问题,提出了以下的技术方案,具有良好的混沌特性,表现在:
1.本发明将视频流图像特征提取与图像加密结合,以视频文件为应用背景,提取视频中的关键帧,对视频的关键帧进行特征提取,提取特征后划分出感兴趣区域图像,将视频帧加密转换为多图像加密。将关键帧的多个感兴趣区域图像通过多维混沌系统并行加密,对视频中多个非关键帧进行压缩,压缩后使用多维混沌系统并行加密。
2.对于视频流,通过帧间差分的方法提取视频流中的关键帧,通过2帧间的差分运算和自适应阈值相比较从而确定关键帧。使用二维高斯肤色模型提取关键帧中的人脸特征作为感兴趣区域图像。对于视频流中的非关键帧,通过DCT变换压缩图像,最终对感兴趣区域图像和压缩后的图像进行加密。
3.将感兴趣区域图像序列和经过压缩处理后的非关键帧图像序列放到完全二叉树中,通过判断感兴趣区域图像和非关键帧图像位于完全二叉树的左右结点,确定两种类型图像的置乱和循环移位的方式。其中,感兴趣区域图像在左结点时使用混沌序列的升序索引序列对混沌序列进行处理,在右结点时,使用降序索引序列对混沌序列进行处理,以用于后续的置乱过程。非关键帧图像在左结点时,对数值循环左移,在右结点时,对数值循环右移。
4.本发明对多幅视频流图像进行处理,所以采用多线程的方式并行加密,将每一幅图像分配到一个线程中,多幅图像同时加密,提高了图像加密的效率。
(二)技术方案
为了实现对密文图像的安全保护,并提高加密视频流图像的效率,本发明将ROI区域和图像压缩结合,对于视频流,通过帧间差分的方法提取关键帧,对关键帧的人脸特征图像使用高斯肤色模型提取,作为关键帧图像的ROI区域;对非关键帧的视频流图像进行压缩,最终对关键帧的感兴趣区域图像和压缩后的非关键帧的视频流图像采用混沌并行加密的方法进行保护。包括以下具体步骤:
1、视频流图像预处理
视频流图像预处理包括关键帧提取、关键帧的感兴趣区域提取、非关键帧的图像压缩和完全二叉树的构造四部分。通过帧间差分的方法将视频流中的关键帧提取出来,提取关键帧中的人脸特征作为感兴趣区域,将视频流中非关键帧的部分进行图像压缩,最终将关键帧中的ROI区域图像和压缩后的非关键帧图像放入完全二叉树中。
Func1.1、关键帧提取
具体步骤描述为:
S1_1_1、设视频中的帧为{f1,f2,f3,…,flen_n1},其中len_n1为视频流中帧的总数,每一帧大小为M×N,M代表存储的矩阵行数,N代表存储的矩阵列数,从中任取两个视频帧记为fi和fj,i和j为整数,1<= i, j<= len_n1,计算平均帧间差分强度D,公式为:
D(fi,fj)=(∑|fi(pos_x,pos_y)-fj(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时,fi为关键帧;当平均帧间差分强度D<=t时,fi为非关键帧。
S1_1_5、Func1.1过程结束。
Func1.2、关键帧的感兴趣区域提取
具体步骤描述为:
S1_2_1、基于高斯肤色模型对人脸特征提取,收集大量带有人脸特征的彩色图像作为训练图像。由于不同种族之间肤色存在的差异较大,容易受到光照等外界因素的影响,所以需要将RGB图像转换为不易被外界因素所影响的颜色空间中,故将RGB图像转换到YCbCr空间中。其中,Y表示亮度,Cr表示RGB图像中的红色部分,Cb表示RGB图像中的蓝色部分。
S1_2_2、为了避免采集的肤色图像受到光照影响,对全部图像进行光照补偿。将YCbCr空间中全部像素的Y值按照由大到小的顺序排列,通过循环排列前5%的像素数,放入到集合中作为参考白,计算参考白的像素平均值。通过参考白的像素平均值计算光照补偿系数coe,将光照补偿系数与原图像中对应的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_n2 i=1Xi_gd2
C_gd2=E[(Xi_gd2-m_gd2)(Xi_gd2-m_gd2)T]=1/len_n2∑len_n2 i=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)TC_gd2-1(Xi_gd2-m_gd2)]
其中,exp()是以自然常数e为底的指数函数。
S1_2_5、输入待检测图像,对图像二值化处理,与输入图像比对排除非人脸区域,通过阈值分割将肤色区域和背景区域分开,选定阈值后,将计算的概率与阈值比较,大于等于阈值选定为肤色像素,反之为非肤色像素。
S1_2_6、对二值化图像得到初步肤色区域进行形态学处理,防止相邻肤色像素发生粘连破环肤色像素独立性。对初步得到的肤色区域进行先腐蚀后膨胀的开运算,通过判断人脸区域面积,设置固定大小的人脸特征的矩形,得到最终的人脸区域。感兴趣区域图像序列记为ImageSeq={IsR1,IsR2,…,IsRlen_n3},len_n3代表集合元素数量。
S1_2_7、Func1.2过程结束。
Func1.3、非关键帧的图像压缩
具体步骤描述为:
S1_3_1、对非关键帧的视频图像采用DCT离散变换进行压缩,其中,二维信号序列形式化为矩阵MarixVideoM×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=0 M-1Σi_n=0 N-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,由于DCT要求函数的定义域是对称的,将各分量图像像素值减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,…,IsTlen_n4},len_n4代表集合元素数量。
S1_3_6、Func1.3过程结束。
Func1.4、完全二叉树的构造
S1_4_1、将关键帧中提取到的感兴趣区域图像序列ImageSeq={IsR1,IsR2,…,IsRlen_n3}与压缩后的非关键帧图像序列ImageSeqNo={IsT1,IsT2,…,IsTlen_n4}存放到完全二叉树的各结点中。
S1_4_2、将完全二叉树的根结点记为Tree_0,将感兴趣区域图像序列ImageSeq和压缩后的非关键帧图像序列ImageSeqNo存放到完全二叉树中,通过判断图像在完全二叉树的左结点和右结点,确定图像置乱和循环移位的方式。
S1_4_3、Func1.4过程结束。
2、构造混沌密码发生器
混沌密码发生器包括两种多维混沌系统:四维Chen混沌系统和2D-Logistic混沌系统。其中,使用四维Chen混沌系统对视频关键帧中提取的感兴趣区域图像加密,2D-Logistic混沌系统用于压缩后的非关键帧图像的加密过程。多维混沌系统的初始值由SHA-256函数生成的每幅明文图像的哈希值决定。SHA-256函数生成256位哈希值,以8个比特为一组,将256位哈希值转换为32位十进制值,记为HVal=h1h2⋯h32。
Func2.1、四维Chen混沌序列的生成具体步骤描述为:
S2_1_1、四维Chen混沌系统公式为:
Chen_Xn+1=Chen_a*(Chen_Yn-Chen_Xn)
Chen_Yn+1=Chen_d*Chen_Xn-Chen_Xn*Chen_Zn+Chen_c*Chen_Yn-Chen_Un
Chen_Zn+1=Chen_Xn*Chen_Yn-Chen_b*Chen_Zn
Chen_Un+1=Chen_Xn+Chen_k
其中,Chen_a、Chen_b、Chen_c、Chen_d、Chen_k是Chen超混沌系统的控制参数,状态变量为Chen_Xn+1、Chen_Yn+1、Chen_Zn+1和Chen_Un+1,n代表迭代时间。
S2_1_2、通过关键帧中提取到的每张感兴趣区域图像的哈希值计算四维Chen混沌系统的初始值,其中,四维Chen混沌系统初始值的计算公式为:
Chen_X0=X0’+(h1⊕h2⊕h3⊕h4⊕h5⊕h6⊕h7⊕h8)/256
Chen_Y0=Y0’+(h9⊕h10⊕h11⊕h12⊕h13⊕h14⊕h15⊕h16)/256
Chen_Z0=Z0’+(h17⊕h18⊕h19⊕h20⊕h21⊕h22⊕h23⊕h24)/256
Chen_U0=U0’+(h25⊕h26⊕h27⊕h28⊕h29⊕h30⊕h31⊕h32)/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),根据感兴趣区域图像在完全二叉树中的位置选择相应的索引序列。根据相应的索引序列对CY(id_chen),CZ(id_chen)和CU(id_chen)序列置乱,若使用升序索引序列CX1(id_chen),得到序列CY1(id_chen),CZ1(id_chen)和CU1(id_chen);若使用降序索引序列CX2(id_chen),得到序列CY2(id_chen),CZ2(id_chen)和CU2(id_chen),最终选择相应序列对图像进行置乱。
S2_1_6、从置乱后的图像中选取四个顶点的像素值作为四维Chen混沌系统新的初始值,并将这四个像素值映射到(0,1)之间,记为CX’、CY’、CZ’和CU’。
S2_1_7、将CX’、CY’、CZ’和CU’作为新的初值代入到四维Chen混沌系统中,得到四组新的混沌序列CX3(id_chen)、CY3(id_chen)、CZ3(id_chen)和CU3(id_chen)。
S2_1_8、根据CX3(id_chen)和CY3(id_chen)序列相加得到新的序列CA(id_chen)。将CA(id_chen)、CZ3(id_chen)和CU3(id_chen)三组序列的取值区间映射到0到255之间,用于图像的扩散过程,转换公式为:
CA1(id_chen)=mod((CA(id_chen)-floor(CA(id_chen)))×1014,256)
CZ4(id_chen)=mod((CZ3(id_chen)-floor(CZ3(id_chen)))×1014,256)
CU4(id_chen)=mod((CU3(id_chen)-floor(CU3(id_chen)))×1014,256)
其中,mod()为取余函数,floor()为向下取整函数。
S2_1_9、Func2.1过程结束。
Func 2.2、2D-Logistic混沌序列的生成具体步骤描述为:
S2_2_1、2D-Logistic混沌映射公式为:
L2_xn+1=L2_μ1*L2_xn*(1- L2_xn)
L2_yn+1= L2_μ2*L2_yn*(1- L2_yn)
其中,L2_x0、L2_y0是2D-Logistic混沌映射的初始参数,L2_x0,L2_y0的范围在(0,1)之间;控制参数L2_μ1、L2_μ2的范围在[0,4]之间,当L2_μ1和L2_μ2处于(3.6,4)之间,2D-Logistic映射进入混沌状态。
S2_2_2、根据压缩后的非关键帧图像的哈希值,生成2D-Logistic混沌系统的初始值,公式为:
L2_x0=L2_x0’+(h1⊕h2⊕…⊕hi_id1⊕…⊕h16)/256,(1<= i_id1<=16)
L2_y0=L2_y0’+(h17⊕h18⊕…⊕hi_id2⊕…⊕h32)/ 256,(17<= i_id2<=32)
其中L2_x0’, L2_y0’均为给定值。
S2_2_3、根据图像哈希值计算得到初始值,输入控制参数L2_μ1、L2_μ2和初始值L2_x0、L2_y0,代入到2D-Logistic混沌映射公式中迭代。
S2_2_4、将两个初始值L2_x0、L2_y0分配到两个子进程中,迭代过程并行执行,最终得到两组混沌序列:
L2_x(id_L2)={L2_x0,L2_x1,…,L2_xM*N-1}
L2_y(id_L2)={L2_y0,L2_y1,…,L2_yM*N-1}
其中,id_L2为集合索引值。
S2_2_5、将L2_x(id_L2)和L2_y(id_L2)序列做如下处理:
L2_x1(id_L2)=mod((L2_x(id_L2)-floor(L2_x(id_L2)))×1014,256)
L2_y1(id_L2)=mod((L2_y(id_L2)-floor(L2_y(id_L2)))×1014,256)
S2_2_6、L2_x1(id_L2)和L2_y1(id_L2)两组序列执行一次异或运算得到新的序列L2_z(id_L2)={L2_z0,L2_z1,…,L2_zM*N-1}。
S2_2_7、对L2_z(id_L2)序列做如下处理:
L2_z1(id_L2)=mod(L2_z(id_L2),8)
其中,L2_z1(id_L2)用于确定加密时循环移位的位数。
S2_2_8、Func2.2过程结束。
3、数字图像加密
加密过程分为两部分,一部分是对关键帧中感兴趣区域图像加密,另一部分是对压缩后的非关键帧图像加密。对感兴趣区域图像加密时,通过四维Chen混沌系统生成的混沌序列完成;对压缩后的非关键帧图像加密,使用2D-Logistic映射完成。其中,图像的置乱和循环移位过程通过完全二叉树中图像所在结点位置确定。本算法为对称加密算法,解密算法为加密算法的逆过程。
Func3.1、感兴趣区域图像加密
根据图像预处理过程提取出关键帧中的感兴趣区域图像,图像中感兴趣区域为加密的重点,通过四维Chen混沌系统和完全二叉树完成。具体步骤如下:
S3_1_1、判断感兴趣区域图像在完全二叉树中的位置,若图像位于完全二叉树的左结点,则使用升序索引序列CX1(id_chen)对CY(id_chen),CZ(id_chen)和CU(id_chen)置乱得到CY1(id_chen),CZ1(id_chen)和CU1(id_chen);若图像位于完全二叉树的右结点,则使用降序索引序列CX2(id_chen)对CY(id_chen),CZ(id_chen)和CU(id_chen)置乱得到CY2(id_chen),CZ2(id_chen)和CU2(id_chen)。通过三组混沌序列分别对彩色图像的三通道置乱。
S3_1_2、对彩色图像置乱后的三通道执行四个方向上的扩散。将CA1(id_chen)、CZ4(id_chen)和CU4(id_chen)三组混沌序列分别用于彩色图像的三个分量的扩散过程。其中对感兴趣区域图像序列中图像IsR1的一个分量进行说明,使用CA1(id_chen)序列完成。
S3_1_3、对感兴趣区域图像IsR1进行上下折叠。上下方向的扩散公式为:
Up’(pixi, pixj)=Up(pixi, pixj)⊕CA1h(pixi, pixj)
Down’(len_n5-pixi+1, pixj)=Down(len_n5-pixi+1, pixj)⊕Up’(pixi, pixj)
其中,pixi和pixj代表位置索引,len_n5代表折叠方向的长度,Up(pixi,pixj),Down(pixi,pixj)为感兴趣区域图像IsR1的上下部分中在(pixi,pixj)处的像素值,CA1h(pixi,pixj)为CA1上半部分在(pixi,pixj)处的像素值,Up’(pixi, pixj),Down’(pixi,pixj)为Up(pixi,pixj),Down(pixi,pixj)对应的加密像素值。
S3_1_4、对感兴趣区域图像IsR1沿左对角线方向折叠。左对角线方向的扩散公式为:
Upr’(pixi, pixj)=Upr(pixi, pixj)⊕CArh(pixi, pixj)
Downl’(pixj, pixi)=Downl(pixj, pixi)⊕Upr’(pixi, pixj)
其中,Upr(pixi,pixj),Downl(pixi,pixj)为感兴趣区域图像IsR1的右上、左下部分中在(pixi,pixj)处的像素值,CArh(pixi,pixj)为CA1右上部分在(pixi,pixj)处的像素值,Upr’(pixi, pixj)和Downl’(pixi, pixj)为Upr(pixi,pixj)、Downl(pixi,pixj)对应的加密像素值。
S3_1_5、对感兴趣区域图像IsR1左右折叠。左右方向的扩散公式为:
Right’(pixi, pixj)=Right(pixi, pixj)⊕CAr(pixi, pixj)
Left’(pixi, len_n5-pixj+1)=Left(pixi, pixj)⊕Right’(pixi, len_n5-pixj+1)
其中,Left(pixi,pixj),Right(pixi,pixj)为感兴趣区域图像IsR1的左右部分中在(pixi,pixj)处的像素值,CAr(pixi,pixj)为CA1右半部分在(pixi,pixj)处的像素值,Right’(pixi, pixj),Left’(pixi, pixj)为Right(pixi,pixj),Left(pixi,pixj)对应的加密像素值。
S3_1_6、对感兴趣区域图像IsR1沿右对角线方向折叠。右对角线方向的扩散公式为:
Rightd’(pixi, pixj)= Rightd(pixi, pixj)⊕CArd(pixi, pixj)
Leftu’(pixi, pixj)= Leftu(pixi, pixj)⊕Rightd’(pixi, pixj)
其中,Leftu(pixi,pixj),Rightd(pixi,pixj)为感兴趣区域图像IsR1的左上、右下部分中在(pixi,pixj)处的像素值;CArd(pixi,pixj)为CA1右下部分在(pixi,pixj)处的像素值,Rightd’(pixi, pixj)和Leftu’(pixi, pixj)为Rightd(pixi,pixj)、Leftu(pixi,pixj)对应的加密像素值。
S3_1_7、对感兴趣区域图像的三个分量分别完成四个方向的扩散后,完成对感兴趣区域图像的加密,对于多幅感兴趣区域图像,采用多线程并行加密实现,每个线程加密一张图像。
S3_1_8、Func3.1过程结束
Func3.2、非关键帧图像加密
对Func1.3中得到的压缩后的非关键帧图像加密,采用2D-Logistic映射和完全二叉树进行整体加密。加密一幅图像具体步骤如下:
S3_2_1、将压缩后的非关键帧图像的三个通道的像素值转换为8位二进制数,构造以行优先的二进制数序列,对其进行循环移位。
S3_2_2、判断压缩后的非关键帧图像在完全二叉树中的位置,若图像在完全二叉树的左结点,则将二进制数循环左移;若图像在完全二叉树的右结点,则将二进制数循环右移。
S3_2_3、根据2D-Logistic映射生成的L2_z1(id_L2)序列决定每个像素值对应的二进制数的移动位数。
S3_2_4、移位完成后,将新的二进制序列转换为十进制数。使用2D-Logistic映射生成的L2_x1(id_L2)、L2_y1(id_L2)和L2_z(id_L2)三组序列分别对图像的三个通道进行扩散,将其分别与移位后的十进制序列进行异或,异或操作并行执行。
S3_2_5、将每一幅图像放到一个线程中对压缩后的非关键帧图像加密,加密过程在多线程下并行执行。
S3_2_6、Func3.2过程结束。
(三)有益效果
本发明有益效果在于:
1.通过对视频流采用帧间差分的方法提取关键帧,并对关键帧基于高斯肤色模型提取人脸区域作为关键帧的感兴趣区域图像,节省了计算资源,又保证了加密图像的质量。非关键帧图像采用DCT压缩,将关键帧感兴趣区域和压缩后的非关键帧图像采用多维混沌系统并行加密。其中多维混沌系统的初始值由明文图像的哈希值生成,增强了与明文图像的关联性。通过多维混沌系统与完全二叉树结合对视频图像进行加密,使混沌序列的随机性更强,置乱效果更好。
2.加密过程分为感兴趣区域图像加密和非关键帧图像加密。感兴趣区域图像加密采用置乱-扩散的加密方法,扩散使用多方向扩散机制,用不同的扩散机制来充分加密图像,消除了扩散过程的周期性,使其密文安全性最高。非关键帧图像加密采用循环移位和扩散的加密方法,提高了明文图像的安全性和密钥敏感性,使密文图像能够抵御统计性攻击。
3.视频流图像加密是对多幅图像进行处理,将每一幅图像分配到一个子进程中,多个子进程并行加密,缩短了加密时间,提高了密文图像的信息熵。
附图说明
图1为本发明所述的模块流程图。
图2为本发明所述的混沌图像加密流程图。
图3为本发明所述的加解密图像样例图。
图4为本发明所述的图像直方图。
图5为本发明所述的图像水平方向的相邻像素相关情况图。
图6为本发明所述的图像垂直方向的相邻像素相关情况图。
图7为本发明所述的图像对角线方向的相邻像素相关情况图。
具体实施方式
下面结合附图和实例对本发明的实施方式进行更详细的描述。以下的实例仅用来说明本 发明,不能用于限制本发明应用的范围。
实例1、视频流图像预处理
视频流图像预处理包括关键帧提取、关键帧的感兴趣区域提取、非关键帧的图像压缩和完全二叉树的构造四部分。通过帧间差分的方法将视频流中的关键帧提取出来,提取关键帧中的人脸特征作为感兴趣区域,将视频流中非关键帧的部分进行图像压缩,最终将关键帧中的感兴趣区域图像和压缩后的非关键帧图像放入完全二叉树中。
Func1.1、关键帧提取
具体步骤描述为:
S1_1_1、设视频流中的帧为{f1,f2,f3,…,flen_n1},其中len_n1为视频流中帧的总数,每一帧大小为M×N,M代表存储的矩阵行数,N代表存储的矩阵列数,从中任取两个视频帧记为fi和fj,i和j为整数,1<= i, j<= len_n1,计算平均帧间差分强度D,公式为:
D(fi,fj)=(∑|fi(pos_x,pos_y)-fj(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,确定视频中的关键帧,这里设t=0.4588。
S1_1_4、当平均帧间差分强度D>0.4588时,fi为关键帧;当平均帧间差分强度D<=0.4588时,fi为非关键帧。
S1_1_5、Func1.1过程结束。
Func1.2、关键帧的感兴趣区域提取
具体步骤描述为:
S1_2_1、基于高斯肤色模型对人脸特征提取,收集大量带有人脸特征的彩色图像作为训练图像。由于不同种族之间肤色存在的差异较大,容易受到光照等外界因素的影响,所以需要将RGB图像转换为不易被外界因素所影响的颜色空间中,故将RGB图像转换到YCbCr空间中,其中转换公式为:
Y=0.299R+0.587G+0.114B
Cr=-0.169R+(-0.331)G+0.500B+128
Cb=0.500R+(-0.419)G+0.081B+128
其中,Y表示亮度,Cr表示RGB图像中的红色部分,Cb表示RGB图像中的蓝色部分。
S1_2_2、为了避免采集的肤色图像受到光照影响,对全部图像进行光照补偿。将YCbCr空间中全部像素的Y值按照由大到小的顺序排列,通过循环排列前5%的像素数,放入到集合中作为参考白,计算参考白的像素平均值aveGray,通过参考白的像素平均值计算光照补偿系数coe。将光照补偿系数与原图像中对应的R,G,B的像素值相乘,得到光照补偿后的训练图像。像素平均值aveGray和光照补偿系数coe计算公式为:
aveGray=Grayref/GrayrefNum
coe=255/aveGray
其中,Grayref为参考白的像素值,GrayrefNum为参考白的像素数。
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_n2 i=1Xi_gd2
C_gd2=E[(Xi_gd2-m_gd2)(Xi_gd2-m_gd2)T]=1/len_n2∑len_n2 i=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)TC_gd2-1(Xi_gd2-m_gd2)]
其中,exp()是以自然常数e为底的指数函数。
S1_2_5、输入待检测图像,对图像二值化处理,与输入图像比对排除非人脸区域,通过阈值分割将肤色区域和背景区域分开,选定阈值后,将计算的概率与阈值比较,大于等于阈值选定为肤色像素,反之为非肤色像素。
S1_2_6、对二值化图像得到初步肤色区域进行形态学处理,防止相邻肤色像素发生粘连破环肤色像素独立性。对初步得到的肤色区域进行先腐蚀后膨胀的开运算,通过判断人脸区域面积,设置固定大小的人脸特征的矩形,得到最终的人脸区域,对关键帧提取到的感兴趣区域图像序列记为ImageSeq={IsR1,IsR2,…,IsRlen_n3},len_n3代表集合元素数量。
S1_2_7、Func1.2过程结束。
Func1.3、非关键帧的图像压缩
具体步骤描述为:
S1_3_1、对非关键帧的视频图像采用DCT离散变换进行压缩,其中,二维信号序列形式化为矩阵MarixVideoM×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=0 M-1Σi_n=0 N-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,由于DCT要求函数的定义域是对称的,将各分量图像像素值减128,使偏移的像素值分布区间为[-128,127]。例如图像中第一个像素点的值为52,偏移后像素值为-76。分别将各图像分量划分为若干个8×8的子块,并分别对这些子块执行DCT压缩变换,将图像矩阵从空间域映射到频域,得到由直流系数DC和交流系数AC组成的系数值矩阵。经过DCT变换后的像素值即为-414。
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系数的差值进行编码,若差值为4,即DC(i)-DC(i-1)=4,只需要对差值进行编码,节省比特位。对AC系数采用行程编码的方式处理,首先需要将交流系数AC通过zigzag扫描得到一组一维数组,对一维数组进行行程编码处理,当一维数组为-3,1,-8,-2,0,0,-1,0,0,0,…,经过行程编码后的结果为(0,-3)、(0,1)、(0,-8)、(0,-2)、(2,-1)、(0,0)。
S1_3_5、对经过编码处理后的DC系数和AC系数进行熵编码,通过对照Huffman编码表进行熵编码,得到压缩后的图像。对非关键帧压缩后的图像序列记为ImageSeqNo={IsT1,IsT2,…,IsTlen_n4},len_n4代表集合元素数量。
S1_3_6、Func1.3过程结束
Func1.4、完全二叉树的构造
S1_4_1、将关键帧中提取到的感兴趣区域图像序列ImageSeq={IsR1,IsR2,…,IsRlen_n3}与压缩后的非关键帧图像序列ImageSeqNo={IsT1,IsT2,…,IsTlen_n4}存放到完全二叉树的各结点中;
S1_4_2、将完全二叉树的根结点记为Tree_0,将感兴趣区域图像序列ImageSeq和压缩后的非关键帧图像序列ImageSeqNo存放到完全二叉树中,通过判断图像在完全二叉树的左结点和右结点,确定图像置乱和循环移位的方式;
S1_4_3、Func1.4过程结束。
实例2、构造混沌密码发生器
混沌密码发生器包括两种多维混沌系统:四维Chen混沌系统和2D-Logistic混沌系统。其中,使用四维Chen混沌系统对视频关键帧中提取的感兴趣区域图像加密,2D-Logistic混沌系统用于压缩后的非关键帧图像的加密过程。多维混沌系统的初始值由SHA-256函数生成的每幅明文图像的哈希值决定。SHA-256函数生成256位哈希值,以8个比特为一组,将256位哈希值转换为32位十进制值,记为HVal=h1h2…h32。
Func2.1、四维Chen混沌序列的生成具体步骤描述为:
S2_1_1、四维Chen混沌系统公式为:
Chen_Xn+1=Chen_a*(Chen_Yn-Chen_Xn)
Chen_Yn+1=Chen_d*Chen_Xn-Chen_Xn*Chen_Zn+Chen_c*Chen_Yn-Chen_Un
Chen_Zn+1=Chen_Xn*Chen_Yn-Chen_b*Chen_Zn
Chen_Un+1=Chen_Xn+Chen_k
其中,Chen_a、Chen_b、Chen_c、Chen_d、Chen_k是Chen超混沌系统的控制参数,状态变量为Chen_Xn+1、Chen_Yn+1、Chen_Zn+1和Chen_Un+1,n代表迭代时间。
S2_1_2、通过关键帧中提取到的每张感兴趣区域图像的哈希值计算四维Chen混沌系统的初始值,其中,四维Chen混沌系统初始值的计算公式为:
Chen_X0=X0’+(h1⊕h2⊕h3⊕h4⊕h5⊕h6⊕h7⊕h8)/256=0.9984
Chen_Y0=Y0’+(h9⊕h10⊕h11⊕h12⊕h13⊕h14⊕h15⊕h16)/256=0.4520
Chen_Z0=Z0’+(h17⊕h18⊕h19⊕h20⊕h21⊕h22⊕h23⊕h24)/256=0.9453
Chen_U0=U0’+(h25⊕h26⊕h27⊕h28⊕h29⊕h30⊕h31⊕h32)/256=0.7572
其中⊕为异或运算,X0’、Y0’、Z0’、U0’均为给定值。
S2_1_3、将计算出的混沌系统的初始值代入到四维Chen混沌系统公式中进行迭代1000+m×n次,舍去前1000次迭代结果以消除暂态效应。
S2_1_4、主进程将四个初始值分配到四个子进程中,并行迭代得到四组混沌序列:
CX(id_chen)={2.6990,3.6957,6.5883,11.0879,…}
CY(id_chen)={2.8073,4.3175,8.0096,12.2887,…}
CZ(id_chen)={8.7098,7.6208,8.2010,13.2761,…}
CU(id_chen)={2.7857,3.0478,3.4597,4.1850,…}
其中,id_chen为索引值。
S2_1_5、将CX(id_chen)分别进行升序和降序排列得到两组索引序列CX1(id_chen)和CX2(id_chen),根据感兴趣区域图像在完全二叉树中的位置选择相应的索引序列。根据相应的索引序列对CY(id_chen),CZ(id_chen)和CU(id_chen)序列置乱,若使用升序索引序列CX1(id_chen),得到序列CY1(id_chen),CZ1(id_chen)和CU1(id_chen);若使用降序索引序列CX2(id_chen),得到序列CY2(id_chen),CZ2(id_chen)和CU2(id_chen),最终选择相应序列对图像进行置乱。
S2_1_6、从置乱后的图像中选取四个顶点的像素值作为四维Chen混沌系统新的初始值,并将这四个像素值映射到(0,1)之间,记为CX’、CY’、CZ’和CU’。其中CX’=0.9490,CY’=0.6784,CZ’=0.6980,CU’=0.8235。
S2_1_7、将CX’、CY’、CZ’和CU’作为新的初值代入到四维Chen混沌系统中,迭代1000+m×n次,其中舍去前1000次迭代值,以消除混沌系统的暂态效应,最终得到CX3(id_chen),CY3(id_chen),CZ3(id_chen)和CU3(id_chen)四组混沌序列:
CX3(id_chen)={2.4644,5.5840,7.5352,7.5273,…}
CY3(id_chen)={3.8807,6.4370,7.9751,7.0145,…}
CZ3(id_chen)={13.0425,11.8929,12.8790,14.4076,…}
CU3(id_chen)={2.5847,2.2680,1.7516,1.1462,…}
S2_1_8、根据CX3(id_chen)和CY3(id_chen)序列相加得到新的序列CA(id_chen):
CA(id_chen)={6.3451,12.0210,15.5103,14.5418,…}
将CA(id_chen)、CZ3(id_chen)和CU3(id_chen)三组序列的取值区间映射到0到255之间,用于图像的扩散过程。转换公式为:
CA1(id_chen)=mod((CA(id_chen)-floor(CA(id_chen)))×1014,256)
CZ4(id_chen)=mod((CZ3(id_chen)-floor(CZ3(id_chen)))×1014,256)
CU4(id_chen)=mod((CU3(id_chen)-floor(CU3(id_chen)))×1014,256)
其中,mod()为取余函数,floor()为向下取整函数。
S2_1_9、Func2.1过程结束
Func 2.2、2D-Logistic混沌序列的生成具体步骤描述为:
S2_2_1、2D-Logistic混沌映射公式为:
L2_xn+1= L2_μ1*L2_xn*(1- L2_xn)
L2_yn+1= L2_μ2*L2_yn*(1- L2_yn)
其中,L2_x0、L2_y0是2D-Logistic混沌映射的初始参数,L2_x0,L2_y0的范围在(0,1)之间,控制参数L2_μ1、L2_μ2的范围在[0,4]之间,当L2_μ1、L2_μ2处于(3.6,4)之间,2D-Logistic映射进入混沌状态;
S2_2_2、根据压缩后的非关键帧图像的哈希值,生成2D-Logistic混沌系统的初始值,公式为:
L2_x0=L2_x0’+(h1⊕h2⊕h3⊕h4⊕h5⊕h6⊕h7⊕h8⊕h9⊕h10⊕h11⊕h12⊕h13⊕h14⊕h15⊕h16)/256
L2_y0=L2_y0’+(h17⊕h18⊕h19⊕h20⊕h21⊕h22⊕h23⊕h24⊕h25⊕h26⊕h27⊕h28⊕h29⊕h30⊕h31⊕h32)/256
其中L2_x0’,L2_y0’均为给定值。
S2_2_3、根据图像哈希值计算得到初始值,输入控制参数L2_μ1=3.7、L2_μ2=3.55和初始值L2_x0=0.6959、L2_y0=0.3223,代入到2D-Logistic混沌映射公式中迭代1000+M×N次,其中舍去前1000次迭代值,以消除暂态效应;
S2_2_4、将两个初始值L2_x0、L2_y0分配到两个子进程中,迭代过程并行执行,最终得到两组混沌序列:
L2_x(id_L2)={L2_x0,L2_x1,…,L2_xM*N-1}={0.5684,0.9077,0.3100,0.7915,…}
L2_y(id_L2)={L2_y0,L2_y1,…,L2_yM*N-1}={0.5405,0.8817,0.3703,0.8278,…}
其中,id_L2为集合索引值。
S2_2_5、将L2_x(id_L2)和L2_y(id_L2)序列做如下处理:
L2_x1(id_L2)=mod((L2_x(id_L2)-floor(L2_x(id_L2)))×1014,256)={8,146,24,46,…}
L2_y1(id_L2)=mod((L2_y(id_L2)-floor(L2_y(id_L2)))×1014,256)={34,106,166,92,…}
S2_2_6、L2_x1(id_L2)和L2_y1(id_L2)两组序列执行一次异或运算得到新的序列L2_z(id_L2)={L2_z0,L2_z1,…,L2_zM*N-1}。
S2_2_7、对L2_z(id_L2)序列做如下处理:
L2_z1(id_L2)=mod(L2_z(id_L2),8)={2,0,6,2,…}
其中,L2_z1(id_L2)用于确定加密时循环移位的位数。
S2_2_8、Func2.2过程结束。
实例3、数字图像加密
加密过程分为两部分,一部分是对关键帧中感兴趣区域图像加密,另一部分是对压缩后的非关键帧图像加密。对感兴趣区域图像加密时,通过四维Chen混沌系统生成的混沌序列完成;对压缩后的非关键帧图像加密,使用2D-Logistic映射完成。其中,图像的置乱和循环移位过程通过完全二叉树中图像所在结点位置确定。该算法为对称加密算法,解密算法为加密算法的逆过程。
Func3.1、感兴趣区域图像加密
根据图像预处理过程提取出关键帧中的感兴趣区域图像,图像中感兴趣区域为加密的重点,通过四维Chen混沌系统和完全二叉树完成。具体步骤如下:
S3_1_1、判断感兴趣区域图像在完全二叉树中的位置,若图像位于完全二叉树的左结点,则使用升序索引序列CX1(id_chen)对CY(id_chen),CZ(id_chen)和CU(id_chen)置乱得到CY1(id_chen),CZ1(id_chen)和CU1(id_chen);若图像位于完全二叉树的右结点,则使用降序索引序列CX2(id_chen)对CY(id_chen),CZ(id_chen)和CU(id_chen)置乱得到CY2(id_chen),CZ2(id_chen)和CU2(id_chen)。通过三组混沌序列分别对彩色图像的三通道置乱。例如:感兴趣区域图像序列中的图像IsR1位于完全二叉树的左结点,所以采用升序索引序列CX1(id_chen)对CY(id_chen),CZ(id_chen)和CU(id_chen)置乱得到CY1(id_chen),CZ1(id_chen)和CU1(id_chen)。
S3_1_2、对彩色图像置乱后的三通道执行四个方向上的扩散。将CA1(id_chen)、CZ4(id_chen)和CU4(id_chen)三组混沌序列分别用于彩色图像的三个分量的扩散过程。其中对感兴趣区域图像序列中图像IsR1的一个分量进行说明,使用CA1(id_chen)序列完成。
S3_1_3、对感兴趣区域图像IsR1进行上下折叠。上下方向的扩散公式为:
Up’(pixi, pixj)=Up(pixi, pixj)⊕CA1h(pixi, pixj)
Down’(len_n5-pixi+1, pixj)=Down(len_n5-pixi+1, pixj)⊕Up’(pixi, pixj)
其中,pixi和pixj代表位置索引,len_n5代表折叠方向的行数,Up(pixi,pixj),Down(pixi,pixj)为感兴趣区域图像IsR1的上下部分中在(pixi,pixj)处的像素值,CA1h(pixi,pixj)为CA1上半部分在(pixi,pixj)处的像素值,Up’(pixi, pixj),Down’(pixi,pixj)为Up(pixi,pixj),Down(pixi,pixj)对应的加密像素值。完成上下方向的扩散。
S3_1_4、对感兴趣区域图像IsR1沿左对角线方向折叠。左对角线方向的扩散公式为:
Upr’(pixi, pixj)=Upr(pixi, pixj)⊕CArh(pixi, pixj)
Downl’(pixj, pixi)=Downl(pixj, pixi)⊕Upr’(pixi, pixj)
其中,Upr(pixi,pixj),Downl(pixi,pixj)为感兴趣区域图像IsR1的右上、左下部分中在(pixi,pixj)处的像素值,CArh(pixi,pixj)为CA1右上部分在(pixi,pixj)处的像素值,Upr’(pixi, pixj),Downl’(pixi, pixj)为Upr(pixi, pixj),Downl(pixi,pixj)对应的加密像素值。
S3_1_5、对感兴趣区域图像IsR1左右折叠。左右方向的扩散公式为:
Right’(pixi, pixj)=Right(pixi, pixj)⊕CAr(pixi, pixj)
Left’(pixi, len_n5-pixj+1)=Left(pixi, pixj)⊕Right’(pixi, len_n5-pixj+1)
其中,Left(pixi,pixj),Right(pixi,pixj)为感兴趣区域图像IsR1的左右部分中在(pixi,pixj)处的像素值,CAr(pixi,pixj)为CA1右半部分在(pixi,pixj)处的像素值,Right’(pixi, pixj),Left’(pixi, pixj)为Right(pixi,pixj),Left(pixi,pixj)对应的加密像素值。
S3_1_6、对感兴趣区域图像IsR1沿右对角线方向折叠。右对角线方向的扩散公式为:
Rightd’(pixi, pixj)= Rightd(pixi, pixj)⊕CArd(pixi, pixj)
Leftu’(pixi, pixj)= Leftu(pixi, pixj)⊕Rightd’(pixi, pixj)
其中,Leftu(pixi,pixj),Rightd(pixi,pixj)为感兴趣区域图像IsR1的左上、右下部分中在(pixi,pixj)处的像素值;CArd(pixi,pixj)为CA1右下部分在(pixi,pixj)处的像素值,Rightd’(pixi, pixj),Leftu’(pixi, pixj)为Rightd(pixi,pixj),Leftu(pixi,pixj)对应的加密像素值。
S3_1_7、对感兴趣区域图像的三个分量分别完成四个方向的扩散后,完成对感兴趣区域图像的加密,对于多幅感兴趣区域图像,采用多线程并行加密实现,每个线程加密一张图像。
S3_1_8、Func3.1过程结束。
Func3.2、非关键帧图像加密
对Func1.3中得到的压缩后的非关键帧图像加密,采用2D-Logistic映射和完全二叉树进行整体加密。以一幅图像为例,具体步骤如下:
S3_2_1、将压缩后的非关键帧图像的三个通道的像素值转换为8位二进制数,构造以行优先的二进制数序列,对其进行循环移位。
S3_2_2、判断压缩后的非关键帧图像在完全二叉树中的位置,若图像在完全二叉树的左结点,则将二进制数循环左移;若图像在完全二叉树的右结点,则将二进制数循环右移;
S3_2_3、根据2D-Logistic映射生成的L2_z1(id_L2)序列决定每个像素值对应的二进制数的移动位数;
S3_2_4、移位完成后,将新的二进制序列转换为十进制数。使用2D-Logistic映射生成的L2_x1(id_L2)、L2_y1(id_L2)和L2_z(id_L2)三组序列分别对图像的三个通道进行扩散,将其分别与移位后的十进制序列进行异或,异或操作并行执行;
S3_2_5、将每一幅图像放到一个线程中对压缩后的非关键帧图像加密,加密过程在多线程下并行执行;
S3_2_6、Func3.2过程结束。
下面对实例中的明文图像进行安全性分析
1、明文图像与密文图像直方图分析
图4为明文图像的原始直方图和对明文图像加密的密文图像直方图。通过直方图分析,明文图像的原始图像直方图是不均匀的,经过加密后的密文图像直方图平滑且均匀。
2、密文图像信息熵分析
信息熵用于判断信息的随机性是否良好。对于图像而言,信息熵的大小能够判断图像对应的灰度值是否平均分布。理想化的密文图像信息熵的值为8。因此,图像的信息熵的值越无限接近于8,密文图像的灰度值均匀性越好,越能够抵御统计性攻击。实例中密文图像的信息熵为7.9970,说明该密文图像随机性良好。
3、相邻像素相关性分析
图5、图6和图7分别为明文图像和加密图像在水平、垂直、对角线方向的相邻像素相关性。图像像素的扩散程度采用相邻像素的相关性来表示,在明文图像和加密图像的各方向中分别随机的选择5000对相邻的像素点作为测试样本。结果表明,明文图像在各方向有很强的相关性,密文图像在各方向几乎没有相关性,表明加密图像性能良好。
4、差分攻击分析
判断图像加密算法是否能够抵抗差分攻击,需要用到NPCR和UACI。其中,NPCR代表的是图像像素数的变化率,UACI代表的是图像归一化的平均变化强度。对明文图像的其中一个像素值改变,加密图像的像素值相比于之前发生改变的个数所占的比例和变化程度即为变化率和平均变化强度。如果明文图像的其中一个像素值的改变可以使密文图像发生很大变化,则证明图像加密算法能够抵抗差分攻击。根据对实例图像的测试,图像三通道的NPCR分别为99.6320%,99.6322%,99.6032%,UACI分别为33.4899%,33.4795%,33.4806%,表明该算法可以有效的抵抗差分攻击。
最后应说明的是:以上实例仅用以说明本发明的技术方法,而非对其限制;尽管参照前述实例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实例技术方案的精神和范围。
Claims (1)
1.一种基于关键帧和图像压缩的视频流并行混沌加密的方法,其特征在于:
Part_1、对视频流的图像帧进行预处理;通过帧间差分法提取视频流中的关键帧,对关键帧图像采用高斯肤色模型提取人脸特征,定义关键帧图像的感兴趣区域(Region ofInterest,记为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,…,flen_n1},其中,len_n1为视频流中帧的总数,每一帧大小为M×N,M代表存储的矩阵行数,N代表存储的矩阵列数,选取两个视频帧记为fi和fj,i和j为整数,1<= i, j <= len_n1,计算平均帧间差分强度D:
D(fi,fj)=(∑|fi(pos_x,pos_y)-fj(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时,fi为关键帧;当平均帧间差分强度D<=t时,fi为非关键帧;
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_n2 i=1Xi_gd2
C_gd2=E[(Xi_gd2-m_gd2)(Xi_gd2-m_gd2)T]=1/len_n2∑len_n2 i=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)TC_gd2-1(Xi_gd2-m_gd2)]
其中,exp()是以自然常数e为底的指数函数;
S1_2_5、输入待检测图像,对图像二值化处理,与输入图像比对排除非人脸区域,通过阈值分割将肤色区域和背景区域分开,选定阈值后,将计算的概率与阈值比较,大于等于阈值选定为肤色像素,反之为非肤色像素;
S1_2_6、对二值化图像得到初步肤色区域进行形态学处理,对初步得到的肤色区域进行先腐蚀后膨胀的开运算,通过判断人脸区域面积,设置固定大小的人脸特征的矩形,获得最终的人脸区域;感兴趣区域图像序列记为ImageSeq={IsR1,IsR2,…,IsRlen_n3},len_n3代表集合元素数量;
S1_2_7、Func1.2过程结束;
Func1.3、非关键帧的图像压缩
具体步骤描述为:
S1_3_1、对非关键帧的视频图像采用DCT离散变换进行压缩,二维信号序列形式化为矩阵MarixVideoM×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=0 M-1Σi_n=0 N-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,…,IsTlen_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…h32;
Func2.1、四维Chen混沌序列的生成具体步骤描述为:
S2_1_1、四维Chen混沌系统公式为:
Chen_Xn+1=Chen_a*(Chen_Yn-Chen_Xn)
Chen_Yn+1=Chen_d*Chen_Xn-Chen_Xn*Chen_Zn+Chen_c*Chen_Yn-Chen_Un
Chen_Zn+1=Chen_Xn*Chen_Yn-Chen_b*Chen_Zn
Chen_Un+1=Chen_Xn+Chen_k
其中,Chen_a、Chen_b、Chen_c、Chen_d、Chen_k是Chen超混沌系统的控制参数,状态变量为Chen_Xn+1、Chen_Yn+1、Chen_Zn+1和Chen_Un+1,n代表迭代时间;
S2_1_2、通过关键帧中提取到的每张感兴趣区域图像的哈希值计算四维Chen混沌系统的初始值,其中,四维Chen混沌系统初始值的计算公式为:
Chen_X0=X0’+(h1⊕h2⊕h3⊕h4⊕h5⊕h6⊕h7⊕h8)/256
Chen_Y0=Y0’+(h9⊕h10⊕h11⊕h12⊕h13⊕h14⊕h15⊕h16)/256
Chen_Z0=Z0’+(h17⊕h18⊕h19⊕h20⊕h21⊕h22⊕h23⊕h24)/256
Chen_U0=U0’+(h25⊕h26⊕h27⊕h28⊕h29⊕h30⊕h31⊕h32)/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),根据感兴趣区域图像在完全二叉树中的位置选择相应的索引序列;根据相应的索引序列对CY(id_chen),CZ(id_chen)和CU(id_chen)序列置乱,若使用升序索引序列CX1(id_chen),得到序列CY1(id_chen),CZ1(id_chen)和CU1(id_chen);若使用降序索引序列CX2(id_chen),得到序列CY2(id_chen),CZ2(id_chen)和CU2(id_chen),最终选择相应序列对图像进行置乱;
S2_1_6、从置乱后的图像中选取四个顶点的像素值作为四维Chen混沌系统新的初始值,并将这四个像素值映射到(0,1)之间,记为CX’、CY’、CZ’和CU’;
S2_1_7、将CX’、CY’、CZ’和CU’作为新的初值代入到四维Chen混沌系统中,得到四组新的混沌序列CX3(id_chen)、CY3(id_chen)、CZ3(id_chen)和CU3(id_chen);
S2_1_8、根据CX3(id_chen)和CY3(id_chen)序列相加得到新的序列CA(id_chen);将CA(id_chen)、CZ3(id_chen)和CU3(id_chen)三组序列的取值区间映射到0到255之间,用于图像的扩散过程,转换公式为:
CA1(id_chen)=mod((CA(id_chen)-floor(CA(id_chen)))×1014,256)
CZ4(id_chen)=mod((CZ3(id_chen)-floor(CZ3(id_chen)))×1014,256)
CU4(id_chen)=mod((CU3(id_chen)-floor(CU3(id_chen)))×1014,256)
其中,mod()为取余函数,floor()为向下取整函数;
S2_1_9、Func2.1过程结束;
Func2.2、2D-Logistic混沌序列的生成具体步骤描述为:
S2_2_1、2D-Logistic混沌映射公式为:
L2_xn+1= L2_μ1*L2_xn*(1- L2_xn)
L2_yn+1= L2_μ2*L2_yn*(1- L2_yn)
其中,L2_x0和L2_y0是2D-Logistic混沌映射的初始参数,L2_x0和L2_y0的范围在(0,1)之间,控制参数L2_μ1和L2_μ2的范围在[0,4]之间,当L2_μ1和L2_μ2处于(3.6,4)之间,2D-Logistic映射进入混沌状态;
S2_2_2、根据压缩后的非关键帧图像的哈希值,生成2D-Logistic混沌系统的初始值,公式为:
L2_x0=L2_x0’+(h1⊕h2⊕…⊕hi_id1⊕…⊕h16)/256,(1<= i_id1 <=16)
L2_y0=L2_y0’+(h17⊕h18⊕…⊕hi_id2⊕…⊕h32)/256,(17<= i_id2 <=32)
其中,L2_x0’, L2_y0’均为给定值;
S2_2_3、根据图像哈希值计算得到初始值,输入控制参数L2_μ1和L2_μ2,初始值L2_x0和L2_y0,代入到2D-Logistic混沌映射公式中迭代;
S2_2_4、将两个初始值L2_x0和L2_y0分配到两个子进程中,迭代过程并行执行,最终得到两组混沌序列:
L2_x(id_L2)={L2_x0,L2_x1,…,L2_xM*N-1}
L2_y(id_L2)={L2_y0,L2_y1,…,L2_yM*N-1}
其中,id_L2为集合索引值;
S2_2_5、将L2_x(id_L2)和L2_y(id_L2)序列做如下处理:
L2_x1(id_L2)=mod((L2_x(id_L2)-floor(L2_x(id_L2)))×1014,256)
L2_y1(id_L2)=mod((L2_y(id_L2)-floor(L2_y(id_L2)))×1014,256)
S2_2_6、L2_x1(id_L2)和L2_y1(id_L2)两组序列执行一次异或运算得到新的序列L2_z(id_L2)={L2_z0,L2_z1,…,L2_zM*N-1};
S2_2_7、对L2_z(id_L2)序列做如下处理:
L2_z1(id_L2)=mod(L2_z(id_L2),8)
其中,L2_z1(id_L2)用于确定加密时循环移位的位数;
S2_2_8、Func2.2过程结束;
Part_2描述完毕;
Part_3、数字图像加密
Func3.1、感兴趣区域图像加密
根据视频流图像预处理过程提取出关键帧中的感兴趣区域图像,图像中感兴趣区域通过四维Chen混沌系统和完全二叉树完成加密;具体步骤如下:
S3_1_1、判断感兴趣区域图像在完全二叉树中的位置,若图像位于完全二叉树的左结点,则使用升序索引序列CX1(id_chen)对CY(id_chen),CZ(id_chen)和CU(id_chen)置乱得到CY1(id_chen),CZ1(id_chen)和CU1(id_chen);若图像位于完全二叉树的右结点,则使用降序索引序列CX2(id_chen)对CY(id_chen),CZ(id_chen)和CU(id_chen)置乱得到CY2(id_chen),CZ2(id_chen)和CU2(id_chen);通过三组混沌序列分别对彩色图像的三通道置乱;
S3_1_2、对彩色图像置乱后的三通道执行四个方向上的扩散;将CA1(id_chen)、CZ4(id_chen)和CU4(id_chen)三组混沌序列分别用于彩色图像的三个分量的扩散过程;
S3_1_3、对感兴趣区域图像IsR1进行上下折叠;上下方向的扩散公式为:
Up’(pixi, pixj)=Up(pixi, pixj)⊕CA1h(pixi, pixj)
Down’(len_n5-pixi+1, pixj)=Down(len_n5-pixi+1, pixj)⊕Up’(pixi, pixj)
其中,pixi和pixj代表位置索引,len_n5代表折叠方向的长度,Up(pixi,pixj)和Down(pixi,pixj)为感兴趣区域图像IsR1的上下部分中在(pixi,pixj)处的像素值,CA1h(pixi,pixj)为CA1上半部分在(pixi,pixj)处的像素值,Up’(pixi, pixj)和Down’(pixi, pixj)为Up(pixi,pixj)和Down(pixi,pixj)对应的加密像素值;
S3_1_4、对感兴趣区域图像IsR1沿左对角线方向折叠;左对角线方向的扩散公式为:
Upr’(pixi, pixj)=Upr(pixi, pixj)⊕CArh(pixi, pixj)
Downl’(pixj, pixi)=Downl(pixj, pixi)⊕Upr’(pixi, pixj)
其中,Upr(pixi,pixj)和Downl(pixi,pixj)为感兴趣区域图像IsR1的右上、左下部分中在(pixi,pixj)处的像素值,CArh(pixi,pixj)为CA1右上部分在(pixi,pixj)处的像素值,Upr’(pixi, pixj)和Downl’(pixi, pixj)为Upr(pixi,pixj)和Downl(pixi,pixj)对应的加密像素值;
S3_1_5、对感兴趣区域图像IsR1左右折叠;左右方向的扩散公式为:
Right’(pixi, pixj)=Right(pixi, pixj)⊕CAr(pixi, pixj)
Left’(pixi, len_n5-pixj+1)=Left(pixi, pixj)⊕Right’(pixi, len_n5-pixj+1)
其中,Left(pixi,pixj)和Right(pixi,pixj)为感兴趣区域图像IsR1的左右部分中在(pixi,pixj)处的像素值,CAr(pixi,pixj)为CA1右半部分在(pixi,pixj)处的像素值,Right’(pixi, pixj)和Left’(pixi, pixj)为Right(pixi, pixj)和Left(pixi,pixj)对应的加密像素值;
S3_1_6、对感兴趣区域图像IsR1沿右对角线方向折叠;右对角线方向的扩散公式为:
Rightd’(pixi, pixj)= Rightd(pixi, pixj)⊕CArd(pixi, pixj)
Leftu’(pixi, pixj)= Leftu(pixi, pixj)⊕Rightd’(pixi, pixj)
其中,Leftu(pixi,pixj)和Rightd(pixi,pixj)为感兴趣区域图像IsR1的左上、右下部分中在(pixi,pixj)处的像素值;CArd(pixi,pixj)为CA1右下部分在(pixi,pixj)处的像素值,Rightd’(pixi, pixj)和Leftu’(pixi, pixj)为Rightd(pixi,pixj)和Leftu(pixi,pixj)对应的加密像素值;
S3_1_7、对感兴趣区域图像的三个分量分别完成四个方向的扩散后,完成对感兴趣区域图像的加密,对于感兴趣区域图像采用多线程并行加密实现,每个线程加密一张图像;
S3_1_8、Func3.1过程结束;
Func3.2、非关键帧图像加密
对Func1.3中得到的压缩后的非关键帧图像加密,采用2D-Logistic映射和完全二叉树进行整体加密;加密一幅图像具体步骤如下:
S3_2_1、将压缩后的非关键帧图像的三个通道的像素值转换为8位二进制数,构造以行优先的二进制数序列,对其进行循环移位;
S3_2_2、判断压缩后的非关键帧图像在完全二叉树中的位置,若图像在完全二叉树的左结点,则将二进制数循环左移;若图像在完全二叉树的右结点,则将二进制数循环右移;
S3_2_3、根据2D-Logistic映射生成的L2_z1(id_L2)序列决定每个像素值对应的二进制数的移动位数;
S3_2_4、移位完成后,将新的二进制序列转换为十进制数;使用2D-Logistic映射生成的L2_x1(id_L2)、L2_y1(id_L2)和L2_z(id_L2)三组序列分别对图像的三个通道进行扩散,将其分别与移位后的十进制序列进行异或,异或操作并行执行;
S3_2_5、将每一幅图像放到一个线程中对压缩后的非关键帧图像加密,加密过程在多线程下并行执行;
S3_2_6、Func3.2过程结束;
Part_3描述完毕。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310650512.1A CN116488792A (zh) | 2023-06-04 | 2023-06-04 | 基于关键帧和图像压缩的视频流并行混沌加密的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310650512.1A CN116488792A (zh) | 2023-06-04 | 2023-06-04 | 基于关键帧和图像压缩的视频流并行混沌加密的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116488792A true CN116488792A (zh) | 2023-07-25 |
Family
ID=87212123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310650512.1A Pending CN116488792A (zh) | 2023-06-04 | 2023-06-04 | 基于关键帧和图像压缩的视频流并行混沌加密的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116488792A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117061189A (zh) * | 2023-08-26 | 2023-11-14 | 上海六坊信息科技有限公司 | 一种基于数据加密的数据包传输方法及系统 |
-
2023
- 2023-06-04 CN CN202310650512.1A patent/CN116488792A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117061189A (zh) * | 2023-08-26 | 2023-11-14 | 上海六坊信息科技有限公司 | 一种基于数据加密的数据包传输方法及系统 |
CN117061189B (zh) * | 2023-08-26 | 2024-01-30 | 上海六坊信息科技有限公司 | 一种基于数据加密的数据包传输方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hu et al. | Color image encryption algorithm based on dynamic chaos and matrix convolution | |
Zhu et al. | A chaos-based symmetric image encryption scheme using a bit-level permutation | |
Huang et al. | A compression-diffusion-permutation strategy for securing image | |
Li et al. | Joint image encryption and compression schemes based on 16× 16 DCT | |
Dhiman et al. | Extended visual cryptography techniques for true color images | |
Gan et al. | Exploiting 2D compressed sensing and information entropy for secure color image compression and encryption | |
Jenifer et al. | LSB approach for video steganography to embed images | |
Zhou et al. | Novel multiple color images encryption and decryption scheme based on a bit-level extension algorithm | |
Wang et al. | Low-cost and confidentiality-preserving multi-image compressed acquisition and separate reconstruction for internet of multimedia things | |
CN110572252A (zh) | 一种基于分数阶平移混沌系统的图像加密及解密方法 | |
CN116488792A (zh) | 基于关键帧和图像压缩的视频流并行混沌加密的方法 | |
Zhou et al. | Encryption method based on a new secret key algorithm for color images | |
CN112788195A (zh) | 图像处理方法、装置和设备 | |
Ernawan et al. | A blind multiple watermarks based on human visual characteristics | |
Wang et al. | TPE-ISE: approximate thumbnail preserving encryption based on multilevel DWT information self-embedding | |
Feng et al. | Exploiting robust quadratic polynomial hyperchaotic map and pixel fusion strategy for efficient image encryption | |
Jahangir et al. | A novel multiple color image encryption scheme based on algebra M (2, F2 [u]/< u8>) and chaotic map | |
CN111723386A (zh) | 一种基于sha-512的动态dna彩色图像加密方法 | |
Al-Tamimi | An improve image encryption algorithm based on multi-level of chaotic maps and lagrange interpolation | |
Zhou et al. | Double-image encryption scheme based on the phase-truncated multiple-parameter Fresnel transform | |
Sun et al. | A new image block encryption method based on chaotic map and DNA encoding | |
Zhang et al. | Multiple-image encryption based on light-field imaging and gravity model | |
Deng et al. | Chaos-Based Image Encryption Algorithm Using Decomposition | |
Hashemi | Design a new image encryption using fuzzy integral permutation with coupled chaotic maps | |
Mulla et al. | Probabilistic triangular shuffling approach in DWT based image compression scheme |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |