视频加密传输方法和解密方法、装置及系统与流程

文档序号:12162607阅读:1578来源:国知局
视频加密传输方法和解密方法、装置及系统与流程

本申请涉及视频加密技术,具体涉及一种视频加密方法和相应装置。本申请同时涉及一种视频解密方法和相应装置,一种视频加密传输系统,以及一种加密控制方法和相应装置。



背景技术:

出于远程同步播放等目的,许多领域需要在本地设备上观看远端设备输出的图像,在这一需求背景下出现了远程桌面应用。远程桌面应用通常包括两个部分:一个是提供远程桌面服务的图像帧发送端(以下简称发送端);另一个是使用远程桌面服务的图像帧接收端(以下简称接收端)。发送端和接收端可以是台式计算机、笔记本电脑、嵌入式设备、或者智能电视等设备。

远程桌面应用的基本原理是这样的:发送端将本地的桌面图像帧(也称为画面帧)实时地进行数据封装并发送给接收端,从而将发送端的桌面图像以视频流的形式传输给接收端,接收端接收后经过解封装操作在本地的显示设备上连续显示各个图像帧,即:将发送端的桌面图像以视频的方式呈现出来,从而实现了远程视频呈现功能。在上述过程中,为了减少数据传输量,发送端也可以将桌面图像帧经视频编码后发送给接收端,接收端进行相应的解码后在本地呈现。

以基于Linux Framebuffer技术的远程桌面系统为例,现有的远程桌面应用的实现方式如图1所示。在现有的实现方式中通常采用两种加密方式:缺省方式是不加密,即:发送端从Framebuffer中获取桌面图像帧,经视频编码及包封装后以IP数据包的方式传输给接收端,其间不进行加密处理;另一种方式是在传输层加密,即对包封装后的数据整体加密传输(例如,采用SSL协议加密)。

上述两种方式各自存在相应的缺陷:采用不加密的方式,如果传输的数据被截获后很容易泄露桌面图像中包含的信息,带来安全上的隐患;采用传输层加密方式,在发送端需要对每一帧都进行加密、在接收端则需要对每一帧都进行解密,效率低下。



技术实现要素:

本申请实施例提供一种视频加密传输方法和装置,以解决现有的视频加密传输方式无法同时兼顾数据安全性与操作效率的问题。本申请实施例还提供一种视频解密方法和装置,一种视频加密传输系统,以及一种加密控制方法和装置。

本申请提供一种视频加密传输方法,包括:

获取用于形成视频流的图像帧;

当所述图像帧满足预设的加密条件时,采用预设的加密算法对其进行加密;

在封装所述图像帧的过程中写入相应的加密标识信息,并将封装后的数据包发送给图像帧接收端。

可选的,所述预设的加密条件包括:所述图像帧按照预设方式承载加密指示信息。

可选的,所述图像帧按照预设方式承载加密指示信息包括:所述图像帧在预设位置的像素点值与预设值一致。

可选的,所述预设位置包括图像帧的4个顶点,所述预设值包括0xFFFF。

可选的,所述方法在远程桌面应用的图像帧发送端实施,所述图像帧包括桌面图像帧;

在获取用于形成视频流的桌面图像帧之前,执行下述操作:

绘制所述桌面图像帧的应用程序判断所述桌面图像帧是否需要加密;

若是,按照预设方式向所述桌面图像帧中写入加密指示信息。

可选的,所述获取用于形成视频流的桌面图像帧,包括:

从对应于显示设备的Framebuffer中获取所述桌面图像帧。

可选的,所述需要加密的桌面图像帧包括:包含关键信息的桌面图像帧、或包含关键信息输入过程的桌面图像帧,所述关键信息包括以下所列元素中的一种或者组合:账户信息、密码信息。

可选的,在所述获取用于形成视频流的图像帧之后,执行下述操作:

识别获取的图像帧是否满足预设的加密条件;

并对所述图像帧进行视频编码,生成编码后图像帧;

所述当所述图像帧满足预设的加密条件时,采用预设的加密算法对其进行加密包括:采用预设的加密算法,对已识别为满足预设加密条件的编码后图像帧进行加密;

所述在封装所述图像帧的过程中写入相应的加密标识信息包括:在封装所述编码后图像帧的过程中写入相应的加密标识信息。

可选的,所述对图像帧进行视频编码包括:采用数字视频编码标准H.264进行视频编码。

可选的,在封装所述图像帧的过程中写入相应的加密标识信息,包括:

