视频数据加密传输方法、系统、设备及存储介质与流程

文档序号:15848710发布日期:2018-11-07 09:29阅读:323来源:国知局
视频数据加密传输方法、系统、设备及存储介质与流程

本发明涉及视频数据传输技术领域,尤其涉及一种视频数据加密传输方法、系统、设备及存储介质。

背景技术

h.264/avc是由itu-t视频编码专家组(vceg)和iso/iec动态图像专家组(mpeg)联合组成的联合视频组(jvt,jointvideoteam)提出的高度压缩数字视频编解码器标准,能提供连续、流畅的高质量图像(dvd质量),在同等图像质量下,采用h.264技术压缩后的数据量只有mpeg2的1/8,mpeg4的1/3。

h.264提供了网络抽象层(networkabstractionlayer),使得h.264的文件能容易地在不同网络上传输(例如互联网,cdma,gprs,wcdma,cdma2000等)。h.264以当前较领先的技术广泛用于视频通信领域,对于广泛存在于分组交换网的视频数据,信息安全问题也是当前迫切需要解决的问题之一,信息加密技术和加密手段的研究与开发发展也日新月异,当前常用的算法如下几种:des加密算法,aes加密算法,rsa加密算法,base64加密算法,md5加密算法以及国家商用密码管理办公室制定的包括sm1(scb2)、sm2、sm3、sm4、sm7、sm9、祖冲之密码算法(zuc)等等。

其中sm1、sm7算法不公开,调用该算法时,需要通过加密芯片的接口进行调用,sm1算法是分组密码算法,对称算法,分组长度为128位,密钥长度都为128比特,具有较快的运算速度,目前的广泛应用于国家智能ic卡,加密机,加密卡等商贸领域。在视频通信领域,高带宽的视频码流条件下,对每bit的信息流的加密解密对加密卡本身形成了一定的计算负担,由于sm1算法不开放且通常固化到专有芯片内,所以没法对加密解密过程转移到其他高性能cpu或者等价的其他运算单元之上。



技术实现要素:

针对现有技术中的问题,本发明的目的在于提供一种视频数据加密传输方法、系统、设备及存储介质,解决了视频数据加密过程中实时性不足的问题,并充分保障视频数据的安全。

本发明实施例提供一种视频数据加密传输方法,包括如下步骤:

发送端将视频数据拆分为第一数据包和第二数据包,所述第一数据包包括视频参数集数据和图像参数集数据,所述第二数据包包括视频条带数据;

所述发送端对所述第一数据包进行加密,得到加密的第一数据包;

所述发送端将所述加密的第一数据包和未加密的所述第二数据包发送至接收端,所述接收端配置为将接收到的第一数据包进行解密后与所述第二数据包组装,以得到完整的视频数据。

可选地,所述发送端对所述第一数据包进行加密,包括如下步骤:

所述发送端的国密sm1算法加密卡根据指定密钥对所述第一数据包进行加密;

所述接收端配置为根据如下步骤将接收到的第一数据包进行解密:

所述接收端的国密sm1算法加密卡根据指定密钥对所述加密的第一数据包进行解密。

可选地,所述发送端将所述加密的第一数据包和未加密的所述第二数据包发送至接收端,包括如下步骤:

所述发送端将所述加密的第一数据包通过tcp传输通道发送至所述接收端;

所述发送端将未加密的所述第二数据包通过rtp传输通道发送至所述接收端;

所述接收端配置为从所述tcp传输通道接收到所述加密的第一数据包,并从所述rtp传输通道接收到所述第二数据包。

可选地,所述发送端对所述第一数据包进行加密,得到加密的第一数据包之后,还包括如下步骤:

所述发送端为所述加密的第一数据包和所述第二数据包添加相同的时间戳;

所述接收端配置为将具有相同时间戳的第一数据包和第二数据包进行组合。

可选地,所述发送端将视频数据拆分为第一数据包和第二数据包,包括如下步骤:

所述发送端判断当前视频帧是否为idr帧;

如果是,则所述发送端将当前视频帧的视频数据拆分为第一数据包和至少一个第二数据包;

否则,所述发送端将当前视频帧的视频数据拆分为至少一个第二数据包;

所述接收端配置为根据如下步骤将接收到的第一数据包进行解密后与所述第二数据包组合:

所述接收端判断接收到的第二数据包是否存在具有相同时间戳的第一数据包;

如果是,则所述接收端从接收到的第二数据包中分拣得到关键帧数据,并将关键帧数据和第一数据包组合成完整的idr帧;

否则,所述接收端将接收到的属于同一帧视频数据的第二数据包组合成非idr帧。

可选地,所述接收端配置为根据如下步骤将解密的第一数据包与所述第二数据包组合:

所述接收端将解密的第一数据包存储于第一先入先出队列;

所述接收端将接收到的第二数据包存储于第二先入先出队列;

