1.本技术涉及视频加密技术领域,特别是涉及一种视频加密方法、装置及视频解密方法、装置。
背景技术:2.随着物联网业务的不断发展,视频业务终端向低能耗、低存储、小型化发展,大量低功耗嵌入式的视频采集和传输设备接入物联网,这些设备往往需要长时间不间断对视频数据进行实时处理。由于视频数据往往需要在互联网中传输,所以存在泄漏的风险。近年来,出现了大量视频监控设备由于网络攻击发生信息泄漏的事件,因此除了需要对物联网设备进行安全设置外,还需要对视频数据进行加密处理。
3.传统技术中通常采取rc5(rivestcipher 5)、aes(advanced encryption standard,高级加密标准)、des(data encryption standard,数据加密标准)这类标准加密算法实现实时加密,然而对于低功耗嵌入式设备来说,进行视频加密时首要考虑的问题是算法复杂度以及资源消耗,由于该类设备的硬件指标低,无法采用上述标准加密算法实现实时加密,若采用单次加密的方法,由于加密的次数过低,又容易导致加密的安全性不够高。
技术实现要素:4.基于此,有必要针对上述问题,提供一种低功耗且安全性更高的视频加密方法、装置及视频解密方法、装置。
5.一种视频加密方法,所述方法包括:
6.获取待加密的视频文件;
7.对所述视频文件采用块操作进行第一次加密,得到一次加密视频文件;
8.对所述一次加密视频文件进行压缩处理,得到压缩后文件;
9.对所述压缩后文件采用置换操作进行第二次加密,得到二次加密视频文件。
10.在其中一个实施例中,所述视频文件包括两帧以上的原始视频图像,所述对所述视频文件采用块操作进行第一次加密,得到一次加密视频文件包括:
11.获取所述原始视频图像的宏块数据;
12.将所述原始视频图像划分为两个以上的目标区域;
13.依据一次置换序列对各所述目标区域进行一次置换,得到一次加密视频帧,所述一次置换序列经由多次改变伪随机数发生器生成的随机数序列的排列顺序后得到,所述一次加密视频文件包括两帧以上的所述一次加密视频帧。
14.在其中一个实施例中,对各所述目标区域进行所述一次置换时,位于不同的原始视频图像内相同位置的各所述目标区域的置换规则相同。
15.在其中一个实施例中,所述依据所述一次置换序列对各所述目标区域进行一次置换,得到一次加密视频帧包括:
16.依据所述一次置换序列对各所述目标区域进行一次置换,将一次置换后的原始视频图像依据随机数进行旋转,得到一次加密视频帧。
17.在其中一个实施例中,所述压缩后文件包括两帧以上的压缩视频帧,所述对所述压缩后文件采用置换操作进行第二次加密,得到二次加密视频文件包括:
18.获取所述压缩视频帧的宏块信息;
19.依据二次置换序列对所述压缩视频帧内的所述宏块信息进行二次置换,得到二次加密视频帧,所述二次置换序列经由多次改变所述伪随机数发生器生成的随机数的排列顺序后得到,不同所述压缩视频帧对应的所述二次置换序列不同,所述二次加密视频文件包括两帧以上的所述二次加密视频帧。
20.在其中一个实施例中,所述压缩视频帧包括三组颜色通道,所述依据所述二次置换序列对所述压缩视频帧内的所述宏块信息进行二次置换得到二次加密视频帧,包括:
21.将所述三组颜色通道内的颜色值进行置换得到初次置换视频帧;
22.依据所述二次置换序列对所述初次置换视频帧内像素点的位置进行置换,得到二次加密视频帧。
23.一种视频解密方法,所述方法包括:
24.获取二次加密视频文件;
25.对所述二次加密视频文件采用反置换操作进行第一次解密,得到压缩后文件;
26.对所述压缩后文件进行解压缩处理,得到一次加密视频文件;
27.对所述一次加密视频文件采用块操作进行第二次解密,得到视频文件。
28.在其中一个实施例中,所述二次加密视频文件包括两帧以上的二次加密视频帧,所述对所述二次加密视频文件采用反置换操作进行第一次解密,得到压缩后文件,包括:
29.获取所述二次加密视频帧的宏块信息;
30.依据二次置换序列对所述二次加密视频帧内的所述宏块信息进行一次反置换,得到压缩视频帧,所述压缩后文件包括两帧以上的所述压缩视频帧。
31.在其中一个实施例中,所述一次加密视频文件包括两帧以上的一次加密视频帧,所述对所述一次加密视频文件采用块操作进行第二次解密,得到视频文件包括:
32.获取所述一次加密视频帧的宏块数据;
33.将所述一次加密视频帧划分为两个以上的目标区域;
34.依据一次置换序列对各所述目标区域进行二次反置换,得到原始视频图像,所述视频文件包括两帧以上的原始视频图像。
35.一种视频加密装置,所述视频加密装置包括:
36.文件获取模块,用于获取待加密的视频文件;
37.第一次加密模块,用于对所述视频文件采用块操作进行第一次加密,得到一次加密视频文件;
38.压缩模块,用于对所述一次加密视频文件进行压缩处理,得到压缩后文件;
39.第二次加密模块,用于对所述压缩后文件采用置换操作进行第二次加密,得到二次加密视频文件。
40.一种视频解密装置,所述视频解密装置包括:
41.数据获取模块,用于获取二次加密视频文件;
42.第一次解密模块,用于对所述二次加密视频文件采用反置换操作进行第一次解密,得到压缩后文件;
43.解压缩模块,用于对所述压缩后文件进行解压缩处理,得到一次加密视频文件;
44.第二次解密模块,用于对所述一次加密视频文件进行块操作进行第二次解密,得到视频文件。
45.上述视频加密方法、装置及视频解密方法、装置,获取待加密的视频文件,对视频文件采用块操作进行第一次加密,得到一次加密视频文件,对一次加密视频文件进行压缩处理,得到压缩后文件,对压缩后文件采用置换操作进行第二次加密,得到二次加密视频文件。本技术能够满足在物联网嵌入式视频设备中实现视频加密操作,在视频文件压缩前后分别进行加密,每次加密采用不同的加密方式,并且加密的过程中算法简单,解密过程简单快捷,运行时也不需要占用大量存储和计算资源,还可以实现实时解密,有效地保证了传输视频文件的安全性,使得数据传输安全有效、方便快捷。
附图说明
46.为了更清楚地说明本技术实施例或传统技术中的技术方案,下面将对实施例或传统技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以依据这些附图获得其他的附图。
47.图1为一个实施例中视频加密方法的流程示意图;
48.图2为一个实施例中视频加密方法的细化流程示意图;
49.图3为一个实施例中各目标区域的结构示意图;
50.图4为一个实施例中各目标区域进行置换的流程示意图;
51.图5为一个实施例中视频加密方法的进一步细化流程示意图;
52.图6为一个实施例中压缩视频帧包含三组颜色通道的结构示意图;
53.图7为一个实施例中视频解密方法的流程示意图;
54.图8为一个实施例中视频解密方法的细化流程示意图;
55.图9为一个实施例中视频解密方法的进一步细化流程示意图;
56.图10为一个实施例中视频加密装置的结构示意图;
57.图11为一个实施例中视频解密装置的结构示意图;
58.图12为一个实施例中计算机设备的结构示意图;
59.图13为一个实施例中原始视频图像的块状数据结构示意图;
60.图14为一个实施例中各目标区域的结构示意图;
61.图15为一个实施例中置换后的各目标区域的结构示意图;
62.图16为一个实施例中一次加密视频帧的结构示意图;
63.图17为一个实施例中压缩视频帧的结构示意图;
64.图18为一个实施例中各颜色通道的结构示意图;
65.图19为一个实施例中各颜色通道进行置换的流程示意图;
66.图20为一个实施例中各颜色通道进行融合的流程示意图;
67.图21为一个实施例中二次加密视频帧置换像素点的流程示意图;
68.图22为一个实施例中各颜色通道进行一次反置换的流程示意图;
69.图23为一个实施例中一次加密视频帧进行二次反置换的流程示意图;
70.图24为一个实施例中一次加密视频帧进行二次反置换的细化流程示意图。
具体实施方式
71.为了便于理解本技术,下面将参照相关附图对本技术进行更全面的描述。附图中给出了本技术的实施例。但是,本技术可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使本技术的公开内容更加透彻全面。
72.在一个实施例中,如图1所示,本技术提供一种视频加密方法,该方法通常可由低功耗嵌入式设备执行,应用在视频数据实时传输的场景中。视频加密方法包括以下步骤:
73.步骤s100,获取待加密的视频文件。
74.具体的,该视频文件可以是一组完整的视频,也可以是某一组视频中两个以上的视频帧,一个视频帧一般包括多个宏块,其中,宏块为m
×
n个像素的块状数据,示例性的,宏块为8
×
8个像素的块状数据。
75.步骤s200,对视频文件采用块操作进行第一次加密,得到一次加密视频文件。
76.具体的,对视频文件在压缩之前进行第一次加密,加密方式为块操作,块操作的具体过程可以是将视频文件中的一个视频帧划分为多个区域,对多个区域进行置换或者旋转,从而改变视频帧中的图像内容。对视频文件中的每一个视频帧均如此往复操作,得到一次加密视频文件。使用块操作进行第一次加密能够有效保证视频文件的存储安全,并且操作过程简单便捷,无需占用过多的计算资源。其次,第一次加密过程在压缩视频文件之前进行,攻击者即使获得了视频文件,也无法查看视频文件的真实内容。
77.步骤s300,对一次加密视频文件进行压缩处理,得到压缩后文件。
78.具体的,因视频文件通常信息量大,在传输过程中通常所需要的网络带宽相对较宽,所以需要对视频文件进行压缩处理。示例性的,可以采用mpeg2、h264等压缩方法对一次加密视频文件进行压缩,得到压缩后文件,对文件进行压缩有利于在网络上进行数据传输时节省传送带宽和存储空间。
79.步骤s400,对压缩后文件采用置换操作进行第二次加密,得到二次加密视频文件。
80.对压缩后文件进行第二次加密,加密方式为置换操作,置换操作的具体过程可以是将压缩后文件中的视频帧内宏块的排列顺序进行调换,也可以是将压缩后文件中的视频帧像素点的颜色值进行调换。对压缩后文件中的每一个视频帧均如此往复操作,得到二次加密视频文件。使用置换操作进行第二次加密能够有效保证视频文件的传输安全,并且操作过程简单便捷,无需占用过多的计算资源。其次,攻击者即使截取了传输的视频流,同样无法打开视频文件。
81.上述视频加密方法,获取待加密的视频文件,对视频文件采用块操作进行第一次加密,得到一次加密视频文件,对一次加密视频文件进行压缩处理,得到压缩后文件,对压缩后文件采用置换操作进行第二次加密,得到二次加密视频文件。本技术能够满足在物联网嵌入式视频设备中实现视频加密操作,在视频文件压缩前后分别进行加密,每次加密采用不同的加密方式,并且加密的过程中算法简单,运行时也不需要占用大量存储和计算资源,使得数据传输安全有效、方便快捷。
82.在一个实施例中,如图2所示,步骤s200包括步骤s210至步骤s230。
83.步骤s210:获取原始视频图像的宏块数据。
84.具体的,视频文件包括两帧以上的原始视频图像,获取视频文件中各原始视频图像宏块数据的顺序并不唯一,可以是同时获取视频文件中所有的原始视频图像的宏块数据,能够有效提高加密效率;也可以是依据各原始视频图像在视频文件中出现的先后顺序进行获取。原始视频图像的宏块数据包括的内容也并不唯一,可以是原始视频图像的尺寸。
85.步骤s220:将原始视频图像划分为两个以上的目标区域。
86.获取原始视频图像的尺寸后,需设置目标区域的尺寸,各目标区域的尺寸保持一致,方便后续的置换操作。目标区域的尺寸不是唯一的,本领域技术人员可以根据实际需求来进行设置,目标区域的尺寸较小,则参与置换的目标区域的数量就较多,置换更充分,加密的安全性更高;目标区域的尺寸较大,则所需置换的次数就较少,所需的计算资源也越小,功耗越低。根据原始视频图像的尺寸以及目标区域尺寸可以计算参与置换的目标区域的数量,示例性的,如图3所示,参与置换的目标区域的数量为其中,2为参与置换的目标区域的数量,h为原始视频图像的一侧边长,w为原始视频图像的另一侧边长,h为目标区域的一侧边长,w为目标区域的另一侧边长。
87.步骤s230:依据一次置换序列对各目标区域进行一次置换,得到一次加密视频帧。
88.其中,一次加密视频文件包括两帧以上的一次加密视频帧,一次置换序列经由多次改变伪随机数发生器生成的随机数的排列顺序后得到,具体的,一次置换序列可由随机数以及参与置换的目标区域的数量2生成。随机数的生成可以采用伪随机数发生器,利用一次加密种子生成n个随机数,选取m个随机数后续操作。采用随机数生成一次置换序列,能有效避免采用其他方式进行置换的主观性,增大随机程度。生成一次置换序列的方式也不唯一,示例性的,可以将[1,2]间的2个整数按照从小到大的顺序排列好,每个整数与间隔m个随机数中任意一个随机数大小的整数交换位置,最终得到一次置换序列,这种方式能够充分打乱整数的排列顺序,以增大置换程度。当然,还可采取其他方式生成一次置换序列,比如混沌序列,产生混沌序列的方式很多,不同的迭代函数有不同的安全性。通过选择不同的迭代函数和精度,可以得到足够长的随机序列,并且保证它在有限的时间内不重复。可以理解,随机序列的产生方式越来越多,本领域技术人员可以根据需要灵活选取。
[0089]
进一步,对各目标区域进行一次置换的过程如下:如图4所示,一次置换序列为[10,5,7,2,4,12,1,9,11,6,8,3],原始视频图像分成12个目标区域,按照从左到右、从上到下的顺序设定为第1到第12个目标区域,然后按照一次置换序列中元素的顺序进行置换操作,最终得到尺寸仍为h
×
w的一次加密视频帧。
[0090]
视频文件包括两帧以上的原始视频图像,一帧原始视频图像经过第一次加密后得到一帧一次加密视频帧,对视频文件中的所有原始视频图像进行第一次加密操作,得到两帧以上的一次加密视频帧。保证了加密的完整性,避免出现遗漏。
[0091]
在一个实施例中,对各目标区域进行一次置换时,位于不同的原始视频图像内相同位置的各目标区域的置换规则相同。
[0092]
具体的,视频文件包括两帧以上的原始视频图像,示例性的,如图4所示,一帧原始视频图像划分为12个目标区域,则该帧原始视频图像标号为1的目标区域与另一帧原始视
频图像中标号为1的目标区域就是相同位置的目标区域。置换规则相同指的是对目标区域进行置换的顺序等规则相同。对于处于不同原始视频图像内且位置相同的目标区域,限制其置换规则相同,能够有效提高加密的效率。
[0093]
在一个实施例中,如图5所示,步骤s230包括步骤s231。
[0094]
步骤s231:依据一次置换序列对目标区域进行一次置换,将一次置换后的原始视频图像依据随机数进行旋转,得到一次加密视频帧。
[0095]
具体的,将原始视频图像分成2个目标区域,按照从左到右、从上到下的顺序设定为第1到第2个目标区域,然后按照一次置换序列中元素的顺序进行置换操作,对置换完成后的图像进行旋转,旋转的方向以及角度可以由随机数确定。示例性的,可以利用m个随机数中的任意一个随机数rm对4取余的方式确定,旋转的方向以及角度如表1所示:
[0096]rm
mod 4旋转方向及角度00
°
不旋转1顺时针旋转90
°
2顺时针旋转180
°
3顺时针旋转270
°
[0097]
表1
[0098]
在一个实施例中,压缩后文件包括两帧以上的压缩视频帧,如图2所示,步骤s400包括步骤s410和步骤s420。
[0099]
步骤s410:获取压缩视频帧的宏块信息。
[0100]
具体的,第二次加密是对已经压缩的视频文件(即压缩后文件)进行加密,常用的压缩算法通常使用帧内压缩和帧间压缩这两种方式。帧内压缩是生成i帧(即关键帧)的算法,帧间压缩是生成b、p帧(即预测帧)的算法。i帧为压缩视频帧,解码时只需要本帧数据就可以完成,而b、p帧均为预测帧,在解码时,不仅需要本帧数据,还需要前后帧的数据。因此第二次加密只对压缩后文件中的压缩视频帧(即i帧)进行加密,所需数据量小,压缩后文件包括两帧以上的压缩视频帧。
[0101]
进一步,压缩视频帧的宏块信息包括的内容也并不唯一,可以是压缩视频帧上像素点的数目p
×
q以及每一个像素点的颜色值,也可以是压缩视频帧的尺寸等信息。
[0102]
步骤s420:依据二次置换序列对压缩视频帧内的宏块信息进行二次置换,得到二次加密视频帧。
[0103]
其中,二次加密视频文件包括两帧以上的二次加密视频帧,二次置换序列经由多次改变伪随机数发生器生成的随机数的排列顺序后得到,具体的,随机数的生成采取伪随机数发生器,利用种子采用某种伪随机数算法生成m个随机数,这些随机数组成二次置换序列,且不同压缩视频帧对应的二次置换序列不同,采用改变伪随机数发生器生成的随机数的排列顺序生成一次置换序列,能有效避免采用其他方式进行置换的主观性,增大随机程度。
[0104]
进一步,对压缩视频帧内的宏块信息进行二次置换的方式并不唯一,一种方式是将压缩视频帧内不同像素点的位置进行调换,增大随机程度;另一种方式是将压缩视频帧内不同像素点内某种颜色的颜色值进行置换,最终得到像素点数目仍为p
×
q的二次加密视频帧,采用这两种方式均可提高加密的安全性。可以理解,置换的方式很多,本领域技术人
员可以根据需要灵活选取。
[0105]
在一个实施例中,压缩视频帧包括三组颜色通道,如图5所示,步骤s420包括步骤s421和步骤s422。
[0106]
步骤s421:将三组颜色通道内的颜色值进行置换,得到初次置换视频帧。
[0107]
具体的,如图6所示,压缩视频帧上包括p
×
q个像素点,且每个像素点的颜色不尽相同,则每个像素点对应的颜色值也不尽相同。例如,一个蓝色的像素点在rgb颜色模式中所对应的颜色值为(0,0,255),其中0、0以及255所对应的颜色通道就为r通道、g通道以及b通道。
[0108]
进一步,压缩视频帧上所有像素点对应的颜色值可以组成三组颜色通道,分别为r通道、g通道以及b通道。将三组颜色通道内的颜色值进行置换,例如,将g通道以及b通道内的颜色值进行置换,则一个像素点在rgb颜色模式中所对应的颜色值为(0,0,255),置换后,一个像素点在rgb颜色模式中所对应的颜色值变成了(0,255,0),也即像素点的颜色发生了变化,通过上述方式进行置换能有效提高加密的安全性。
[0109]
参与置换的颜色通道的确定方式并不是唯一的,示例性的,可以设定一个随机数rs,通过随机数rs对5取余的方式确定,规则如表2所示:
[0110]rs
mod 5颜色通道顺序0rbg1bgr2brg3grb4gbr
[0111]
表2
[0112]
通过上述规则对压缩视频帧进行置换,得到初次置换视频帧。
[0113]
步骤s422:依据二次置换序列对初次置换视频帧内像素点的位置进行置换,得到二次加密视频帧。
[0114]
具体的,初次置换视频帧内包括p行,q列共计p
×
q个像素点,依据二次置换序列对初次置换视频帧内像素点的位置进行置换的方式并不唯一,示例性的,二次置换序列为随机数组成的n组坐标值,其中一组坐标值为(1,2,3,4),置换的规则为,将第一行第二列的像素点与第三行第四列的像素点进行置换,得到二次加密视频帧。有效避免了置换的主观程度,提高了加密的安全性。可以理解,本领域技术人员可根据需求选择合适的置换方式。
[0115]
在一个实施例中,如图7所示,本技术还提高一种与上述的视频加密方法对应的视频解密方法,该方法包括:
[0116]
s600:获取二次加密视频文件。
[0117]
具体的,该二次加密视频文件可以是经上述视频加密方法加密后的一组完整的视频,也可以是经上述视频加密方法加密后的某一组视频中两个以上的视频帧,一个视频帧一般包括多个宏块,其中,宏块为m
×
n个像素的块状数据,示例性的,宏块为8
×
8个像素的块状数据。
[0118]
s700:对二次加密视频文件采用反置换操作进行第一次解密,得到压缩后文件。
[0119]
具体的,对二次加密视频文件进行第一次解密,解密方式为反置换操作,反置换操
作的具体过程可以是将二次加密视频文件中的视频帧内宏块的排列顺序进行调换,也可以是将二次加密视频文件中的视频帧像素点的颜色值进行调换,对二次加密视频文件中的每一个视频帧均如此往复操作,得到压缩后文件。
[0120]
s800:对压缩后文件进行解压缩处理,得到一次加密视频文件。
[0121]
具体的,利用与上述视频加密方法中压缩方法相对应的特定压缩方法对压缩后文件进行解压缩,获得一次加密视频文件。
[0122]
s900:对一次加密视频文件采用块操作进行第二次解密,得到视频文件。
[0123]
具体的,对一次加密视频文件进行第二次解密,解密方式为块操作,块操作的具体过程可以是将一次加密视频文件中的一个视频帧划分为多个区域,对多个区域进行置换或者旋转从而改变视频帧中的图像内容,对一次加密视频文件中的每一个视频帧均如此往复操作,得到视频文件。操作过程简单便捷,无需占用过多的计算资源。
[0124]
在一个实施例中,二次加密视频文件包括两帧以上的二次加密视频帧,如图8所示,步骤s700包括步骤s710和步骤s720。
[0125]
步骤s710:获取二次加密视频帧的宏块信息。
[0126]
二次加密视频文件包括两帧以上的二次加密视频帧,一帧原始视频图像经过上述视频加密方法加密后可得到一帧二次加密视频帧,二次加密视频帧的宏块信息包括的内容并不唯一,可以是二次加密视频帧上像素点的数目p
×
q以及每一个像素点的颜色值。
[0127]
步骤s720:依据二次置换序列对二次加密视频帧内的宏块信息进行一次反置换,得到压缩视频帧。
[0128]
具体的,二次置换序列与上述视频加密方法中的二次置换序列相同。对二次加密视频帧内的宏块信息进行一次反置换的方式并不唯一,一种方式是将二次加密视频帧不同像素点的位置进行调换;另一种方式是将二次加密视频帧内不同像素点内某种颜色的颜色值进行置换,最终得到像素点数目仍为p
×
q的压缩视频帧。本领域技术人员需选择与上述视频加密方法中二次置换相对应的方式进行一次反置换。最终得到的压缩后文件包括两帧以上的压缩视频帧。
[0129]
在一个实施例中,如图9所示,步骤s720包括步骤s721和步骤s722。
[0130]
步骤s721:依据二次置换序列对二次加密视频帧内像素点的位置进行置换,得到初次置换视频帧。
[0131]
具体的,二次加密视频帧内包括p行,q列共计p
×
q个像素点,依据二次置换序列对二次加密视频帧内像素点的位置进行置换的方式并不唯一,示例性的,二次置换序列二次置换序列与上述视频加密方法中的二次置换序列相同,例如其中一组坐标值为(1,2,3,4),置换的规则为,将第三行第四列的像素点与第一行第二列的像素点进行置换,得到初次置换视频帧。
[0132]
步骤s722:将初次置换视频帧内三组颜色通道内的颜色值进行置换得到压缩视频帧。
[0133]
具体的,初次置换视频帧上包括p
×
q个像素点,每个像素点均包含rgb三个通道,每个通道的颜色值在0~255之间。例如,一个蓝色的像素点在rgb颜色模式中所对应的颜色值为(0,0,255),其中0、0以及255所对应的颜色通道分别为r通道、g通道以及b通道。
[0134]
进一步,初次置换视频帧上所有像素点对应的颜色值可以组成三组颜色通道,分
别为r通道、g通道以及b通道。将三组颜色通道内的颜色值进行置换,例如,将g通道以及b通道内的颜色值进行置换,则一个像素点在rgb颜色模式中所对应的颜色值为(0,0,255),置换后,一个像素点在rgb颜色模式中所对应的颜色值变成了(0,255,0),也即像素点的颜色发生了变化。
[0135]
参与置换的颜色通道的确定方式参考表2,与上述视频加密方法中确定的参与置换的颜色通道相对应,例如:视频加密方法中的颜色通道顺序为rbg,则视频解密方法中的颜色通道顺序为rgb。
[0136]
在一个实施例中,一次加密视频文件包括两帧以上的一次加密视频帧,如图8所示,步骤s900包括步骤s910至步骤s930。
[0137]
步骤s910:获取一次加密视频帧宏块数据。
[0138]
具体的,一次加密视频文件包括两帧以上的一次加密视频帧,获取一次加密视频文件中各一次加密视频帧宏块数据的顺序并不唯一,可以是同时获取一次加密视频文件中所有的一次加密视频帧的宏块数据,能够有效提高加密效率;也可以是依据各一次加密视频帧在一次加密视频文件中出现的先后顺序进行获取。一次加密视频帧的宏块数据包括的内容也并不唯一,可以是一次加密视频帧的尺寸。
[0139]
步骤s920:将一次加密视频帧划分为两个以上的目标区域。
[0140]
目标区域的尺寸与上述视频加密方法中目标区域的尺寸一致,示例性的,一次加密视频帧的一侧边长为h,一次加密视频帧的另一侧边长为w,目标区域的一侧边长为h,目标区域的另一侧边长为w,则参与置换的目标区域的数量为
[0141]
步骤s930:依据一次置换序列对各目标区域进行二次反置换,得到原始视频图像。
[0142]
一次置换序列与上述视频加密方法中的一次置换序列相同,对各目标区域进行二次反置换的过程如下:将一次加密视频帧分成2个目标区域,按照从左到右、从上到下的顺序设定将一次置换序列填入第1到第2个目标区域,然后目标区域中序号从小到大按照从左到右、从上到下的顺序进行置换操作,最终得到尺寸仍为h
×
w的原始视频图像,将所有的原始视频图像重新整合为视频文件。
[0143]
在一个实施例中,对各目标区域进行二次反置换时,位于不同的一次加密视频帧内,所处位置相同的各目标区域的置换规则相同。
[0144]
具体的,一次加密视频文件包括两帧以上的一次加密视频帧,对于处于不同一次加密视频帧内且相对位置相同的目标区域,限制其置换规则相同,能够有效提高解密的效率。
[0145]
在一个实施例中,如图9所示,步骤s930包括步骤s931。
[0146]
步骤s931:将一次加密视频帧进行旋转,将旋转后的一次加密视频帧内的各目标区域进行二次反置换,得到原始视频图像。
[0147]
具体的,将一次加密视频帧进行旋转,旋转的方向以及角度参考表1,与上述视频加密方法中的旋转的方向以及角度相对应。示例性的,上述视频加密方法中选定的旋转方向为顺时针,旋转角度为90
°
,则视频解密方法中旋转方向为逆时针,旋转角度为90
°
。将旋转后的一次加密视频帧内的各目标区域进行上述二次反置换操作,最终得到原始视频图像,将所有的原始视频图像重新整合为视频文件。
[0148]
上述视频解密方法,获取二次加密视频文件,对二次加密视频文件采用反置换操作进行第一次解密,得到压缩后文件,对压缩后文件进行解压缩处理,得到一次加密视频文件,对一次加密视频文件采用块操作进行第二次解密,得到视频文件。本技术能够满足在物联网嵌入式视频设备中实现视频解密操作,在视频文件解压压缩前后分别进行解密,每次解密采用不同的解密方式,并且解密的过程简单快捷,运行时也不需要占用大量存储和计算资源,可以实现实时解密,有效地保证了传输视频文件的安全性,使得数据传输安全有效、方便快捷。
[0149]
在一个实施例中,如图10所示,还提供了一种视频加密装置100,包括:
[0150]
文件获取模块110,用于获取待加密的视频文件;
[0151]
第一次加密模块120,用于对视频文件采用块操作进行第一次加密,得到一次加密视频文件;
[0152]
压缩模块130,用于对一次加密视频文件进行压缩处理,得到压缩后文件;
[0153]
第二次加密模块140,用于对压缩后文件采用置换操作进行第二次加密,得到二次加密视频文件。
[0154]
在一个实施例中,如图11所示,还提供了一种视频解密装置200,包括:
[0155]
数据获取模块210,用于获取二次加密视频文件;
[0156]
第一次解密模块220,用于对二次加密视频文件采用反置换操作进行第一次解密,得到压缩后文件;
[0157]
解压缩模块230,用于对压缩后文件进行解压缩处理,得到一次加密视频文件;
[0158]
第二次解密模块240,用于对所述一次加密视频文件进行块操作进行第二次解密,得到视频文件。
[0159]
关于视频加密装置100以及视频解密装置200的具体限定可以参见上文中对视频加密及解密方法的限定,在此不再赘述。上述视频加密装置100以及视频解密装置200中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。需要说明的是,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0160]
在一个实施例中,还提供了一种计算机设备,该计算机设备内部结构图可以如图12所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种视频加密方法及视频解密方法。
[0161]
本领域技术人员可以理解,图12中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0162]
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
[0163]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。
[0164]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成的,计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-onlymemory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
[0165]
为了便于更好地理解上述视频加密方法、装置及视频解密方法、装置,下面结合一个具体的实施例进行详细解释说明,为了方便,仅以视频文件中的一帧原始视频图像进行举例说明。
[0166]
如图13所示,视频文件中每一帧原始视频图像的尺寸为8
×
8个像素的块状数据,也即64个像素的块状数据,每个像素点均包含rgb三个通道,每个通道的颜色值在0~255之间。
[0167]
第一次加密过程如下:
[0168]
首先,使用一种伪随机数发生器,采用梅森旋转算法,利用随机生成的一次加密种子:778854304983611100386998877132640112145320,生成50个在数值在50以内的随机数:[18,38,42,1,31,8,13,46,29,24,35,27,48,6,15,14,41,10,2,11,44,45,40,50,7,28,34,43,49,22,21,39,25,36,20,9,17,19,3,12,23,5,33,16,32,47,37,30,4,26],选取这50个随机数中第12、39、32个随机数27,3,39(r
m1
、r
m2
、r
m3
)用于后续的块置换操作。设置目标区域的尺寸为2
×
2,计算参与置换的目标区域的数量
[0169]
利用随机数以及参与置换的目标区域的数量生成一次置换序列,具体过程如下:
[0170]
将16个目标区域分成两组,前组:[1,2,3,4,5,6,7,8],后组:[9,10,11,12,13,14,15,16],然后进行后组元素在前的交叉合并操作,整个交叉合并操作进行r
m1
次,具体过程如下:
[0171]
第1次结果:[9,1,10,2,11,3,12,4]、[13,5,14,6,15,7,16,8];
[0172]
第2次结果:[13,9,5,1,14,10,6,2]、[15,11,7,3,16,12,8,4];
[0173]
第3次结果:[15,13,11,9,7,5,3,1]、[16,14,12,10,8,6,4,2];
[0174]
第4次结果:[16,15,14,13,12,11,10,9]、[8,7,6,5,4,3,2,1];
[0175]
第5次结果:[8,16,7,15,6,14,5,13]、[4,12,3,11,2,10,1,9];
[0176]
第6次结果:[4,8,12,16,3,7,11,15]、[2,6,10,14,1,5,9,13];
[0177]
第7次结果:[2,4,6,8,10,12,14,16]、[1,3,5,7,9,11,13,15];
[0178]
第8次结果:[1,2,3,4,5,6,7,8]、[9,10,11,12,13,14,15,16];
[0179]
第9次结果:[9,1,10,2,11,3,12,4]、[13,5,14,6,15,7,16,8];
[0180]
第10次结果:[13,9,5,1,14,10,6,2]、[15,11,7,3,16,12,8,4];
[0181]
第11次结果:[15,13,11,9,7,5,3,1]、[16,14,12,10,8,6,4,2];
[0182]
第12次结果:[16,15,14,13,12,11,10,9]、[8,7,6,5,4,3,2,1];
[0183]
第13次结果:[8,16,7,15,6,14,5,13]、[4,12,3,11,2,10,1,9];
[0184]
第14次结果:[4,8,12,16,3,7,11,15]、[2,6,10,14,1,5,9,13];
[0185]
第15次结果:[2,4,6,8,10,12,14,16]、[1,3,5,7,9,11,13,15];
[0186]
第16次结果:[1,2,3,4,5,6,7,8]、[9,10,11,12,13,14,15,16];
[0187]
第17次结果:[9,1,10,2,11,3,12,4]、[13,5,14,6,15,7,16,8];
[0188]
第18次结果:[13,9,5,1,14,10,6,2]、[15,11,7,3,16,12,8,4];
[0189]
第19次结果:[15,13,11,9,7,5,3,1]、[16,14,12,10,8,6,4,2];
[0190]
第20次结果:[16,15,14,13,12,11,10,9]、[8,7,6,5,4,3,2,1];
[0191]
第21次结果:[8,16,7,15,6,14,5,13]、[4,12,3,11,2,10,1,9];
[0192]
第22次结果:[4,8,12,16,3,7,11,15]、[2,6,10,14,1,5,9,13];
[0193]
第23次结果:[2,4,6,8,10,12,14,16]、[1,3,5,7,9,11,13,15];
[0194]
第24次结果:[1,2,3,4,5,6,7,8]、[9,10,11,12,13,14,15,16];
[0195]
第25次结果:[9,1,10,2,11,3,12,4]、[13,5,14,6,15,7,16,8];
[0196]
第26次结果:[13,9,5,1,14,10,6,2]、[15,11,7,3,16,12,8,4];
[0197]
第27次结果:[15,13,11,9,7,5,3,1]、[16,14,12,10,8,6,4,2]。
[0198]
利用以上结果进行前组元素在前的交叉合并操作,整个交叉合并操作进行r
m2
次,具体过程如下:
[0199]
第1次结果:[15,16,13,14,11,12,9,10]、[7,8,5,6,3,4,1,2];
[0200]
第2次结果:[15,7,16,8,13,5,14,6]、[11,3,12,4,9,1,10,2];
[0201]
第3次结果:[15,11,7,3,16,12,8,4]、[13,9,5,1,14,10,6,2]。
[0202]
最终生成一次置换序列[15,11,7,3,16,12,8,4,13,9,5,1,14,10,6,2]。
[0203]
如图14所示,将原始视频图像中分成从左到右、从上到下分成16个尺寸为2
×
2的目标区域,按顺序标定为第1到第16个目标区域。如图15所示,按照一次置换序列中的元素的顺序进行置换操作,最终生成尺寸仍为h
×
w的视频帧,可以理解,为了提高加密的效率,位于不同的原始视频图像内,所处位置相同的各目标区域的置换规则相同。
[0204]
进一步,按照一次置换序列中的顺序进行置换操作后,如图16所示,根据r
m3
mod 4的结果(39mod 4=3),对视频帧进行旋转操作,由表1可知顺时针旋转270度后得到一次加密视频帧,对所有的原始视频图像进行完第一次加密后,得到的所有一次加密视频帧组成一次加密视频文件。
[0205]
对一次加密视频文件进行压缩处理得到压缩后文件,对压缩后文件中的每一帧一次加密帧进行第二次加密处理,其中,仅对一次加密帧中的压缩视频帧(即i帧)进行加密,如图17所示,压缩视频帧的尺寸为8
×
8个像素的块状数据,也即64个像素的块状数据,每个像素点均包含rgb三个通道,每个通道的颜色值在0~255之间。
[0206]
第二次加密过程如下:
[0207]
首先,使用一种伪随机数发生器,采用梅森旋转算法,利用随机生成的二次加密种子629711944002953962097066646893601579953190,生成24个数值在100以内的随机数,24个随机数组成二次置换序列:[74,76,48,21,35,8,57,24,51,52,9,88,20,48,57,9,34,86,
44,94,71,16,43,24]。
[0208]
第二步,根据629711944002953962097066646893601579953190mod 5=0的结果对压缩视频帧的rgb三个颜色通道进行重新排列,如图18所示,也即将g通道内的颜色值与b通道内的颜色值进行置换,得到初次置换视频帧。
[0209]
进一步,将二次置换序列拆分成r通道置换序列、g通道置换序列、b通道置换序列,每一通道置换序列包含24/3=8个元素,用于三个通道的置换。
[0210]
r通道置换序列:[74,76,48,21,35,8,57,24];
[0211]
g通道置换序列:[51,52,9,88,20,48,57,9];
[0212]
b通道置换序列:[34,86,44,94,71,16,43,24]。
[0213]
每个通道置换序列交替生成行置换子序列和列置换子序列:
[0214]
r通道行置换子序列:[74,76,35,8];
[0215]
r通道列置换子序列:[48,21,57,24];
[0216]
g通道行置换子序列:[51,52,20,48];
[0217]
g通道列置换子序列:[9,88,57,9];
[0218]
b通道行置换子序列:[34,86,71,16];
[0219]
b通道列置换子序列:[44,94,43,24]。
[0220]
因初次置换视频帧的尺寸为8
×
8个像素的块状数据,所以需对各通道置换子序列进行规范化处理,即将各通道置换子序列中元素的大小控制在8以内,可采用各通道置换子序列中元素对8取余数的方式得到。
[0221]
规范化后的行置换子序列和列置换子序列:
[0222]
r通道行置换子序列:[2,4,3,8];
[0223]
r通道列置换子序列:[8,5,1,8];
[0224]
g通道行置换子序列:[3,4,4,8];
[0225]
g通道列置换子序列:[1,8,1,1];
[0226]
b通道行置换子序列:[2,6,7,8];
[0227]
b通道列置换子序列:[4,6,3,8]。
[0228]
采用行置换子序列和列置换子序列对初次置换视频帧进行行和列的置换,以r通道行置换子序列是[2,4,3,8]、r通道列置换子序列是[8,5,1,8]为例,第一步,将r通道内像素点的第二行颜色值与第四行颜色值交换,第二步,将r通道内像素点的第八列颜色值与第五列颜色值交换,第三步,将r通道内像素点的第三行颜色值与第八行颜色值交换,第四步,将r通道内像素点的第一列颜色值与第八列颜色值交换。具体的置换过程如图19所示。如图20所示,置换完成后将三个通道的置换结果融合成二次加密视频帧,所有的二次加密视频帧重新打包回原来压缩视频流中,生成二次加密视频文件。
[0229]
上述加密过程中所需要的参数组成密钥,包括:
[0230]
一次加密种子:778854304983611100386998877132640112145320;
[0231]
第一次加密过程中生成的50个随机数中用于后续置换操作的随机数的序号:12、39、32;
[0232]
目标区域的尺寸:2
×
2;
[0233]
二次加密种子:629711944002953962097066646893601579953190;
[0234]
第二次加密过程中生成的随机数的数量:24。
[0235]
视频的解密过程需要利用到上述密钥,第一次解密过程如下:
[0236]
从二次加密视频文件中读取一个二次加密视频帧,利用二次加密种子629711944002953962097066646893601579953190,生成24个随机数s1,s2,
…
,s
24
,这些随机数组成二次置换序列[74,76,48,21,35,8,57,24,51,52,9,88,20,48,57,9,34,86,44,94,71,16,43,24]。
[0237]
将二次置换序列拆分成r通道置换序列、g通道置换序列、b通道置换序列,每一个通道序列再交替生成行置换子序列和列置换子序列,对各通道置换子序列进行规范化处理,即将各通道置换子序列中元素的大小控制在8以内,得到:
[0238]
r通道行置换子序列:[2,4,3,8];
[0239]
r通道列置换子序列:[8,5,1,8];
[0240]
g通道行置换子序列:[3,4,4,8];
[0241]
g通道列置换子序列:[1,8,1,1];
[0242]
b通道行置换子序列:[2,6,7,8];
[0243]
b通道列置换子序列:[4,6,3,8]。
[0244]
交替使用各通道置换子序列对二次置换视频帧进行行和列的置换,置换过程如图21所示,置换完成后得到初次置换视频帧。
[0245]
其次,根据629711944002953962097066646893601579953190mod 5=0的结果,参考表2,获取初次置换视频帧的rgb三个通道的排列模式,即rbg,如图22所示,将b通道与g通道进行置换,得到压缩视频帧,对所有的二次加密视频帧进行完第一次解密后,得到的所有压缩视频帧组成压缩后文件。
[0246]
利用特定压缩格式解压缩,获得一次加密视频文件,对一次加密视频文件中的每一帧一次加密视频帧进行第二次解密,具体过程如下:
[0247]
首先,利用一次加密种子778854304983611100386998877132640112145320生成50个随机数,获得50个随机数中第12、39、32个随机数27,3,39(r
m1
、r
m2
、r
m3
),根据一次加密视频帧尺寸8
×
8个像素的块状数据,以及目标区域的尺寸2
×
2计算参与置换的目标区域数量为16,进一步,利用随机数r
m1
、r
m2
对随机数进行交叉合并,得到一次置换序列[15,11,7,3,16,12,8,4,13,9,5,1,14,10,6,2],其次,如图23所示,根据r
m3
mod 4的结果(39mod 4=3)参考表1对一次加密视频帧进行反向旋转操作,即将一次加密视频帧逆时针旋转270度。
[0248]
最后,将各目标区域根据一次置换序列中的元素排序,如图24所示,得到原始视频图像,将所有的原始视频图像重新整合为视频文件。
[0249]
上述视频加密方法及装置采用了在视频文件压缩前后两次加密的技术路线,且每次加密过程中均采用了不同原理的加密方法,第一次加密不仅在原始视频图像中进行块操作,并且对得到的图像进行旋转,第二次加密不仅置换了像素点的位置,而且置换了颜色通道,同样也提高了安全性。两次加密相结合,攻击者采用各种途径都难以在可接受时间解密视频,同时本发明不破坏标准的视频压缩过程和格式,能够兼容现有的视频压缩格式,实用性强。
[0250]
上述视频解密方法及装置能够满足在物联网嵌入式视频设备中实现视频解密操作,在视频文件解压缩前后分别进行解密,每次解密采用不同的解密方式,并且解密的过程
简单快捷,运行时也不需要占用大量存储和计算资源,可以实现实时解密,有效地保证了传输视频文件的安全性,使得数据传输安全有效、方便快捷。
[0251]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0252]
以上实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。