采用RTP协议对所述图像帧进行封装,并通过设置扩展位的方式在相应的扩展头中写入所述加密标识信息。

可选的,所述加密标识信息包括:标识所述图像帧是否被加密的信息。

可选的,对于被加密的图像帧,所述加密标识信息还包括:所采用的预设加密算法。

可选的,所述预设的加密算法包括:DES、3DES、RC2、RC4、IDEA、或者AES算法。

相应的,本申请还提供一种视频加密传输装置,包括:

图像帧获取单元,用于获取用于形成视频流的图像帧;

筛选加密单元,用于当所述图像帧满足预设的加密条件时,采用预设的加密算法对其进行加密;

封装发送单元,用于在封装所述图像帧的过程中写入相应的加密标识信息,并将封装后的数据包发送给图像帧接收端。

可选的,所述装置部署于远程桌面应用的图像帧发送端,所述图像帧获取单元获取的图像帧包括桌面图像帧;

所述装置还包括:

加密判断单元,用于在触发所述图像帧获取单元工作之前,由绘制所述桌面图像帧的应用程序判断所述桌面图像帧是否需要加密;

加密指示写入单元,用于当所述加密判断单元的输出为是时,按照预设方式向所述桌面图像帧中写入加密指示信息。

可选的,所述装置还包括:

加密预识别单元,用于识别所述图像帧获取单元获取的图像帧是否满足预设的加密条件,并触发所述编码单元工作;

编码单元,用于对所述图像帧进行视频编码,生成编码后图像帧;

所述筛选加密单元具体用于,采用预设的加密算法,对所述加密预识别单元已识别为满足预设加密条件的编码后图像帧进行加密;

所述封装发送单元具体用于,在封装所述编码后图像帧的过程中写入相应的加密标识信息,并将封装后的数据包发送给图像帧接收端。

可选的,所述封装发送单元具体用于,采用RTP协议对所述图像帧进行封装,通过设置扩展位的方式在相应的扩展头中写入所述加密标识信息,并将封装后的数据包发送给图像帧接收端。

此外,本申请还提供一种视频解密方法,包括:

对接收到的视频流中的数据包进行解封装,获取图像帧;

根据数据包封装信息中携带的加密标识信息判断所述图像帧是否被加密;

若是,采用相应的解密算法对所述图像帧进行解密。

可选的,所述根据数据包封装信息中携带的加密标识信息判断所述图像帧是否被加密包括:根据用于封装所述图像帧的RTP扩展头中携带的加密标识信息,执行所述判断。

可选的,如果在完成所述加密判断操作及必要的解密操作后,得到的图像帧为进行视频编码处理后的编码后图像帧时,所述方法还包括:

采用与图像帧发送端所采用的视频编码方法对应的解码方法,对所述编码后图像帧进行解码,得到图像帧。

可选的,所述方法包括:

显示完成所述加密判断操作及必要的解密操作后得到的图像帧。

可选的,所述方法在远程桌面应用的图像帧接收端实施,所述完成所述加密判断操作及必要的解密操作后得到的图像帧包括:图像帧发送端的桌面图像帧。

可选的,采用如下方式显示得到的桌面图像帧:

将所述桌面图像帧写入对应于显示设备的Framebuffer中。

可选的,所述相应的解密算法包括:预设的与加密所述图像帧所采用的加密算法对应的解密算法。

可选的,所述数据包封装信息中携带的加密标识信息包括:标识所述图像帧是否被加密的信息。

可选的,所述数据包封装信息中携带的加密标识信息还包括:加密所述图像帧所采用的加密算法;

所述相应的解密算法包括:与所述数据包封装信息中携带的加密算法对应的解密算法。

相应的,本申请还提供一种视频解密装置,包括:

解封装单元,用于对接收到的视频流中的数据包进行解封装,获取图像帧;

加密判断单元,用于根据数据包封装信息中携带的加密标识信息判断所述图像帧是否被加密;

解密单元,用于当所述加密判断单元的输出为是时,采用相应的解密算法对所述图像帧进行解密。

可选的,所述加密判断单元具体用于,根据用于封装所述图像帧的RTP扩展头中携带的加密标识信息,判断所述图像帧是否被加密。

可选的,所述装置还包括:

解码单元,用于在所述加密判断单元输出为否、或者所述加密判断单元输出为是且所述解密单元处理完毕后,如果得到的图像帧为进行视频编码处理后的编码后图像帧,则采用与图像帧发送端所采用的视频编码方法对应的解码方法,对所述编码后图像帧进行解码,得到图像帧。