所述接收端将第一先入先出队列和第二先入先出队列中具有相同时间戳的数据包进行组合。

可选地,所述发送端将视频数据拆分为第一数据包和第二数据包,包括如下步骤:

所述发送端从采集编码卡获取h.264编码的视频数据;

所述发送端根据网络抽象层单元类型将所述视频数据拆分为第一数据包和第二数据包;

所述接收端配置为根据网络抽象层单元类型将解密的第一数据包和第二数据包组合后,发送至解码播放卡。

本发明实施例还提供一种视频数据加密传输系统,应用于所述的视频数据加密传输方法,包括:

视频数据拆分模块,用于将视频数据拆分为第一数据包和第二数据包,所述第一数据包包括视频参数集数据和图像参数集数据,所述第二数据包包括视频条带数据;

数据加密模块,用于对所述第一数据包进行加密,得到加密的第一数据包;

数据包发送模块,用于将所述加密的第一数据包和所述第二数据包发送至接收端,所述接收端配置为将接收到的第一数据包进行解密后与所述第二数据包组装,以得到完整的视频数据。

本发明实施例还提供一种视频数据加密传输设备,包括:

处理器;

存储器,其中存储有所述处理器的可执行指令;

其中,所述处理器配置为经由执行所述可执行指令来执行所述的视频数据加密传输方法的步骤。

本发明实施例还提供一种计算机可读存储介质,用于存储程序,所述程序被执行时实现所述的视频数据加密传输方法的步骤。

本发明所提供的视频数据加密传输方法、系统、设备及存储介质具有下列优点:

本发明解决了性能问题与安全问题的冲突,通过将关键数据和非关键数据进行分割,仅对关键数据进行加密,减轻了加密算法的负担,提高了加密算法的实时性;同时,第一数据包括一个gop序列中最重要的图像基础信息,缺少这些信息的情况下,没有密钥或密钥错误的接收端仅获取到非关键数据,也无法完整还原视频数据,从而全面保障了视频数据的安全性。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显。

图1是本发明一实施例的视频数据加密传输方法的流程图;

图2是本发明一实施例的视频数据加密和传输过程的流程图;

图3是本发明一实施例的视频数据接收和解密过程的流程图;

图4是本发明一实施例的视频数据加密传输系统的结构示意图;

图5是本发明一实施例的视频数据加密传输系统与接收端交互的示意图;

图6是本发明一实施例的视频数据加密传输设备的结构示意图;

图7是本发明一实施例的计算机存储介质的结构示意图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式;相反,提供这些实施方式使得本发明将全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的结构,因而将省略对它们的重复描述。

为了解决上述技术问题,当前的安全与性能问题需要通过其他技术手段找到一个平衡,本发明通过对h.264帧数据特性以及解码单元特点的利用,成功的解决了性能问题与安全问题的冲突,可以达到较好的商用效果,即对视频数据重要部分(sps和pps关键信息)和不重要部分的分割,仅针对重要部分进行加密,减轻了例如sm1算法的加密卡的负担。

当接收端没有密钥或者密钥错误的情况下,无法正确解出视频数据的sps(sequenceparameterset,序列参数集)和pps(pictureparameterset,图像参数集)关键信息。这部分信息包含了一个gop(groupofpictures,画面组)序列中最重要的图像基础信息,比如编码所用的profile,level,图像的宽和高,deblock滤波器等,缺少这些信息的前提下,解码器即使接收到视频条带数据也无法正常工作,达到了对视频加密的效果。

如图1所示,本发明实施例提供一种视频数据加密传输方法,包括如下步骤:

s100:发送端将视频数据拆分为第一数据包和第二数据包,所述第一数据包包括视频参数集数据和图像参数集数据,所述第二数据包可以包括视频条带数据包,还可以包括其他一些非关键数据;在拆分过程中,可以根据nalu(网络抽象层单元)类型对视频数据进行分类;

s200:所述发送端对所述第一数据包进行加密,得到加密的第一数据包,加密可以采用专用的算法加密卡进行数据加密,也可以采用特定的加密算法软件进行数据加密;

s300:所述发送端将所述加密的第一数据包和未加密的所述第二数据包发送至接收端,所述接收端配置为将接收到的第一数据包进行解密后与所述视频条带数据包组装,以得到完整的视频数据。

进一步地,该实施例采用国密sm1算法对第一数据包进行加密,具体地,所述步骤s200中,发送端对所述第一数据包进行加密,包括如下步骤:

所述发送端的国密sm1算法加密卡根据指定密钥对所述第一数据包进行加密。

该实施例仅针对第一数据包进行sm1算法加密,从而减轻了国密sm1算法加密卡的运算负担,大大提高了视频数据加密和传输的实时性。在实际应用中,其他加密算法如国密sm7、sm3、md5加密算法等等均可以应用于本发明中,而不以此处举例为限。

