技术领域
[0001] 本发明涉及网络安全技术领域,特别是指一种基于DNA编码的视频推流快速加密解密方法。
相关背景技术
[0002] 随着网络带宽、智能终端的飞速发展,用户对多媒体内容的需求越来越丰富。相比文本和语音信息,视频包含更丰富的信息同时也具有更复杂的内容结构。更丰富的信息包含加剧了视频保护的必要性,而更复杂的内容结构提升了视频保护的困难性。云计算为视频的存储、分发提供便捷、廉价的解决方案。许多云计算供应商都提供海量视频相关的解决方案,例如AWS,windowsAzure,Alibaba Cloud。相比传统的视频安全,集中于云中的视频具有体量大、存储集中(相比视频分散在不同个人、单位的情况)的特点,面临着新的安全挑战。首先,大量的视频加密和算力受限的移动设备需要更高效、更实时、轻量级的加密算法。其次,视频加密对带宽的影响变得越来越重要。海量数据将花费昂贵的带宽和存储空间,例如一个提供视频服务的运营商,以视频最低码率为800kbps计算,一个同时在线百万级用户的运营商至少需要提供的带宽为:
[0003] 800kbps*1000000/1024*1024*1024≈745G
[0004] 若视频加密损失5%左右的压缩率将意味着运营商需要提供额外近37G的带宽花销。应用到更高清晰度的视频(超清、4K),这种因为视频加密而带来的带宽损失将更高。因此,在海量视频的前提下,研究加密方案对压缩效率的影响是很有意义的。
[0005] 基于以上分析,对于现有的视频系统,增强型的视频加密算法需要解决效率、压缩效率以及耦合的问题,以便部署至已有的视频系统中,避免安全升级带来的昂贵开销。
具体实施方式
[0038] 下面结合附图与具体实施例对本发明内容作进一步说明。
[0039] 一种基于DNA编码的视频推流快速加密方法,如图1所示,基于视频推流设备、密钥同步单元与加密设备实现;密钥同步单元生成一个4Lbit的密钥key并传输至加密设备,L为2的正整数次方且L≥4;视频推流设备将视频进行压缩后传输至加密设备;
[0040] 具体的,本实施例中L=32;
[0041] 加密设备执行以下步骤:
[0042] 步骤a1,加密设备接收视频推流设备传输的压缩视频,同时根据密钥key生成与压缩视频所占内存大小一致的伪随机序列;
[0043] 步骤a2,依次读入压缩视频中的一个完整NAL单元;
[0044] 步骤a3,根据NAL Type判断当前NAL单元是否为加密内容,若是加密内容则执行步骤a4;若不是加密内容则将当前NAL单元直接写入加密文件,并执行步骤a5;
[0045] 步骤a4,在伪随机序列中,依次选取一个完整NAL单元长度的伪随机数据与当前NAL单元进行异或操作,对异或结果进行防竞争冲突处理后写入加密文件;
[0046] 具体的,对于加密之后的数据,为避免出现0X000000的字段,因此需要做防竞争冲突处理。处理原理为:当加密后的网络抽象层(NetworkAbstraction Layer,NAL)检测出有图3左侧中的四个字节序列时,在最后一个字节前插入一个新字节“0X30”,变成图3右侧的样子。对应的反向操作即为防竞争恢复操作。
[0047] 步骤a5,重复执行步骤a2、a3与a4,直至压缩视频中的每一个NAL单元均已完成处理,完成基于DNA编码的视频推流快速加密。
[0048] 进一步地,如图2所示,所述密钥key包括x(0)、p1、y(0)、p2与p3,其中,p1与p2均为不为0的(L‑1)bit的随机二进制数,x(0)为除了0与p1之外的(L‑1)bit的随机二进制数,y(0)为除了0与p2之外的(L‑1)bit的随机二进制数,p3为4bit的随机二进制数;
[0049] 步骤a1中根据密钥key生成与压缩视频所占内存大小一致的伪随机序列的步骤如下:
[0050] 步骤1,将00、01、10与11四个2bit二进制数分别对应ACTG中的一个字母,其中,A与T所对应的两个2bit二进制数的每一位均不相同,C与G所对应的两个2bit二进制数的每一位均不相同;由此得到r0~r7的八种不同编码规则;
[0051] 具体的,本实施例中得到的八种不同编码规则如表1所示:
[0052] 表1八种DNA编码规则
[0053]
[0054] 步骤2,设置指示DNA编码次数的循环变量i1,令i1=1;
[0055] 步骤3,令z(i1)=(x(i1+n)+y(i1+n))mod2L;其中,mod表示取余,z(i1)为第i1次DNA编码的输入,n为初始化舍弃项数,n为正整数;
[0056]
[0057] g(·)表示向下取整,i=0,1,2,3,......;
[0058] 步骤4,对z(i1)进行DNA编码:将z(i1)转换为Lbit的二进制数b0,在b0的高 位二进制数中,以相邻两位二进制数为一组进行分组得到 个分组,在r0~r7中任选一种编码规则对 个分组进行编码,得到由 位字母组成的编码DnaBase1;
[0059] 在b0的低 位二进制数中,以相邻两位二进制数为一组进行分组得到 个分组,在r0~r7中任选一种编码规则对 个分组进行编码,得到由 位字母组成的编码DnaBase2;
[0060] 具体的,本实施例采用r1作为DnaBase1的编码规则,采用r0作为DnaBase2的编码规则;
[0061] 步骤5,将DnaBase1按照第rh种编码规则解码为 位二进制数b'h(i1),将DnaBase2按照第rl种编码规则解码为 位二进制数b'l(i1),其中,rh为p3的高3位二进制数对应的十进制数,rl为p3的低3位二进制数对应的十进制数;
[0062] 步骤6, <<表示左移,^表示异或,z'(i1)为第i1次输出的Lbit伪随机数据;令i1=i1+1,并继续执行步骤3
[0063] 步骤7,在输出的伪随机数据中,依次选取与压缩视频所占内存大小一致的伪随机数据作为伪随机序列。
[0064] 一种基于DNA编码的视频推流快速解密方法,如图1所示,用于上述加密文件进行解密,基于密钥同步单元与解密设备实现;密钥同步单元将传输至加密设备的密钥key同步至解密设备,解密设备执行以下步骤:
[0065] 步骤b1,解密设备接收加密设备传输的加密文件,同时根据密钥key生成与加密文件所占内存大小一致的伪随机序列;
[0066] 具体的,解密设备根据密钥key生成与加密文件所占内存大小一致的伪随机序列的方法与加密设备根据密钥key生成与压缩视频所占内存大小一致的伪随机序列的方法一致;
[0067] 步骤b2,依次读入加密文件中的一个完整NAL单元;
[0068] 步骤b3,根据NALType判断当前NAL单元是否为加密内容,若是加密内容则执行步骤b4;若不是加密内容则将当前NAL单元直接写入解密文件,并执行步骤b5;
[0069] 步骤b4,对当前NAL单元进行防竞争恢复,并在伪随机序列中,依次选取一个完整NAL单元长度的伪随机数据与防竞争恢复后的NAL单元进行异或操作,将异或结果写入解密文件;
[0070] 步骤b5,重复执行步骤b2、b3与b4,直至加密文件中的每一个NAL单元均已完成处理,完成基于DNA编码的视频推流快速解密。
[0071] 具体的,如图1所示,解密文件可传输至视频播放终端进行播放。
[0072] 以下为本实施例中生成伪随机序列的代码执行过程:
[0073] Step1:任意key作为输入,初始化系统,调用函数init();
[0074] Step2:z(i1)=(x(i1+n)+y(i1+n))mod232;
[0075] Step3:z(i1),p3作为DNA编码的输入,执行DNA_Encoder(z(i1),p3),输出z′(i1).[0076]
[0077] z'(i1)=DNA_Encoder(z(i1),p3)的思路是:
[0078] Step1:将z(i1)二级制化为32bit流b0.
[0079] Step2:按照表1所示规则,b0高16位按照r1编码为DnaBase1,低16位按照r0编码为DnaBase2,最终得到类似”A、C、T、G…”的碱基串.
[0080] Step3:DnaBase1按照第rh个编码规则解码为二级制流b'h(i1),其中,rh=p3的高3位,DnaBase2按照第rl编码规则解码为二级制流b'l(i1),其中,rl=p3的低3位;
[0081] Step4:
[0082]
[0083]
[0084] 函数DNA2bitTrans中的转码矩阵如表2所示。DNA2bitTrans函数的操作流程为:2bit数b在规则r1下进行编码,然后在规则r2下进行解码,最终输出b1。
[0085] 表2DNA转码表
[0086]
[0087] 传统的加密算法如AES,应用在视频加密上会产生较大的延迟,而且这个延迟是累加的,无法与视频编解码过程复用。实时性如下:
[0088] Tall=Tcode+Tenc+Ttrans+Tdec+Tdecode
[0089] Tcode/decode为编/解码时间,Tenc/dec为加/解密时间。Ttrans为网络延迟。
[0090] 混沌加密的安全性取决于算法产生伪随机序列的随机性和周期性。影响混沌算法效率的主要因素在于伪随机序列的产生。对于实时性要求高的场景,并行视频编码和伪随机序列产生,可以节约大量的时间成本,实时性可以表达如下:
[0091] T′all=Max′(Tcode,Tgen)+Txor+Max(Ttrans,Tgen)+Txor+Tdecode[0092] Tgen为生成备用伪随机序列所需时间,Txor为执行异或加密时间。异或(exclusive OR)运算的耗时会远低于块加密算法,而相比编码延迟及网络传输延迟,伪随机序列的生成耗时也有一定优势。
[0093] 并行主要体现在编码过程中,编码与伪随机数发生器算法生成伪随机序列并行;解码过程中,视频传输与伪随机数发生器生成伪随机序列并行,从而达到最小的加密延迟,所述并行中的编码指视频推流设备将视频进行压缩的过程。
[0094] 总之,本发明提出一种基于DNA编码的视频推流快速加密解密方法。本发明加密和编码相互独立,增加了灵活性,降低在已有实时视频系统中部署的代价,且最大限度地降低加密延迟,不损失视频的编码压缩效率。
[0095] 本领域的技术人员将会意识到,所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于所述的实施例。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。