可选的,所述装置还包括:

显示单元,用于显示当所述加密判断单元输出为否、或者所述加密判断单元输出为是且所述解密单元处理完毕后,所得到的图像帧。

可选的,所述装置部署于远程桌面应用的图像帧接收端,由所述显示单元显示的图像帧包括:图像帧发送端的桌面图像帧。

此外,本申请还提供一种视频加解密传输系统系统,包括:根据上述任意一项所述的视频加密传输装置,以及根据上述任意一项所述的视频解密装置。

此外,本申请还提供一种加密控制方法,包括:

判断图像帧是否需要加密;

若是,按照预先设定的方式向所述图像帧中写入加密指示信息。

可选的,所述方法在远程桌面应用的图像帧发送端实施,所述图像帧包括桌面图像帧;

所述判断图像帧是否需要加密包括:绘制桌面图像帧的应用程序判断所述桌面图像帧是否需要加密。

可选的,所述需要加密的桌面图像帧包括:包含关键信息的桌面图像帧、或包含关键信息输入过程的桌面图像帧;关键信息包括以下所列元素中的一种或者组合:账户信息、密码信息。

可选的,所述应用程序采用如下方式绘制所述桌面图像帧:向Framebuffer中写入所述桌面图像帧;

所述向桌面图像帧中写入加密指示信息包括:向Framebuffer中写入所述加密指示信息。

可选的,所述按照预先设定的方式向所述图像帧中写入加密指示信息包括:将所述图像帧在预设位置的像素点值设置为预设值。

相应的,本申请还提供一种加密控制装置,包括:

图像帧加密判断单元,用于判断图像帧是否需要加密;

加密指示写入单元,用于当所述图像帧加密判断单元的输出为是时,按照预先设定的方式向所述图像帧中写入加密指示信息。

与现有技术相比,本申请具有以下优点:

本申请提供的视频加密传输方法、解密方法以及系统,图像帧发送端对满足预设加密条件的图像帧进行加密,并在封装待发送数据包的过程中添加相应的加密标识信息,图像帧接收端接收所述数据包后,可以根据加密标识信息对被加密的图像帧进行解密。采用上述技术方案,由于图像帧的发送端和接收端有选择地对视频流中的图像帧进行加解密,从而在提供一定安全性保障的同时,减少加解密操作的开销,提高整个系统的处理效率。特别是在远程桌面应用中,通过对由应用程序标识的关键图像帧进行加解密,能够进一步有效保证视频流中关键信息的安全性。

本申请提供的加密控制方法,当判定图像帧需要加密时,按照预先设定的方式向所述图像帧中写入加密指示信息。采用本方法,使得图像帧具有自我描述是否加密的特性,成为传达加密控制信息的媒介,可以避免上层应用对底层加密模块的直接访问,简化控制流程。特别是应用于远程桌面系统中,由绘制桌面图像帧的应用程序将加密指示信息写入图像帧中,不仅可以灵活控制视频流中的任意图像帧是否需要加密,而且可以避免应用程序与底层处理模块之间的耦合。

附图说明

图1是现有远程桌面应用的实现方式的示意图;

图2是本申请的一种视频加密传输方法的实施例的流程图;

图3是本申请实施例提供的RTP协议头格式的示意图;

图4是本申请实施例提供的RTP扩展头格式的示意图;

图5是本申请的一种视频加密传输装置的实施例的示意图;

图6是本申请的一种视频解密方法的实施例的流程图;

图7是本申请的一种视频解密装置的实施例的示意图;

图8是本申请的一种视频加密传输系统的实施例的示意图;

图9是本申请实施例提供的远程桌面应用的实现方式的示意图;

图10是本申请的一种加密控制方法的实施例的流程图;

图11是本申请的一种加密控制装置的实施例的示意图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是,本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此,本申请不受下面公开的具体实施的限制。

在本申请中,分别提供了一种视频加密传输方法和装置,一种视频解密方法和装置,一种视频加密传输系统,以及一种加密控制方法和装置,在下面的 实施例中逐一进行详细说明。为了便于理解,在描述实施例之前,先对本申请的技术方案作简要的说明。

图像帧发送端可以将其提供的图像帧,例如:具有图像生成或者处理功能的应用程序或者工具软件实时输出的动态图像帧或者图像帧发送端的桌面图像帧等,实时地发送给图像帧接收端,即,将连续的一系列图像帧形成视频流,并且通过网络传输给图像帧接收端,所述接收端对接收到的视频流中的图像帧在本地按顺序连续播放,从而观看到发送端提供的视频图像。本技术方案通过有选择地对视频流中的图像帧进行加解密,从而在提供一定安全性的同时,有效地较少加解密操作的开销,提升整个系统的性能。