对应地,所述接收端配置为根据如下步骤将接收到的第一数据包进行解密:

所述接收端的国密sm1算法加密卡根据指定密钥对所述加密的第一数据包进行解密。

因此,只有正确掌握了指定密钥的接收端才能够获取到解密的第一数据包,并将解密后的第一数据包和第二数据包组合得到完整的视频数据。而其他不具有密钥或密钥错误的接收端即使接收到第二数据包,也无法准确还原视频帧。

如图2和图3所示,分别为该实施例的视频数据加密和传输流程以及视频数据接收和解密流程的示意图。

在该实施例中,所述步骤s300中,所述发送端将所述加密的第一数据包和未加密的所述第二数据包发送至接收端,包括如下步骤:

所述发送端将所述加密的第一数据包通过tcp传输通道发送至所述接收端;

所述发送端将未加密的所述第二数据包通过rtp传输通道发送至所述接收端;

所述接收端配置为从所述tcp(transmissioncontrolprotocol,传输控制协议)传输通道接收到所述加密的第一数据包,并从所述rtp(real-timetransportprotocol,实时传输协议)传输通道接收到所述视频条带数据包。

在该实施例中,对加密的第一数据包开启tcp的可靠信道进行传输,而对不是至关重要的信息例如视频条带数据包使用常规rtp(real-timetransportprotocol,实时传输协议)传输通道进行传输,在保障第一数据包的安全性的同时,也解决了实时性问题。

在该实施例中,采用时间戳来标识同一帧的关键数据和非关键数据,具体地,所述步骤s200:发送端对所述第一数据包进行加密,得到加密的第一数据包之后,还包括如下步骤:

所述发送端为所述加密的第一数据包和所述视频条带数据包添加相同的时间戳;

所述接收端配置为将具有相同时间戳的第一数据包和视频条带数据包进行组合。

所述步骤s100发送端将视频数据拆分为第一数据包和视频条带数据包,包括如下步骤:

所述发送端判断当前视频帧是否为idr帧;

如果是,则当前视频帧是包含sps数据和pps数据的idr帧,所述发送端将当前视频帧的视频数据拆分为第一数据包和至少一个第二数据包;

否则,当前视频帧为不包含sps数据和pps数据的非idr帧,所述发送端将当前视频帧的视频数据拆分为至少一个第二数据包;

所述接收端配置为根据如下步骤将接收到的第一数据包进行解密后与所述视频条带数据包组合:

所述接收端判断接收到的第二数据包是否存在具有相同时间戳的第一数据包;

如果是,则说明接收到的第二数据包包括idr帧的视频条带数据以及其他一些非关键数据,所述接收端从接收到的视频条带数据包中分拣得到关键帧数据,并将关键帧数据和第一数据包组合成完整的idr帧;

否则,说明接收到的第二数据包包括非idr帧的视频条带数据,所述接收端将接收到的属于同一帧视频数据的视频条带数据包组合成非idr帧。

如图4所示,本发明实施例还提供一种视频数据加密传输系统,应用于所述的视频数据加密传输方法,包括发送端的如下模块:

视频数据拆分模块100,用于将视频数据拆分为第一数据包和第二数据包,所述第一数据包包括视频参数集数据和图像参数集数据,所述第二数据包包括视频条带数据和其他一些非关键数据;

数据加密模块200,用于对所述第一数据包进行加密,得到加密的第一数据包;在该实施例中,数据加密模块200可以为国密sm1算法加密卡,但本发明不限于此;

数据包发送模块300,用于将所述加密的第一数据包和所述第二数据包发送至接收端,所述接收端配置为将接收到的第一数据包进行解密后与所述视频条带数据包组装,以得到完整的视频数据。

如图5所示,为本发明一具体实例的发送端和接收端传输视频数据的过程示意图。其中a~h分别表示的含义如下:

a:发送端编码后的未加密的h.264数据;

b:发送端未加密的第一数据包;

c:加密卡加密后的第一数据包;

d:发送端发送的部分加密的视频数据包,包括加密的第一数据包和未加密的第二数据包;

e:接收端接收的部分加密的视频数据包,包括加密的第一数据包和未加密的第二数据包;

f:接收端加密的第一数据包;

g:加密卡解密后的第一数据包;

h:接收端解密的视频数据包,包括未加密的关键数据和未加密的非关键数据。

其中,发送端包括:

基于h.264标准的视频编码卡1,以高速数据总线连接到发送端主cpu,支持对视频数据进行h.264标准的编码,该编码卡接收来自外部摄像机的数据,编码以帧结构输出后,通过高速总线发送给发送端主cpu;

发送端的sm1算法加密卡2,用于执行上述数据加密模块200的功能,即根据指定密钥对所述第一数据包进行加密,得到加密的第一数据包;

