本发明涉及数据安全领域,具体而言,涉及一种视频数据的加密方法及装置、存储介质、电子设备。
背景技术:
相关技术中,随着ai、大数据、云计算等技术的发展,智能硬件行业得到了爆发性的发展,深刻的影响着人们的日常生活。
相关技术中,随着人工智能技术的不断更新迭代,其中,基于摄像头的视频平台除了要保证高效接收与回传高素质的视频数据以外,还需要保证视频数据不被别有用心人员盗取、篡改甚至勒索,因此视频传输过程的数据安全成为了一个亟待解决的问题,相关技术在对视频数据进行加密时,由于视频流是由视频帧组成,所以都是基于视频帧进行加密,需要解析到每一帧,加密的效率较低。
针对相关技术中存在的上述问题,目前尚未发现有效的解决方案。
技术实现要素:
本发明实施例提供了一种视频数据的加密方法及装置、存储介质、电子设备,以解决相关技术基于视频帧加密视频数据时效率低的技术问题。
根据本申请实施例的一个方面,提供了一种视频数据的加密方法,包括:将待传输的源视频数据按照字节拆分为多个视频组;将初始密钥按照所述多个视频组转化为密钥流,其中,所述密钥流包括多组密钥,每组密钥对应一轮加密操作;使用所述密钥流对所述多个视频组分别进行多轮加密,生成目标视频数据。
进一步,将初始密钥按照所述多个视频组转化为密钥流包括:为所述多个视频组中的每个视频组分别分配一个逐次累加的递增计数器,其中,所述递增计数器的字节长度与所述视频组的字节长度相同;基于所述递增计数器将初始密钥转化为密钥流。
进一步,所述递增计数器产出的密钥包括第一字段和第二字段,其中,所述第一字段为加密随机数值的初始值,所述第二字段为对应视频组的分组序号。
进一步,使用所述密钥流对所述多个视频组分别进行多轮加密,生成目标视频数据,包括:针对每个视频组,使用所述密钥流与对应的视频组进行多轮异或操作得到密文组;将多个密文组组合为目标视频数据。
进一步,使用所述密钥流与对应的视频组进行多轮异或操作得到密文组包括:将所述视频组按照m字节长度为单位分组为n个子视频组,其中m*n为所述视频组的比特长度;采用轮函数对所述n个子视频组进行m轮迭代加密,得到n个密文组,其中,在每一轮迭代加密过程中,当前轮的轮密钥与子视频组执行异或操作。
进一步,在使用所述密钥流对所述多个视频组分别进行多轮加密,生成目标视频数据之后,所述方法还包括:向达尔文流媒体服务器dss发送ip信息和连接请求;响应所述dss基于所述ip信息和所述连接请求反馈的连接应答,创建实时视频流传输线程和命令处理线程;采用所述实时视频流传输线程向所述dss传输所述目标视频数据,并采用所述命令处理线程建立本地设备与所述dss之间的传输控制协议tcp连接。
进一步,将待传输的源视频数据按照字节拆分为多个视频组包括:对实时视频流进行编码,得到所述源视频数据;读取所述源视频数据的数据明文;以预定长度的字节为单位,将所述数据明文拆分为多个视频组。
根据本申请实施例的另一个方面,还提供了一种视频数据的加密装置,包括:拆分模块,用于将待传输的源视频数据按照字节拆分为多个视频组;转化模块,用于将初始密钥按照所述多个视频组转化为密钥流,其中,所述密钥流包括多组密钥,每组密钥对应一轮加密操作;加密模块,用于使用所述密钥流对所述多个视频组分别进行多轮加密,生成目标视频数据。
进一步,所述转化模块包括:分配单元,用于为所述多个视频组中的每个视频组分别分配一个逐次累加的递增计数器,其中,所述递增计数器的字节长度与所述视频组的字节长度相同;转化单元,用于基于所述递增计数器将初始密钥转化为密钥流。
进一步,所述递增计数器产出的密钥包括第一字段和第二字段,其中,所述第一字段为加密随机数值的初始值,所述第二字段为对应视频组的分组序号。
进一步,所述加密模块包括:加密单元,用于针对每个视频组,使用所述密钥流与对应的视频组进行多轮异或操作得到密文组;组合单元,用于将多个密文组组合为目标视频数据。
进一步,所述加密单元包括:分组子单元,用于将所述视频组按照m字节长度为单位分组为n个子视频组,其中m*n为所述视频组的比特长度;加密子单元,用于采用轮函数对所述n个子视频组进行m轮迭代加密,得到n个密文组,其中,在每一轮迭代加密过程中,当前轮的轮密钥与子视频组执行异或操作。
进一步,所述装置还包括:发送模块,用于在所述加密模块使用所述密钥流对所述多个视频组分别进行多轮加密,生成目标视频数据之后,向达尔文流媒体服务器dss发送ip信息和连接请求;创建模块,用于响应所述dss基于所述ip信息和所述连接请求反馈的连接应答,创建实时视频流传输线程和命令处理线程;通讯模块,用于采用所述实时视频流传输线程向所述dss传输所述目标视频数据,并采用所述命令处理线程建立本地设备与所述dss之间的传输控制协议tcp连接。
进一步,所述拆分模块包括:编码单元,用于对实时视频流进行编码,得到所述源视频数据;读取单元,用于读取所述源视频数据的数据明文;拆分单元,用于以预定长度的字节为单位,将所述数据明文拆分为多个视频组。
根据本申请实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的步骤。
根据本申请实施例的另一方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;其中:存储器,用于存放计算机程序;处理器,用于通过运行存储器上所存放的程序来执行上述方法中的步骤。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法中的步骤。
通过本发明,将待传输的源视频数据按照字节拆分为多个视频组,然后将初始密钥按照所述多个视频组转化为密钥流,使用所述密钥流对所述多个视频组分别进行多轮加密,生成目标视频数据,通过对源视频数据按照字节拆分为多个视频组,并使用所述密钥流对每个视频组进行多轮加密,实现了一种视频数据的明文加密方案,解决了相关技术基于视频帧加密视频数据时效率低的技术问题,提高了视频数据的加密速度和加密效率,实现了视频数据的实时传输,同时降低了视频数据的泄露风险,提高了视频数据传输的安全性。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种摄像头的硬件结构框图;
图2是根据本发明实施例的一种视频数据的加密方法的流程图;
图3是本发明实施例的一个加密流程图;
图4是本发明实施例的视频上传流程图;
图5是本发明实施例加密算法的加密流程图;
图6是本发明实施例的加密算法的构架图;
图7是根据本发明实施例的一种视频数据的加密装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
本申请实施例一所提供的方法实施例可以在摄像头、手机、平板或者类似的影像装置中执行。以运行在摄像头上为例,图1是本发明实施例的一种摄像头的硬件结构框图。如图1所示,摄像头10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,可选地,上述摄像头还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述摄像头的结构造成限定。例如,摄像头10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储摄像头程序,例如,应用软件的软件程序以及模块,如本发明实施例中的一种视频数据的加密方法对应的摄像头程序,处理器102通过运行存储在存储器104内的摄像头程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至摄像头10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括摄像头10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种视频数据的加密方法,图2是根据本发明实施例的一种视频数据的加密方法的流程图,如图2所示,该流程包括如下步骤:
步骤s202,将待传输的源视频数据按照字节拆分为多个视频组;
本实施例的源视频数据是待传输的视频数据,是未加密或简单加密的视频数据。
步骤s204,将初始密钥按照多个视频组转化为密钥流,其中,密钥流包括多组密钥,每组密钥对应一轮加密操作;
步骤s206,使用所述密钥流对所述多个视频组分别进行多轮加密,生成目标视频数据。
在加密过程中,由于多个视频组是相对独立的,因此可以对多个视频组同时进行多轮加密,在生成目标视频数据之后,还可以基于该目标视频数据进行本地保存,进一步压缩编码,传输等,可以应用在视频会议、视频监控、家居安防、远程管理等应用场景中。
通过上述步骤,将待传输的源视频数据按照字节拆分为多个视频组,然后将初始密钥按照所述多个视频组转化为密钥流,使用所述密钥流对所述多个视频组分别进行多轮加密,生成目标视频数据,通过对源视频数据按照字节拆分为多个视频组,并使用所述密钥流对每个视频组进行多轮加密,实现了一种视频数据的明文加密方案,解决了相关技术基于视频帧加密视频数据时效率低的技术问题,提高了视频数据的加密速度和加密效率,实现了视频数据的实时传输,同时降低了视频数据的泄露风险,提高了视频数据传输的安全性。
在本实施例的一个实施方式中,将待传输的源视频数据按照字节拆分为多个视频组包括:对实时视频流进行编码,得到源视频数据;读取源视频数据的数据明文;以预定长度的字节为单位,将数据明文拆分为多个视频组。
可选的,预定长度为8个字节(128bit)或者16字节等,视频流明文输入后,将其按128bit进行分组,最后一组如果不足128bit,可以对其进行填充,以保证数据对其和加密算法的对称性。在本实施例中,可以采用zeropadding、pkcs7padding、pkcs5padding等方式采用全0或者其他已知数据进行填充,加密前需要对最后一个块填充到预定长度的字节,解密后需要删除掉填充的数据,下面对三种填充方式进行说明:
zeropadding,数据长度不对齐时使用0填充,否则不填充;
pkcs7padding,假设数据长度需要填充n(n>0)个字节才对齐,那么填充n个字节,每个字节都是n;如果数据本身就已经对齐了,则填充一块长度为块大小的数据,每个字节都是块大小;
pkcs5padding,是pkcs7padding的子集,块大小固定为8字节。由于使用pkcs7padding/pkcs5padding填充时,最后一个字节肯定为填充数据的长度,所以在解密后可以准确删除填充的数据,而使用zeropadding填充时,不能区分真实数据与填充数据,所以只适合以\0结尾的字符串加解密。
在本实施例的一个实施方式中,将初始密钥按照多个视频组转化为密钥流包括:为多个视频组中的每个视频组分别分配一个逐次累加的递增计数器,其中,递增计数器的字节长度与视频组的字节长度相同;基于递增计数器将初始密钥转化为密钥流。
可选的,递增计数器产出的密钥包括第一字段和第二字段,其中,第一字段为加密随机数值的初始值,第二字段为对应视频组的分组序号。
可以采用通过基于ctr模式(计数模式)的加密方法将每个分组对应一个递增计数器将初始密钥转化为密钥流。在ctr模式中,每个分组对应一个逐次累加的计数器,在一个示例中,密钥的长度是128bit(16字节*8),前8个字节是叫做nonce的初始值,这个值每次加密都不相同,后8个字节则是分组序号,也就是不断 1得到的值。通过对刷新的计数器进行sm4算法进行加密处理,得到密钥流。
在本实施例的一个实施方式中,使用所述密钥流对所述多个视频组分别进行多轮加密,生成目标视频数据,包括:针对每个视频组,使用密钥流与对应的视频组进行多轮异或操作得到密文组;将多个密文组组合为目标视频数据。
基于上述实施方式,使用密钥流与对应的视频组进行多轮异或操作得到密文组包括:将视频组按照m字节长度为单位分组为n个子视频组,其中m*n为视频组的比特长度;采用轮函数对n个子视频组进行m轮迭代加密,得到n个密文组,其中,在每一轮迭代加密过程中,当前轮的轮密钥与子视频组执行异或操作。密钥流包括m个轮密钥,
图3是本发明实施例的一个加密流程图,在一个示例中,源视频数据拆分为4个个视频组,分别是明文分组1、明文分组2、明文分组3、明文分组4,每个视频组对应一个递增计数器,用于输出密钥流,然后每一轮的轮密钥与子视频组执行异或操作,最后分别输出密文组,分别是密文分组1、密文分组2、密文分组3、密文分组4。
在本实施例的一个实施方式中,在使用所述密钥流对所述多个视频组分别进行多轮加密,生成目标视频数据之后,还包括:向达尔文流媒体服务器(darwinstreamingserver,dss)发送ip信息和连接请求;响应dss基于ip信息和连接请求反馈的连接应答,创建实时视频流传输线程和命令处理线程;采用实时视频流传输线程向dss传输目标视频数据,并采用命令处理线程建立本地设备与dss之间的传输控制协议(transmissioncontrolprotocol,tcp)连接。
图4是本发明实施例的视频上传流程图,包括:
s41,发送连接请求;
s42,判断是否连接成功;
s43,若连接成功,一个线程发送rtp数据包,以传输加密后的目标视频数据;
s44,若连接成功,一个线程与dss服务器建立tcp链接;
s45,判断tcp连接是否成功;
s46,若tcp连接成功,则基于该连接循环执行:等待命令,接受命令,分析处理命令。
视频上传流程图如图4所示,首先要对摄像头初始化,然而向dss服务器发送ip信息和连接请求,得到服务器连接应答后分别开启两个线程,即实时视频流传输线程和命令处理线程。实时视频流处理线程负责处理和发送摄像头采集到的处理过的实时视频数据。命令处理线程负责响应客户端发送命令,视频发送端与服务器建立tcp连接,通过服务器的转发,接受和处理客户端命令并向客户端做出相应命令响应。
下面结合实施例和附图对本发明作更进一步的详细阐述,但本发明的实时实施方式不止于此:
本实施例提供了一种智能摄像头视频数据上传方法使用基于流密码的加密方式对视频进行加密传输,通过将明文划分为编码基本单元,使用sm4生成密钥流实现对视频的加密功能,最后通过dss流媒体服务器对实时视频流进行调度分配,完成视频的上传过程。本实施例可适用于视频会议、家居安防以及远程管理等场所。
图5是本发明实施例加密算法的加密流程图,包括:
s51,明文分组输入;
s52,获取初始密钥;
s53,对初始密钥进行密钥拓展;
s54,采用基本轮函数对明文分组进行加密;
s55,生成密文;
s56,输出密文。
为了保证视频传输过程的实时性,避免丢包现象的产生,算法选择将编码后的视频作为普通二进制数据进行加密。具体流程为:对输入的经过h.264编码过的实时视频流分组为128bit进行处理,通过基于ctr模式的加密方法将每个分组对应一个递增计数器将初始密钥转化为密钥流,然后将密钥流与明文分组进行异或操作得到密文组,最终完成对流密码的加密过程。
图6是本发明实施例的加密算法的构架图,rki为轮密钥,轮密钥由加密密钥生成,轮密钥表示为rki(i=0,1,2.....,31)为字,f代表轮,图6中示例了32轮(f(round1)~f(round32)),对每个分组(视频组)按32位一个字分为四个字x0x1x2x3,经过32轮迭代加密(由非线性变换和线性变换复合的合成置换t)后得到密文y0y1y2y3。同理,解密仅需将整个过程逆序处理即可。
采用本实施例的方案,对于视频传输的实时性要求,基于流密码的视频加密方法不仅可以保证视频传输的快速性,同时对加密过程的安全性也进行了提升,最终达到一种安全高效的音视频加密的效果。系统整体可操作性强,具有良好的实用性,可以用于视频会议、家居安防以及远程管理等场所。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
在本实施例中还提供了一种视频数据的加密装置,用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图7是根据本发明实施例的一种视频数据的加密装置的结构框图,如图7所示,该装置包括:拆分模块70,转化模块72,加密模块74,其中,
拆分模块70,用于将待传输的源视频数据按照字节拆分为多个视频组;
转化模块72,用于将初始密钥按照所述多个视频组转化为密钥流,其中,所述密钥流包括多组密钥,每组密钥对应一轮加密操作;
加密模块74,用于使用所述密钥流对所述多个视频组分别进行多轮加密,生成目标视频数据。
可选的,所述转化模块包括:分配单元,用于为所述多个视频组中的每个视频组分别分配一个逐次累加的递增计数器,其中,所述递增计数器的字节长度与所述视频组的字节长度相同;转化单元,用于基于所述递增计数器将初始密钥转化为密钥流。
可选的,所述递增计数器产出的密钥包括第一字段和第二字段,其中,所述第一字段为加密随机数值的初始值,所述第二字段为对应视频组的分组序号。
可选的,所述加密模块包括:加密单元,用于针对每个视频组,使用所述密钥流与对应的视频组进行多轮异或操作得到密文组;组合单元,用于将多个密文组组合为目标视频数据。
可选的,所述加密单元包括:分组子单元,用于将所述视频组按照m字节长度为单位分组为n个子视频组,其中m*n为所述视频组的比特长度;加密子单元,用于采用轮函数对所述n个子视频组进行m轮迭代加密,得到n个密文组,其中,在每一轮迭代加密过程中,当前轮的轮密钥与子视频组执行异或操作。
可选的,所述装置还包括:发送模块,用于在所述加密模块使用所述密钥流对所述多个视频组分别进行多轮加密,生成目标视频数据之后,向达尔文流媒体服务器dss发送ip信息和连接请求;创建模块,用于响应所述dss基于所述ip信息和所述连接请求反馈的连接应答,创建实时视频流传输线程和命令处理线程;通讯模块,用于采用所述实时视频流传输线程向所述dss传输所述目标视频数据,并采用所述命令处理线程建立本地设备与所述dss之间的传输控制协议tcp连接。
可选的,所述拆分模块包括:编码单元,用于对实时视频流进行编码,得到所述源视频数据;读取单元,用于读取所述源视频数据的数据明文;拆分单元,用于以预定长度的字节为单位,将所述数据明文拆分为多个视频组。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
实施例3
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
s1,将待传输的源视频数据按照字节拆分为多个视频组;
s2,将初始密钥按照所述多个视频组转化为密钥流,其中,所述密钥流包括多组密钥,每组密钥对应一轮加密操作;
s3,使用所述密钥流对所述多个视频组分别进行多轮加密,生成目标视频数据。
可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(read-onlymemory,简称为rom)、随机存取存储器(randomaccessmemory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
s1,将待传输的源视频数据按照字节拆分为多个视频组;
s2,将初始密钥按照所述多个视频组转化为密钥流,其中,所述密钥流包括多组密钥,每组密钥对应一轮加密操作;
s3,使用所述密钥流对所述多个视频组分别进行多轮加密,生成目标视频数据。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
1.一种视频数据的加密方法,其特征在于,包括:
将待传输的源视频数据按照字节拆分为多个视频组;
将初始密钥按照所述多个视频组转化为密钥流,其中,所述密钥流包括多组密钥,每组密钥对应一轮加密操作;
使用所述密钥流对所述多个视频组分别进行多轮加密,生成目标视频数据。
2.根据权利要求1所述的方法,其特征在于,将初始密钥按照所述多个视频组转化为密钥流包括:
为所述多个视频组中的每个视频组分别分配一个逐次累加的递增计数器,其中,所述递增计数器的字节长度与所述视频组的字节长度相同;
基于所述递增计数器将初始密钥转化为密钥流。
3.根据权利要求2所述的方法,其特征在于,所述递增计数器产出的密钥包括第一字段和第二字段,其中,所述第一字段为加密随机数值的初始值,所述第二字段为对应视频组的分组序号。
4.根据权利要求1所述的方法,其特征在于,使用所述密钥流对所述多个视频组分别进行多轮加密,生成目标视频数据,包括:
针对每个视频组,使用所述密钥流与对应的视频组进行多轮异或操作得到密文组;
将多个密文组组合为目标视频数据。
5.根据权利要求4所述的方法,其特征在于,使用所述密钥流与对应的视频组进行多轮异或操作得到密文组包括:
将所述视频组按照m字节长度为单位分组为n个子视频组,其中m*n为所述视频组的比特长度;
采用轮函数对所述n个子视频组进行m轮迭代加密,得到n个密文组,其中,在每一轮迭代加密过程中,当前轮的轮密钥与子视频组执行异或操作。
6.根据权利要求1所述的方法,其特征在于,在使用所述密钥流对所述多个视频组分别进行多轮加密,生成目标视频数据之后,所述方法还包括:
向达尔文流媒体服务器dss发送ip信息和连接请求;
响应所述dss基于所述ip信息和所述连接请求反馈的连接应答,创建实时视频流传输线程和命令处理线程;
采用所述实时视频流传输线程向所述dss传输所述目标视频数据,并采用所述命令处理线程建立本地设备与所述dss之间的传输控制协议tcp连接。
7.根据权利要求1所述的方法,其特征在于,将待传输的源视频数据按照字节拆分为多个视频组包括:
对实时视频流进行编码,得到所述源视频数据;
读取所述源视频数据的数据明文;
以预定长度的字节为单位,将所述数据明文拆分为多个视频组。
8.一种视频数据的加密装置,其特征在于,包括:
拆分模块,用于将待传输的源视频数据按照字节拆分为多个视频组;
转化模块,用于将初始密钥按照所述多个视频组转化为密钥流,其中,所述密钥流包括多组密钥,每组密钥对应一轮加密操作;
加密模块,用于使用所述密钥流对所述多个视频组分别进行多轮加密,生成目标视频数据。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至7中任一项所述的方法步骤。
10.一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;其中:
存储器,用于存放计算机程序;
处理器,用于通过运行存储器上所存放的程序来执行权利要求1至7中任一项所述的方法步骤。
技术总结