本技术方案可以应用于图像帧发送端通过实时发送图像帧的形式向图像帧接收端提供视频流、图像帧接收端呈现视频流的应用场景中,其中,远程桌面应用是常见的应用场景之一,在下文中以远程桌面应用为背景描述本申请的技术方案。

另外,在本技术方案中,为了提高视频流的加密效率,图像帧发送端可以仅对满足预设加密条件的图像帧进行加密,所述预设的加密条件可以是对符合一定序位规则的图像帧进行加密,例如对于用于形成视频流的奇数图像帧或者偶数图像帧加密,也可以是对按照预设方式承载加密指示信息的图像帧进行加密,例如:对在预设位置的像素点值与预设值一致的图像帧进行加密。由于第一种实施方式比较简单,因此在下文描述的实施例中重点以上述第二种实施方式为例进行描述。在具体实施时,也可以根据需要预先设定所需的其它加密条件,从而实现对图像帧的筛选加密处理。下面对本申请的实施例作详细说明。

请参考图2,其为本申请的一种视频加密传输方法的实施例的流程图,所述方法可以在向图像帧接收端提供视频流的图像帧发送端实施,包括如下步骤:

步骤201、获取用于形成视频流的图像帧。

本步骤所述的图像帧可以是采用不同方式生成的,例如可以由具有图像生成或者处理功能的应用程序生成,也可以是由其他工具软件输出的,本步骤可以采用相应的方式从文件系统或者内存获取所述图像帧。

在本实施例中,应用场景为远程桌面应用,因此本步骤所述的图像帧通常是指由在图像帧发送端运行的应用程序绘制的图形用户界面。具体实现时,应用程序可以通过调用系统提供的接口向与显示设备对应的显示缓存中写入图像 帧,写入显示缓存中的图像帧可以在显示设备上显示出来,因此也称为桌面图像帧或者画面帧。所述图像帧可以具有不同的格式,例如,本方法如果在台式计算机、平板电脑等设备上实施,图像帧通常是RGB格式的;本方法如果在智能电视等设备上实施,图像帧通常是YUV格式的。

对于一些敏感画面,例如:包含账户、密码等关键信息的关键图像帧,或者是包含上述关键信息输入过程的关键图像帧,为了避免在网络传输过程中被截获而导致关键信息泄露,可以对这样的图像帧进行加密。具体实现时,可以由应用程序自行访问底层功能模块对需要加密的图像帧进行必要的加密处理,但是这样会造成应用程序与底层功能模块之间的紧密耦合,增加后续对应用程序以及底层模块维护的工作量,而且不便于实现功能模块的复用。

基于上述考虑,本技术方案提供一种优选实施方式:由图像帧按照预设方式承载加密指示信息,从而在应用程序灵活选择待加密图像帧的同时,避免了与底层功能模块的耦合。所述图像帧可以按照预先设定的不同方式承载加密指示信息,例如:图像帧在预设位置的像素点值与预设值一致,或者图像帧在预设位置的像素点值执行特定运算后得到的结果在预设范围之内等。

也就是说,应用程序在绘制包含关键信息的图像帧时,例如绘制包含用户账户信息的图形用户界面时,或者绘制包含账户信息输入过程的图形用户界面时,可以按照预先设定的方式向图像帧中写入加密指示信息,例如,将图像帧在预设位置的像素点值设置为预设值,所述预设位置可以是图像帧的4个顶点,对于每个像素点采用16位二进制值表示的RGB图像帧,所述预设值可以是0xFFFF。

具体实现时,可以根据实施本方法的系统平台提供的接口或者操作方式完成上述功能,例如,对于采用Linux系统的图像帧发送端,可以通过访问Framebuffer实现。Framebuffer也称帧缓冲,是内存中的显示缓冲区,写入Framebuffer中的图像帧可以在本地显示设备上显示,因此应用程序可以通过写Framebuffer的方式显示图像帧,对于需要加密的图像帧,也可以通过写Framebuffer的方式向图像帧中写入加密指示信息。应用程序可以直接访问、也可以通过实施本方法的系统平台提供的接口访问Framebuffer。