发送端的主cpu3,用于执行上述视频数据拆分模块100和数据包发送模块300的功能,即将视频数据拆分为第一数据包和第二数据包,并将第一数据包和指定密钥发送到发送端的sm1算法加密卡2,从发送端的sm1算法加密卡2中获取到加密的第一数据包,然后将第一数据包和第二数据包通过以太网4发送至接收端;在发送端的cpu3上,还设置有信道管理模块,分别对tcp传输通道和rtp传输通道进行管理;

接收端包括:

接收端的主cpu5,用于通过以太网4接收到加密的第一数据包和第二数据包,将加密的第一数据包发送至接收端的sm1算法加密卡6,从接收端的sm1算法加密卡6获取解密的第一数据包,然后将关键数据和非关键数据组合成视频数据包后发送至解码播放卡7;在接收端的cpu5上,还设置有信道管理模块,分别对tcp传输通道和rtp传输通道进行管理;

接收端的sm1算法加密卡6,用于根据指定密钥对加密的第一数据包进行解密;

解码播放卡7,用于根据h.264标准对视频数据包进行解码并播放。

以该具体实例为例,该实施例的视频数据加密传输方法包括如下步骤:

(1)发送端和接收端配置视频通信的tcp传输通道和rtp传输通道,即在发送端和接收端同时开辟两条数据通道,一条用于高重要性、低数据量的数据加密tcp通道,一条用于低延时、低重要性的rtp视频分组通道;

(2)视频编码卡完成对视频数据的采集和编码,发送端的主cpu通过高速总线获取编码后的视频数据帧;

(3)发送端的主cpu采用拆分算法对视频数据帧进行拆分,具体地,按照nalu类型进行拆分,通过h.264起始字节码标识后的字节位运算划分h.264帧数据至不同的数据包中;

(4)发送端采用加密卡将包括sps和pps的第一数据包进行加密,具体为使用连接在发送端的主cpu的外置sm1算法加密卡以指定密钥进行加密,并且需要对第一数据包打一个时间戳,然后将加密后的数据以tcp传输通道发送给接收端;

(5)发送端在完成发送包括sps和pps的第一数据包之后,对单独帧剩余视频条带数据分组进行拆分,得到至少一个第二数据包,第二数据包需要添加与第一数据包相同的时间戳,以rtp传输通道进行流媒体发送给接收端;如果该视频数据帧为不带sps和pps数据的非idr帧类型,则忽略步骤(4),直接执行步骤(5);

(6)接收端在tcp传输通道内接收加密的第一数据包,使用连接到接收端的主cpu的sm1算法加密卡,使用指定密钥进行解密,解密后得到sps和pps信息流,加入到第一先入先出队列中;

(7)接收端完成tcp传输通道的反馈之后,对后续rtp传输通道传输的数据进行组装,并分拣出全i块的关键帧,将关键帧数据存储于第二先入先出队列中,通过时间戳来合并两个队列的相关nalu数据,合并完成视频帧;

(8)接收端未接收到tcp传输通道的关键数据流时,说明当前视频帧为非idr帧,则采用常规rtp组帧方法,将rtp传输通道传输的第二数据包进行组装即可,可以减少对于sm1算法加密卡的操作;

(9)将合并完成的视频帧数据发送至解码播放卡,实现接收端的视频解码播放。

因此,采用该实施例的视频数据加密传输方法和系统,相比于传统的加密方法,主要优势有如下几点:

发送端和接收端搭配国有商密sm1算法加密卡,在低运算性能上能支持更多路、更高码率的安全数据传输;

加密通道独立且低数据率高重要性的数据以可靠的tcp传输通道传输,解决了弱网条件下,关键信息在rtp传输丢失的问题;

降低对国密sm1算法卡的io访问频率,降低器件损耗,延长使用寿命。

本发明实施例还提供一种视频数据加密传输设备,包括处理器;存储器,其中存储有所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行所述的视频数据加密传输方法的步骤。

所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。

下面参照图6来描述根据本发明的这种实施方式的电子设备600。图6显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图6所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同系统组件(包括存储单元620和处理单元610)的总线630、显示单元640等。

其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元610可以执行如图1中所示的步骤。

所述存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(rom)6203。

所述存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。

电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

本发明实施例还提供一种计算机可读存储介质,用于存储程序,所述程序被执行时实现所述的视频数据加密传输方法的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。

参考图7所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

综上所述,与现有技术相比,本发明解决了性能问题与安全问题的冲突,通过将关键数据和非关键数据进行分割,仅对关键数据进行加密,减轻了加密算法的负担,提高了加密算法的实时性;同时,第一数据包括一个gop序列中最重要的图像基础信息,缺少这些信息的情况下,没有密钥或密钥错误的接收端仅获取到非关键数据,也无法完整还原视频数据,从而全面保障了视频数据的安全性。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1