需要说明的是,在本实施例中,由绘制图像帧的应用程序预先向图像帧中写入加密指示信息,例如:将图像帧在预设位置的像素点值设置为预设值。在 远程桌面应用场景或者是其他应用场景下,也可以统一由具备加密控制功能的服务程序完成上述功能。例如,所述服务程序可以通过模式识别等方式判断图像帧是否包含需要保护的信息,如果识别出这种情况则向图像帧中写入加密指示信息。

上面描述了在本步骤之前对图像帧的处理过程,本步骤的主要任务是获取所述图像帧。具体实现可以是,通过截屏的方式获取,也可以通过访问与显示设备对应的显示缓存获取。仍沿用上述基于Framebuffer的例子,本步骤可以从Framebuffer中读取图像帧。

步骤202、当所述图像帧满足预设的加密条件时,采用预设的加密算法对其进行加密。

本步骤采用预设的加密条件对步骤201获取的图像帧进行筛选,并针对满足预设加密条件的图像帧进行加密。本实施例中所述预设的加密条件为:图像帧按照预设方式承载加密指示信息,那么本步骤可以从图像帧中获取相应的信息,并判断是否与预设的加密指示信息相符。

例如,如果预设的加密条件为:所述图像帧在预设位置的像素点值与预设值一致,那么本步骤读取所述图像帧在每个预设位置的像素点值,并与预设值进行比较,如果每个预设位置的像素点值都与预设值一致,则说明该图像帧需要加密,否则不需要加密。

优选地,考虑到原始的图像帧数据量比较大,在传输过程中不仅占用较多网络带宽而且也会比较耗时,为了降低数据传输量,可以在识别图像帧是否需要加密后,对图像帧进行视频编码,生成编码后图像帧,也称为视频帧。例如可以采用H.264标准进行视频编码,消除图像帧存在的冗余信息。在其他实施方式中,也可以采用其他压缩编码方式,例如H.263或者MPEG4等,本技术方案不作具体的限定。

完成视频编码后,如果在编码前已经识别所述图像帧需要加密,则可以采用预设的加密算法对相应的编码后图像帧(即视频帧)进行加密。所述预设的加密算法包括:DES(Data Encryption Standard—数据加密标准)、3DES(Triple DES—三重数据加密算法)、RC2、RC4、IDEA(International Data Encryption Algorithm—国际数据加密算法)、或者AES(Advanced Encryption Standard—高级加密标准)算法。在具体实施时,也可以采用其他加密算法,只要图像帧接 收端接收该图像帧后能够采用相应的解密算法解密即可。

如果编码前识别所述图像帧不需要加密,那么本步骤可以仅对图像帧进行视频编码。此外,如果图像帧数据量比较小,或者网络带宽能够满足传输要求时,也可以不进行视频编码处理,这种情况下,本步骤直接对需要加密的图像帧进行加密即可。

步骤203、在封装所述图像帧的过程中写入相应的加密标识信息,并将封装后的数据包发送给图像帧接收端。

本步骤对步骤202处理后的图像帧进行封装,所述图像帧可能是满足预设加密条件并已经加密的图像帧,也可能是不满足预设加密条件、因此未加密的图像帧(如果在步骤202中进行了视频编码,那么本步骤的封装对象为编码后图像帧,为了便于描述以下统称为图像帧)。对于这两种情况,可以通过在封装信息中写入相应的加密标识信息加以区分,以便于图像帧接收端执行正确的解密操作,并将封装完毕后的数据包发送给图像帧接收端。

对图像帧进行封装的过程通常是指,按照网络传输的要求,对图像帧进行分层封装。例如可以封装为TCP或者UDP报文,然后再进行IP数据包的封装。优选地,考虑到传输层的实时传输协议(Real-time Transport Protocol—RTP)提供了具有实时特征的端对端传送服务,并且可以带有扩展头,因此本实施例采用RTP协议对图像帧进行封装,并在该协议头的扩展头中写入相应的加密标识信息,然后再通过必要的操作封装成IP数据包。

请参考图3,其为本申请实施例提供的RTP协议头格式的示意图。其中X比特位是扩展标志,当X=1时,表示在RTP协议头后跟有一个扩展头,本实施例在所述扩展头中写入相应的加密标识信息。所述加密标识信息至少包括:标识所述图像帧是否被加密的信息,对于被加密的图像帧,所述加密标识信息还可以包括:所采用的预设加密算法。

请参考图4,其为本申请实施例提供的RTP扩展头格式的示意图,其中Header Extension部分可自定义。本实施例采用如下方式将加密标识信息写入所述RTP扩展头中,Length字段的值设置为4,表示Header Extension部分占4字节;Header Extension中字节0的bit[0]为加密位,对于被加密的图像帧将该比特位设置为1,对于未加密的图像帧则设置为0;字节0的bit[4]至bit[7]为加密类型,表明所采用的加密算法,其他位保留。

上述bit[4]至bit[7]的取值可以采用如下方式设置:1—DES算法;2—3DES算法;3—RC2算法;4—RC4算法;5—IDEA算法;6—AES算法。

在RTP扩展头中写入加密标识信息的目的,是为了告知图像帧接收端被封装的图像帧是否被加密,以及所采用的加密算法,从而图像帧接收端能够执行正确的解密操作。在具体实现时,如果图像帧的接收端和发送端端预先约定好了采用某一种固定的加密算法,那么也可以仅在RTP扩展头中设置相应的加密位即可。

上面的描述给出了利用RTP扩展头携带加密标识信息的一种具体方式,在其他实施方式中,可以在RTP扩展头中采用不同的比特位或者采用不同取值携带加密标识信息,也可以不采用RTP协议、而采用其他协议进行封装,只要能够在封装信息中写入所述加密标识信息,而且图像帧接收端能够执行相应的解封装操作并从封装信息中提取这部分加密标识信息,就同样可以实现本技术方案。

完成上述封装操作、并写入相应的加密标识信息后,可以将封装后的数据包发送给图像帧接收端。重复执行本方法的上述步骤,从而可以对获取的图像帧进行有选择地加密、并以视频流的形式发送给所述接收端。

综上所述,本申请提供的视频加密传输方法,由于对发送给图像帧接收端的视频流中的图像帧有选择地进行加密,即,仅对满足预设加密条件的图像帧进行加密,因此在提供一定安全性保障的同时,有效减少了加密操作的开销,提高了图像帧发送端的处理效率。特别是在远程桌面应用中,通过对由应用程序标识的关键图像帧进行加密,能够进一步有效保证视频流中关键信息的安全性。

在上述的实施例中,提供了一种视频加密传输方法,与之相对应的,本申请还提供一种视频加密传输装置。请参看图5,其为本申请的一种视频加密传输装置的实施例示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。

本实施例的一种视频加密传输装置,包括:图像帧获取单元501,用于获取用于形成视频流的图像帧;筛选加密单元502,用于当所述图像帧满足预设的加 密条件时,采用预设的加密算法对其进行加密;封装发送单元503,用于在封装所述图像帧的过程中写入相应的加密标识信息,并将封装后的数据包发送给图像帧接收端。

可选的,所述装置部署于远程桌面应用的图像帧发送端,所述图像帧获取单元获取的图像帧包括桌面图像帧;

所述装置还包括:

加密判断单元,用于在触发所述图像帧获取单元工作之前,由绘制所述桌面图像帧的应用程序判断所述桌面图像帧是否需要加密;

加密指示写入单元,用于当所述加密判断单元的输出为是时,按照预设方式向所述桌面图像帧中写入加密指示信息。

可选的,所述装置还包括:

加密预识别单元,用于识别所述图像帧获取单元获取的图像帧是否满足预设的加密条件,并触发所述编码单元工作;

编码单元,用于对所述图像帧进行视频编码,生成编码后图像帧;

所述筛选加密单元具体用于,采用预设的加密算法,对所述加密预识别单元已识别为满足预设加密条件的编码后图像帧进行加密;

所述封装发送单元具体用于,在封装所述编码后图像帧的过程中写入相应的加密标识信息,并将封装后的数据包发送给图像帧接收端。

可选的,所述封装发送单元具体用于,采用RTP协议对所述图像帧进行封装,通过设置扩展位的方式在相应的扩展头中写入所述加密标识信息,并将封装后的数据包发送给图像帧接收端。

与本申请提供的一种视频加密传输方法相对应,本申请还提供一种视频解密方法,所述方法可以在图像帧接收端实施。请参考图6,其为本申请提供的一种视频解密方法的实施例的流程图,本实施例与之前提供的视频加密传输方法的实施例内容相同的部分不再赘述,下面重点描述不同之处。本申请提供的视频解密方法包括如下步骤:

步骤601、对接收到的视频流中的数据包进行解封装,获取图像帧。

本步骤对接收到的视频流中的数据包进行解封装,通过解封装可以逐层去 除为了进行网络传输所添加的封装信息,从而得到被封装的图像帧。

由于在本技术方案中,被封装图像帧是否被加密的信息是由数据包封装信息携带的,因此本步骤可以在解封装的过程中获取所述加密标识信息,如果图像帧发送端将加密标识信息写入封装信息中的特定字段,本步骤则可以读取封装信息中的相应字段。例如,本实施例所涉及的图像帧发送端采用与上述视频加密传输方法实施例中的相同方式,在RTP扩展头中携带加密标识信息,那么在本步骤中,可以读取RTP扩展头中携带的加密标识信息。

步骤602、根据数据包封装信息中携带的加密标识信息判断所述图像帧是否被加密;若是,执行步骤603。

所述加密标识信息至少包含被封装图像帧是否被加密的指示信息,对于被加密的图像帧,所述加密标识信息中还可以包含图像帧发送端所采用的加密算法。

本步骤根据数据包封装信息中携带的加密标识信息判断被封装的图像帧是否被加密,仍沿用上述步骤601中的例子,在RTP扩展头中携带加密标识信息,且RTP扩展头中包含的相应指示信息表明被封装的图像帧是经过加密的图像帧,则执行步骤603进行解密,否则不用解密。

步骤603:采用相应的解密算法对所述图像帧进行解密。

如果图像帧发送端采用固定的加密算法,那么通常可以预先设置好与图像帧发送端所采用的加密算法对应的解密算法,并在本步骤采用该算法进行解密。如果图像帧发送端可能选择不同的加密算法,并且在封装信息中携带所采用的加密算法,那么本步骤可以采用与封装信息中携带的加密算法对应的解密算法进行解密。

至此,通过解封装操作获取了图像帧,并且对被加密的图像帧进行解密,如果图像帧发送端没有对图像帧进行视频编码处理,那么此时获取的就是可显示的图像帧;如果进行了视频编码处理,此时获取的就是编码后图像帧,在这种情况下,可以采用与图像帧发送端所用视频编码方法对应的解码方法,对所述编码后图像帧进行解码,得到可显示的图像帧。

进一步地,得到可显示的图像帧后,可以在显示设备上显示所述图像帧。对于远程桌面应用来说,此时得到的图像帧是图像帧发送端的桌面图像帧,对于支持Framebuffer技术的系统平台来说,可以将得到的图像帧写入Framebuffer 中,从而将图像帧发送端的桌面图像在本地呈现出来。重复执行本方法的上述步骤,将接收到的视频流中的每个图像帧连续呈现出来,就可以观看到图像帧发送端提供的视频图像。

由此可见,本申请提供的视频解密方法,由于仅需要对接收到的视频流中的图像帧有选择地进行解密,即,仅对由封装信息携带的加密指示信息指定的图像帧进行解密,因此有效减少了解密操作的开销,提高了图像帧接收端的处理效率。

在上述的实施例中,提供了一种视频解密方法,与之相对应的,本申请还提供一种视频解密装置。请参看图7,其为本申请的一种视频解密装置的实施例的示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。

本实施例的一种视频解密装置,包括:解封装单元701,用于对接收到的视频流中的数据包进行解封装,获取图像帧;加密判断单元702,用于根据数据包封装信息中携带的加密标识信息判断所述图像帧是否被加密;解密单元703,用于当所述加密判断单元的输出为是时,采用相应的解密算法对所述图像帧进行解密。

可选的,所述加密判断单元具体用于,根据用于封装所述图像帧的RTP扩展头中携带的加密标识信息,判断所述图像帧是否被加密。

可选的,所述装置还包括:

解码单元,用于在所述加密判断单元输出为否、或者所述加密判断单元输出为是且所述解密单元处理完毕后,如果得到的图像帧为进行视频编码处理后的编码后图像帧,则采用与图像帧发送端所采用的视频编码方法对应的解码方法,对所述编码后图像帧进行解码,得到图像帧。

可选的,所述装置还包括:

显示单元,用于显示当所述加密判断单元输出为否、或者所述加密判断单元输出为是且所述解密单元处理完毕后,所得到的图像帧。

可选的,所述装置部署于远程桌面应用的图像帧接收端,由所述显示单元显示的图像帧包括:图像帧发送端的桌面图像帧。

与本申请提供的视频加密传输方法、视频解密方法及相应装置相对应,本申请还提供一种视频加密传输系统。请参考图8,其为本申请提供的一种视频加密传输系统的实施例的示意图,本实施例与之前提供的各实施例内容相同的部分不再赘述,下面重点描述不同之处。

本申请提供的视频加密传输系统包括:视频加密传输装置801和视频解密装置802。所述视频加密传输装置和视频解密装置,可以部署于台式电脑,也可以部署于移动终端设备或者智能电视设备,但并不局限于此处列举的上述设备,可以是能够实现本申请所提供的视频加密传输方法或视频解密方法的任何设备。

下面以在远程桌面应用中采用本系统为例,对本系统的工作流程作进一步说明。请参考附图9,其为本实施例提供的远程桌面应用的实现方式的示意图。

位于图像帧发送端的视频加密传输装置从本地Framebuffer中获取桌面图像帧,根据预设的加密条件识别所述图像帧是否需要加密,然后采用H.264编码器进行视频编码,生成视频帧,对于已识别为需要加密的图像帧在编码后进行加密,然后将处理完毕的视频帧进行封装,在封装信息中写入视频帧是否被加密的加密指示信息,并将封装好的数据包发送给图像帧接收端。

位于图像帧接收端一侧的视频解密装置对接收到的视频流中的数据包进行解封装,获取视频帧,并根据封装数据中携带的加密指示信息对被加密的视频帧进行解密,然后对视频帧进行视频解码,得到图像帧,并可以进一步将图像帧输出到Framebuffer中从而在显示设备上显示。

视频加密传输装置和视频解密装置重复执行上述处理过程,将图像帧发送端提供的图像帧以视频流的形式实时传输给图像帧接收端,并在图像帧接收端显示设备上呈现出来。由于所述发送端和接收端有选择地对视频流中的图像帧进行加解密,从而在提供一定安全性保障的同时,减少加解密操作的开销,提高整个系统的处理效率。

此外,本申请还提供一种加密控制方法。请参考图10,其为本申请提供的一种加密控制方法的实施例的流程图,本实施例与之前提供的各实施例内容相同的部分不再赘述,下面重点描述不同之处。本申请提供的加密控制方法包括如下步骤:

步骤1001、判断图像帧是否需要加密,若需要,执行步骤1002。

在具体实现时,可以根据不同的应用场景采用不同的方式判断图像帧是否需要加密。下面列举一些可能的实现方式。

对于组成视频流中的图像帧,可以按照预先设定的策略根据图像帧在视频流中的位置判定其是否需要加密,例如选择对奇数帧加密或者偶数帧加密;也可以采用模式识别技术,当识别出图像帧中存在预先设定的需要保护的内容时,则判定其需要加密。

此外,当图像帧为桌面图像帧时,如果桌面图像帧是包含关键信息、或者关键信息输入过程的关键图像帧,那么可以判定这样的图像帧为需要加密的图像帧,所述关键信息包括以下所列元素中的一种或者组合:账户信息、密码信息。在具体实现时,可以由绘制桌面图像帧的应用程序作出上述判断,例如:应用程序要绘制包含密码输入界面的图像帧,那么所述图像帧以及随后绘制的包含密码输入过程的图像帧就可以认为是需要加密的图像帧。

步骤1002、按照预先设定的方式向所述图像帧中写入加密指示信息。

所述按照预先设定的方式向所述图像帧中写入加密指示信息包括:将所述图像帧在预设位置的像素点值设置为预设值。

例如,在远程桌面应用中,在图像帧发送端运行的应用程序可以向Framebuffer中写入图像帧,所述图像帧可以在图像帧发送端的本地显示设备上显示,如果应用程序判定写入Framebuffer的图像帧需要加密,则可以向Framebuffer中写入加密指示信息。从而底层负责加密的模块在从Framebuffer中读取图像帧后,可以根据图像帧自身携带的加密指示信息,有选择地进行加密。

由此可见,采用本申请提供的加密控制方法,使得图像帧具有自我描述是否加密的特性,成为传达加密控制信息的媒介,可以避免上层应用对底层加密模块的直接访问,简化控制流程。特别是应用于远程桌面系统中,由绘制桌面图像帧的应用程序将加密指示信息写入图像帧中,不仅可以灵活控制视频流中的任意图像帧是否需要加密,而且可以避免应用程序与底层处理模块之间的耦合。

在上述的实施例中,提供了一种加密控制方法,与之相对应的,本申请还提供一种加密控制装置。请参看图11,其为本申请的一种加密控制装置的实施 例的示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。

本实施例的一种加密控制装置,包括:图像帧加密判断单元1101,用于判断图像帧是否需要加密;加密指示写入单元1102,用于当所述图像帧加密判断单元的输出为是时,按照预先设定的方式向所述图像帧中写入加密指示信息。

本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

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