CN116800446A - 一种视频加密、解密方法及装置 - Google Patents
一种视频加密、解密方法及装置 Download PDFInfo
- Publication number
- CN116800446A CN116800446A CN202210272657.8A CN202210272657A CN116800446A CN 116800446 A CN116800446 A CN 116800446A CN 202210272657 A CN202210272657 A CN 202210272657A CN 116800446 A CN116800446 A CN 116800446A
- Authority
- CN
- China
- Prior art keywords
- nalu
- data
- video
- encrypted
- code stream
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 74
- 230000000739 chaotic effect Effects 0.000 claims description 53
- 238000003860 storage Methods 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 abstract description 21
- 238000010586 diagram Methods 0.000 description 14
- 230000006835 compression Effects 0.000 description 9
- 238000007906 compression Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101100533821 Arabidopsis thaliana FSD1 gene Proteins 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 208000003580 polydactyly Diseases 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 101150018269 sodB gene Proteins 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0407—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/001—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using chaotic signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
Abstract
本申请公开了一种视频加密、解密方法及装置,用以解决视频传输过程中安全性不高的问题。本申请提出的方法包括:视频编码端获得待发送的视频数据对应的第一码流,根据加密解密文档中的秘钥信息生成多个NALU分别对应的加密数据;加密解密文档分别保存在视频编码端以及视频解码端;在第一NALU的有效载荷承载的第一切片数据上叠加第一NALU对应的加密数据得到第一NALU的第二切片数据;将第一NALU的第一切片数据更新为第二切片数据,以得到第二码流;视频解密端接收视频编码端发送的第二码流,根据加密解密文档中的秘钥信息生成多个NALU分别对应的解密数据;根据解密数据对多个NALU进行解密,获得第一码流。
Description
技术领域
本申请涉及流媒体信息加密的技术领域,尤其涉及一种视频加密、解密方法及装置。
背景技术
手机、电脑等设备在上传或下载视频时数据被非法获取后,未加密的数据可直接读取个人数据,个人隐私不能得到很好的保护,因此有必要在视频传输中的过程中加密,让数据在被非法被获取后无法直接打开。比较常用的一种加密方通过打乱视频中每一帧的行列顺序,或是通过随机改变图像像素排列顺序进而对视频进行加密,但是此类方法比较容易将图像恢复出来,并最终破解加密的视频。因此,此类方法安全性较低。
发明内容
本申请实施例提供了一种视频加密、解密方法及装置,用以解决视频传输过程中安全性不高的问题。
第一方面,本申请实施例提供了一种视频加密方法,应用于视频编码端,包括:
获得待发送的视频数据对应的第一码流,所述第一码流中包括多个网络抽象层单元NALU;
根据加密解密文档中的秘钥信息生成所述多个NALU分别对应的加密数据;所述加密解密文档分别保存在所述视频编码端以及视频解码端;
在第一NALU的有效载荷承载的第一切片数据上叠加所述第一NALU对应的加密数据得到第一NALU的第二切片数据;所述第一NALU为所述多个NALU中的任一NALU;
将所述第一NALU的有效载荷承载的第一切片数据更新为所述第二切片数据,以得到第二码流;
向所述视频解码端发送所述第二码流。
基于上述方案,根据视频编码端解密端共同保存的加密解密文档生成多个加密数据,通过多个加密数据对视频数据对应的码流包括的多个NALU进行加密,即使其他设备或终端能够获取到加密后的视频数据,但不能获得加密数据进而对视频数据进行解密,解决了视频传输过程中的安全性问题。
一种可能的实现方式中,所述根据加密解密文档中的秘钥信息生成所述多个NALU分别对应的加密数据,包括:确定混沌算法所需的秘钥常数;根据秘钥常数以及所述秘钥信息采用所述混沌算法生成所述多个NALU分别对应的加密数据;
所述方法还包括:在所述第一码流的设定位置增加设定NALU,所述设定NALU的有效载荷包括所述混沌算法所需的秘钥常数。
一种可能的实现方式中,所述第一码流包括N个NALU,所述根据秘钥常数以及所述秘钥信息采用所述混沌算法生成所述多个NALU分别对应的加密数据,包括:
根据所述秘钥信息进行哈希运算生成加解密信息;
根据所述秘钥常数和所述加解密信息生成所述混沌算法所需的初始值;
根据所述初始值采用洛伦兹方程进行N次迭代产生N个迭代结果;
根据所述N个迭代结果和所述加解密信息生成N个设定长度的加密数据。
基于上述方法,通过混沌算法,使生成的加密数据不可预测,同时加密过程通过视频编码端保存的加密解密文档中的加解密信息,进一步增加了视频的破解难度,保证了视频传输的安全性。
一种可能的实现方式中,所述加密解密文档的秘钥信息包括M组秘钥;
根据所述秘钥信息进行哈希运算生成加解密信息,包括:
根据设定值从所述M组秘钥中确定至少一组秘钥;
对所述至少一组秘钥以及M组中设定数量的秘钥的合并数据进行哈希运算得到所述加解密信息;
其中,所述设定NALU的有效载荷还包括所述设定值。
基于上述方案,视频编码端可以将设定值与秘钥常数通过第二码流发送至视频解码端,通过设定值、秘钥常数以及加密解密文档共同确定加密数据,进而对视频数据进行加密,使加密数据不易被其它设备或终端获取,进一步保证了视频传输的安全性。
一种可能的实现方式中,所述将所述第一NALU的有效载荷承载的第一切片数据更新为所述第二切片数据,以得到第二码流,包括:
当检测到所述第二切片数据中的连续S个字符与起始标志符相同时,在所述连续S个字符中的设定位置添加设定标志位;
将所述第一NALU的有效载荷承载的第一切片数据更新为添加了设定标志位的第二切片数据,以得到第二码流。
基于上述方案,当第二切片数据中的连续S个字符与起始标志符相同时,对第二切片数据中的S个字符进行防止歧义处理,在S个字符的设定位置添加设定标志位,以区分于第二切片数据与起始标识符,避免了视频解码端将第二切片数据误认为起始标志,保证了视频解码端的解码错误。
一些实施例中,所述根据设定值基于所述M组秘钥生成至少一组秘钥数据,包括:
根据设定值确定第一秘钥数据与第二秘钥数据,所述第一秘钥与第二秘钥满足如下公式所示的条件:
i=KEY1 mod M;
其中,KEY0表示所述设定值,M为秘钥的组数,KEY0∈[0,M)且KEY0为整数,KEY1表示所述第一秘钥数据,KEY2表示所述第二秘钥数据,Ki表示第i组秘钥,i∈[0,M)的整数,为异或运算,mod为取余运算。
一些实施例中,所述加解密信息包括至少两个加解密数据,所述对所述至少一组秘钥以及M组中设定数量的秘钥的合并数据进行哈希运算得到所述加解密信息,包括:
对所述至少一组秘钥数据以及M组中设定数量的秘钥的合并数据进行哈希运算得到哈希结果;
将所述哈希结果拆分为至少两个加解密数据,所述至少两个加解密数据的位数相同;
根据所述秘钥常数和所述加解密信息生成所述混沌算法所需的初始值,包括:
根据所述秘钥常数和所述加解密信息中的两个加解密数据生成所述初始值,所述初始值满足如下公式所示的条件:
其中,x0,y0为所述混沌算法所需的初始值,HA与HB为所述加解密信息中的两个加解密数据,c0与c1为所述秘钥常数,P为2的正偶数次幂。
一些实施例中,所述洛伦兹方程满足如下公式所示的条件:
其中,xN为初始值x0经过N次迭代获得的迭代结果,yN为初始值y0经过N次迭代获得的迭代结果,zN为初始值z0经过N次迭代获得的迭代结果,x0、y0、z0为混沌算法的初始值。
一些实施例中,根据所述N个迭代结果和所述加解密信息生成N个设定长度的加密数据,包括:
根据所述N个迭代结果,生成N个加密序列,所述加密序列满足如下公式所示的条件:
Zj=floor(xj×1031)mod 2P;
其中,Zj为第j个加密序列,P为2的正偶数次幂,xj为所述N个迭代结果中的任一个,mod表示取余运算,floor表示取整运算;
根据所述N个加密序列生成N个设定长度的伪随机秘钥,所述伪随机秘钥满足如下公式所述的条件:
Sj表示第j个伪随机秘钥,Zj表示第j个加密序列,j∈(0,1,…,N),N为所述第一码流中NALU的数量,H(j mod C)表示第(j mod C)个加解密信息,表示异或运算;
所述加密数据满足如下公式所述的条件:
Ej=Sj mod 2Q;
其中,Ej为第j个加密数据,Sj为第j个伪随机秘钥,Q为2的正偶数次幂,且Q小于等于P,mod表示取余运算。
一些实施例中,在第一NALU的有效载荷承载的第一切片数据上叠加所述第一NALU对应的加密数据得到第一NALU的第二切片数据,所述第二数据满足如下公式的条件:
Cj=Dj+Ej;
其中,Cj为第j个NALU承载的加密后的第二切片数据,Dj为所述第j个NALU承载的第一切片数据,Ej为所述第j个NALU对应的加密数据。
第二方面,本申请实施例提供了一种视频解密方法,应用视频解码端,包括:
接收视频编码端发送的第二码流,所述第二码流中包括多个网络抽象层单元NALU;
根据加密解密文档中的秘钥信息生成所述多个NALU分别对应的解密数据;所述加密解密文档分别保存在所述视频编码端以及所述视频解码端;
在第一NALU的有效载荷承载的第二切片数据上减去所述第一NALU对应的解密数据得到第一NALU的第一切片数据;所述第一NALU为所述多个NALU中的任一NALU;
将所述第一NALU的有效载荷承载的第二切片数据更新为所述第一切片数据,以得到第一码流。
一种可能的实现方式中,所述方法还包括:当检测到所述第一NALU的有效载荷承载的切片数据中包含设定序列时,删除所述设定序列的设定位置的设定标志位,以获得第一NALU的有效载荷承载的第二切片数据;
其中,所述设定序列为所述切片数据中在与起始标志相同的序列的设定位置添加了设定标志位的序列,所述设定标志位为视频编码端在与起始标志相同的序列的设定位置添加的字符串。
一种可能的实现方式中,所述根据加密解密文档中的秘钥信息生成所述多个NALU分别对应的解密数据,包括:在所述第一码流的设定位置的NALU的有效载荷的第二设定位置确定所述混沌算法所需的秘钥常数;根据秘钥常数以及所述秘钥信息采用所述混沌算法生成所述多个NALU分别对应的解密数据。
一种可能的实现方式中,所述第一码流包括N个NALU,所述根据秘钥常数以及所述秘钥信息采用所述混沌算法生成所述多个NALU分别对应的解密数据,包括:根据所述秘钥信息进行哈希运算生成加解密信息;根据所述秘钥常数和所述加解密信息生成所述混沌算法所需的初始值;根据所述初始值采用洛伦兹方程进行N次迭代产生N个迭代结果;根据所述N个迭代结果和所述加解密信息生成N个设定长度的解密数据。
一种可能的实现方式中,所述加密解密文档的秘钥信息包括M组秘钥;根据所述秘钥信息进行哈希运算生成加解密信息,包括:根据设定值基于所述M组秘钥生成至少一组秘钥数据;对所述至少一组秘钥数据以及M组中设定数量的秘钥的合并数据进行哈希运算得到所述加解密信息;其中,所述设定NALU的有效载荷还包括所述设定值。
第三方面,本申请实施例提供了一种视频加密装置,包括:获取单元、处理单元和发送单元;
所述获取单元,用于获得待发送的视频数据对应的第一码流,所述第一码流中包括多个网络抽象层单元NALU;
所述处理单元,用于根据加密解密文档中的秘钥信息生成所述多个NALU分别对应的加密数据;所述加密解密文档分别保存在所述视频编码端以及视频解码端;
所述处理单元,还用于在第一NALU的有效载荷承载的第一切片数据上叠加所述第一NALU对应的加密数据得到第一NALU的第二切片数据;所述第一NALU为所述多个NALU中的任一NALU;
所述处理单元,还用于将所述第一NALU的有效载荷承载的第一切片数据更新为所述第二切片数据,以得到第二码流;
所述发送单元,用于向所述视频解码端发送所述第二码流。
一种可能的实现方式中,所述处理单元,在根据加密解密文档中的秘钥信息生成所述多个NALU分别对应的加密数据时,具体用于:确定混沌算法所需的秘钥常数;根据秘钥常数以及所述秘钥信息采用所述混沌算法生成所述多个NALU分别对应的加密数据;所述处理单元,还用于:在所述第一码流的设定位置增加设定NALU,所述设定NALU的有效载荷包括所述混沌算法所需的秘钥常数。
一种可能的实现方式中,所述第一码流包括的N个NALU,所述处理单元,在根据秘钥常数以及所述秘钥信息采用所述混沌算法生成所述多个NALU分别对应的加密数据时,具体用于:根据所述秘钥信息进行哈希运算生成加解密信息;根据所述秘钥常数和所述加解密信息生成所述混沌算法所需的初始值;根据所述初始值采用洛伦兹方程进行N次迭代产生N个迭代结果;根据所述N个迭代结果和所述加解密信息生成N个设定长度的加密数据。
一种可能的实现方式中,所述加密解密文档的秘钥信息包括M组秘钥;所述处理单元,在根据所述秘钥信息进行哈希运算生成加解密信息时,具体用于:根据设定值基于所述M组秘钥生成至少一组秘钥数据;对所述至少一组秘钥数据以及M组中设定数量的秘钥的合并数据进行哈希运算得到所述加解密信息;其中,所述设定NALU的有效载荷还包括所述设定值。
一种可能的实现方式中,所述处理单元,在将所述第一NALU的有效载荷承载的第一切片数据更新为所述第二切片数据,以得到第二码流时,具体用于:当检测到所述第二切片数据中的连续S个字符与起始标志符相同时,在所述连续S个字符中的设定位置添加设定标志位;将所述第一NALU的有效载荷承载的第一切片数据更新为添加了设定标志位的第二切片数据,以得到第二码流。
第四方面,本申请实施例提供了一种视频解码装置,包括接收单元和处理单元;
所述接收单元,用于接收视频编码端发送的视频数据对应的第二码流,所述第二码流中包括多个网络抽象层单元NALU;
所述处理单元,用于根据加密解密文档中的秘钥信息生成所述多个NALU分别对应的解密数据;所述加密解密文档分别保存在所述视频编码端以及视频解码端;
所述处理单元,还用于在第一NALU的有效载荷承载的第二切片数据上减去所述第一NALU对应的解密数据得到第一NALU的第一切片数据;所述第一NALU为所述多个NALU中的任一NALU;
所述处理单元,还用于将所述第一NALU的有效载荷承载的第二切片数据更新为所述第一切片数据,以得到第一码流。
一种可能的实现方式中,所述处理单元还用于:当检测到所述第一NALU的有效载荷承载的切片数据中包含设定序列时,删除所述设定序列的设定位置的标志位,以获得第一NALU的有效载荷承载的第二切片数据;
其中,所述设定序列为所述切片数据中在与起始标志相同的序列的设定位置添加了设定标志位的序列,所述设定标志位为视频编码端在与起始标志相同的序列的设定位置添加的字符串。
一种可能的实现方式中,所述处理单元,在根据加密解密文档中的秘钥信息生成所述多个NALU分别对应的加密数据时,具体用于:确定混沌算法所需的秘钥常数;根据秘钥常数以及所述秘钥信息采用所述混沌算法生成所述多个NALU分别对应的解密数据;所述处理单元还用于:在所述第一码流的设定位置增加设定NALU,所述设定NALU的有效载荷包括所述混沌算法所需的秘钥常数。
一种可能的实现方式中,所述第一码流包括的N个NALU,所述处理单元,在根据秘钥常数以及所述秘钥信息采用所述混沌算法生成所述多个NALU分别对应的解密数据时,具体用于:根据所述秘钥信息进行哈希运算生成加解密信息;根据所述秘钥常数和所述加解密信息生成所述混沌算法所需的初始值;根据所述初始值采用洛伦兹方程进行N次迭代产生N个迭代结果;根据所述N个迭代结果和加解密信息生成N个设定长度的解密数据。
一种可能的实现方式中,所述加密解密文档的秘钥信息包括M组秘钥;所述处理单元,早根据所述秘钥信息进行哈希运算生成加解密信息时,具体用于:根据设定值基于所述M组秘钥生成至少一组秘钥数据;对所述至少一组秘钥数据以及M组中设定数量的秘钥的合并数据进行哈希运算得到所述加解密信息;其中,所述设定NALU的有效载荷还包括所述设定值。
第五方面,本申请实施例提供了一种视频加密装置,包括存储器和处理器;
所述存储器,用于存储程序指令;
所述处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行第一方面以及第一方面包括的任一种可能的实现方式所述的方法。
第六方面,本申请实施例提供了一种视频解密装置,包括存储器和处理器;
所述存储器,用于存储程序指令;
所述处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行第二方面以及第二方面包括的任一种可能的实现方式所述的方法。
第七方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行第一方面、第二方面以及第一方面与第二方面分别包括的任一种可能的实现方式所述的方法。
另外,第二方面至第七方面中任一种实现方式所带来的技术效果可参见第一方面以及第一方面不同实现方式所带来的技术效果,此处不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的H.264的层次结构示意图;
图2为本申请实施例提供的网络抽象层单元的结构示意图;
图3为本申请实施例提供的NAL头信息的结构示意图;
图4为本申请实施例提供的一种视频的加密解密方案框架的示意图;
图5为本申请实施例提供的一种视频加密方法的流程示意图;
图6为本申请实施例提供的一种加密数据的确定方法的流程图;
图7为本申请实施例提供的一种视频解密方法的流程示意图;
图8为本申请实施例提供的一种视频加密装置的示意图;
图9为本申请实施例提供的一种视频解密装置的示意图;
图10为本申请实施例提供的另一种视频加密装置的示意图;
图11为本申请实施例提供的另一种视频解密装置的示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
随着互联网技术的发展以及视频拍摄技术的发展,网络上的视频数据在网络数据中所占的比例逐年攀升。随着短视频、在线游戏、远程办公等应用的高速发展,人们对互联网带宽以及减小网络延迟的要求只会越来越高,因此,对视频压缩发出了极大的挑战。目前常用的视频压缩方法是H.264和H.265,然而,在视频传输的过程中,除了保证视频的传输速度外,还需要保证视频传输的安全性。本申请提供了一种视频数据的加密、解密方法及装置,在视频传输过程中进行加密,使数据在非法被获取后无法直接打开,保证了视频传输的安全性问题。
本申请提供了一种视频数据的加密、解密方法及装置,该加密解密过程可针对于H.264的视频压缩格式,下面对H.264的压缩格式进行性详细的介绍。
H.264是国际标准化组织(ISO)和国际电信联盟(ITU)共同提出的继MPEG4之后的新一代数字视频压缩格式。H.264是ITU-T以H.26x系列为名称命名的视频编解码技术标准之一。H.264是ITU-T的VCEG(视频编码专家组)和ISO/IEC的MPEG(活动图像编码专家组)的联合视频组(JVT:joint video team)开发的一个数字视频编码标准。H.264编码标准将视频压缩系统分为两部分:网络抽象层(Network Abstract Layer,NAL)和视频编码层(VideoCoding Layer,VCL),从而将网络传输与视频压缩编码分开,这样,编码后的数据可以被移植到不同的网络结构中进行透明传输。H.264的层次结构模型如图1所示。H.264编码标准将视频压缩系统分为两部分:视频编码层和网络抽象层。其中,视频编码层负责视频编解码,包括运动补偿预测、变换编码和熵编码等功能,目的是尽可能独立于网络的情况下进行高效的编解码。VCL最终输出的是编码后的原始数据,即数据比特串(String Of Data Bits,SODB),VCL数据在传输或存储之前,先被映射或封装进NAL单元中。网络抽象层负责以网络所要求的格式对VCL视频数据进行封装打包并提供头信息,以保证数据适合各种信道和存储介质上的传输。具体的,NAL将SOBD打包成原始字节序列有效载荷(Raw Byte SequencePayload,RBSP)然后加上NAL头信息,这样组成了一个网络抽象层单元(Network AbstractLayer Unit,NALU),H.264原始码流(裸流)是由一个接一个NALU组成。VCL和NAL之间定义了一个基于分组方式的接口,打包和相应的信令属于NAL的一部分,从而将网络传输与视频压缩编码分开。编码后的数据可以被移植到不同网络结构中进行透明传输。
视频流由几个网络抽象层单元加上起始码字(Start code)组成。在H.264比特流中,NALU由起始码字分隔。通常情况下,起始码字设置为“0x00000001”。每个NALU包含1个字节的NAL头信息(NAL_Header)和一个RBSP,如图2所示。每个RBSP由切片头信息(sliceheader)和切片数据(slice data)组成。切片头信息中包含着全局信息如切片类型、切片中的宏块类型、切片帧的数量以及对应的帧的设置和参数等信息,而切片数据中则是宏块数据(Macroblock data,MB data),即存储像素数据的地方。宏块是视频信息的主要承载者,包含着每一个像素的亮度和色度信息。切片数据中的宏块解码时取决于切片头存储的信息。slice data主要结构有连续和间隔的多个宏块结构组成,由于编码器的配置,一部分宏块可能采取跳过模式,在码流中就不存在该宏块的信息,完全可以使用其他宏块表示,就不再传输这个宏块,达到节省码流的目的,因此宏块可能是不连续的。此外,NAL头信息由禁止位(Forbiden,F)、参考级别(NAL_ref_idc,NRI或R)以及NAL单元数据类型(NAL_Type,T)组成。F占用NAL头信息的第一位,当禁止位的值为1时,表示语法错误。R占用NAL头信息的第二位和第三位,表示NALU在解码和重组过程中的重要程度,值越大,表示该NALU越重要。最高优先级为“11”,最低为“00”。T占用NAL头信息的第四位至第八位,用于标识RBSP数据结构的类型,如图3所示。
现有技术中,比较常用的加密方法是通过打乱视频中每一帧的行列顺序或是通过随机改变图像像素排列顺序对视频加密,即改变NALU(或RBSP、Slice data、MB data)的传输顺序,但是这些方法安全性不高。本申请提出了一种视频加密、解密方法及装置,通过生成的加密数据对NALU中的Slice data进行加密,使加密的序列不可预测,同时加密解密过程中使用了视频编码端和视频解密端共同拥有的加密解密文档,进一步增加了视频破解的难度,解决了视频传输过程中的安全性问题。
本申请实施例提出的视频的加密解密方案框架如图4所示,包括视频编码端和视频解密端,分别对应视频数据的两个处理过程,即加密过程和解密过程。在视频编码端和视频解密端共同拥有同一个加密解密文档。对于视频编码端来说,通过视频编码端保存的加密解密文档对视频码流中的各个NALU进行数据加密,并将加密后的视频数据对应的码流发送至视频解密端。对于视频解密端来说,接收到加密后的视频码流后,根据解密端保存的加密解密文档对加密后的视频码流中的各个NALU进行数据解密,进而获得解密后的视频数据对应的码流,解决了视频传输过程中安全性不高问题,加强了个人隐私保护。
本申请实施例提供了一种视频加密方法,图5示例性地示出了视频加密方法的流程,该流程可由视频编码端执行,具体流程如下:
501,获取待发送的视频数据对应的第一码流。
一些实施例中,待发送的视频数据对应的第一码流中包括多个NALU。
502,根据加密解密文档中的秘钥信息生成多个NALU分别对应的加密数据。
其中,加密解密文档中的秘钥信息包括多组秘钥,加密解密文档保存在视频编码端和视频解码端。
一些实施例中,加密解密文档中的秘钥信息可以包括多组秘钥,每组秘钥可以通过多位数字表示,对于秘钥信息包括的秘钥的组数以及每组秘钥的位数,本申请对此不作具体限定。例如,加密解密文档中保存有512组秘钥,每组秘钥可以通过512位数字为一组的二进制序列表示。第i组秘钥可以通过Ki(i=0,1,2,…,511)表示。
一些实施例中,视频编码端根据加密解密文档中的秘钥信息生成多个NALU分别对应的加密数据的方法如图6所示,具体流程如下:
S101,根据设定值和秘钥信息确定加解密信息。
一些实施例中,设定值可以包含在加密解密文档中。该设定值的取值范围为[0,n),其中,n为加密解密文档中秘钥的组数。例如,加密解密文档中保存有512组秘钥,则设定值的取值范围为[0,512)。另一些实施例中,设定值还可以由视频编码端设置。视频编码端可以在第一码流中的设定位置增加设定NALU。本申请实施例将该设定NALU表示为NALU 1为例。比如,NALU 1可以位于第一码流包括的最后一个NALU的后面。示例性地,视频编码端可以将该设定值保存在NALU 1中的第一设定位置。第一设定位置比如可以是NALU 1有效载荷的起始位置,当然也可以是其它位置,本申请实施例对此不作具体限定。例如,设定值可以通过16位的二进制序列表示,视频编码端可以将该设定值保存在NALU 1的有效载荷的前16位(0-15位),如将设定值保存在NALU 1中的slice data的前16位。
一些实施例中,视频编码端在确定加解密信息时,可以先根据设定值基于加密解密文档中包括的多组秘钥生成至少一组秘钥数据,并对至少一组秘钥数据以及多组秘钥中设定数量的秘钥的合并数据进行哈希运算,以得到加解密信息。作为一种举例,以根据设定值基于多组秘钥生成两组秘钥数据为例。该两组秘钥数据分别为第一秘钥数据与第二秘钥数据。例如,可以将设定值用KEY0表示,第一秘钥数据用KEY1表示,第二秘钥数据用KEY2表示。加密解密文档包括的秘钥信息中秘钥的组数为M组为例。第一秘钥数据以及第二秘钥数据满足如下公式所示的条件:
i=KEY1 mod M;
其中,KEY0∈[0,M)且KEY0为整数,Ki表示M组秘钥中的第i组秘钥,为异或运算,mod为取余运算。
一些场景中,以加密解密文档包括的秘钥信息中密钥组数为512组为例,第一秘钥数据为第二秘钥数据为/>其中,i=KEY1 mod 512。
一些实施例中,当确定至少一组秘钥数据后,可以对至少一组秘钥数据以及设定数量的秘钥的合并数据进行哈希运算得到加解密信息。具体地,以确定两组秘钥数据为例,将两组秘钥数据分别表示为第一秘钥数据和第二秘钥数据。视频编码端可以根据获得的第一秘钥数据、第二秘钥数据以及加密解密文档中设定组的秘钥确定第一序列,并对第一序列进行哈希运算确定加解密信息。作为一种举例,加密解密文档的秘钥信息包括512组秘钥,每组秘钥可以通过512位二进制字符表示,可以将获得的第一秘钥数据KEY1、第二秘钥数据KEY2以及前16组秘钥K0-K15进行合并获得第一序列,然后通过哈希运算获得哈希摘要。例如,可以使用SHA-512哈希运算,通过SHA-512对第一序列进行哈希运算获得第一序列的哈希摘要。通过SHA-512哈希运算获得的哈希摘要为512位。一些场景中,加解密信息包括至少两个加解密数据,可以将获得的哈希摘要拆分为至少两个加解密数据,每个加解密数据的位数相同。例如,可以将获得的512位的哈希摘要以64位为一组,拆分为8组加解密数据。
一些实施例中,NALU中的NAL header中T用于标识数据结构类型,当T为0或31时没有被具体定义。因此,当视频编码端设置完设定值,并将设定值保存至NALU 1中的第一设定位置后,可以将NALU 1的NAL header中的T设置为0或31,用于标识该NALU 1中保存有设定值。
S102,根据秘钥常数和加解密信息生成混沌算法所需的初始值。
一些实施例中,首先要确定混沌算法所需的秘钥常数,并根据秘钥常数和加解密信息中的两个加解密数据生成混沌算法所需的初始值。混沌算法的初始值满足如下公式所示的条件:
其中,P为2的正偶数次幂,c0表示第一秘钥常数,c1表示第二秘钥常数,x0,y0为混沌算法的初始值,HA、HB为加解密信息中的两个加解密数据。
一些实施例中,以加解密信息中包括8组加解密数据、每组加解密数据的位数为64为例,可以将A、B设置为A=4,B=5。当P=64时,混沌算法的初始值为
一些场景中,c0、c1可以根据需求调整,但是调整c0、c1时,要使上述公式中的x0∈(0.1,0.2),y0∈(0.2,0.3)。
一些实施例中,混沌算法的初始值除了x0,y0外,还包括初始值z0,因此还需要确定混沌算法的初始值z0。混沌算法的初始值z0可以预先保存在视频编码端和视频解码端的加密解密文档中,还可以由视频编码端设置,并保存在增加的NALU 1中的第二位置。同理,混沌算法所需的秘钥常数可以预先保存在加密解密文档中,也可以由视频编码端设置,并与混沌算法的初始值z0一同保存在NALU 1中的第二位置。作为一种举例,第二设定位置可以位于NALU 1中第一设定位置之后,当然也可以是NALU 1中除第一设定位置之外的其他位置,本申请对此不做限定。一些场景中,第一秘钥常数、第二秘钥常数以及混沌算法的初始值z0均为2位精度的浮点类型,在将第一秘钥常数、第二秘钥常数以及初始值z0保存在NALU1中的第二位置之前,可以先将第一秘钥常数、第二秘钥常数以及混沌算法的初始值z0转化成正整数,并保存在NALU 1的第二设定位置。例如,第一秘钥常数用c0表示,第二秘钥常数用c1表示,视频编码端可以将初始值z0设置为z0=0.34,然后将c0、c1以及z0分别乘上100,并转化为16位的二进制数,并将c0、c1、z0按照设定顺序保存在NALU 1中的第二设定位置。具体地,以第一设定位置为NALU 1的前16位、第二设定位置位于第一设定位置之后为例,NALU 1的前16位(第0-15位)保存有设定值,可以将第一秘钥常数c0保存在设定值之后(第16-31位),将第二秘钥常数用c1保存在c0后(第32-47位),将z0保存在c1后(第48-63位)。当然,c0、c1、z0的保存在NALU 1中的设定顺序还可以为其它顺序,本申请对此不作限定。
S103,根据初始值采用洛伦兹方程进行N次迭代产生N个迭代结果。
一些实施例中,可以将混沌算法的初始值以及第三秘钥常数带入洛伦兹方程中,并通过多次迭代获得多个迭代结果。洛伦兹方程满足如下公式所示的条件:
其中,xN为初始值x0经过N次迭代获得的迭代结果,yN为初始值y0经过N次迭代获得的迭代结果,zN为初始值z0经过N次迭代获得的迭代结果,x0、y0、z0为混沌算法的初始值。
一些场景中,将x0,y0,z0带入上述洛伦兹方程后,经过N次迭代后可以获得关于x,y,z的多个迭代结果,将关于x的多个迭代结果作为一个序列,将该序列表示为序列1,则序列1可以表示为(x0,x1,…,xj,…,xN),N为第一码流中NALU的数量。
S104,根据N个迭代结果和加解密信息生成N个设定长度的加密数据。
一些实施例中,可以根据N个迭代结果确定N个加密序列,通过N个加密序列确定N个伪随机秘钥,并通过N个伪随机秘钥获得N个设定长度的加密数据。作为一种举例,加密序列满足如下公式所示的条件:
Zj=floor(xj×1031)mod 2P;
其中,P为2的正偶数次幂,Zj表示第j个加密序列,xj表示第j个迭代结果,floor表示取整运算,mod表示取余运算。
一些场景中,可以将P设置为64,则第j个加密序列可以表示为Zj=floor(xj×1031)mod 264。
一些实施例中,确定N个加密序列后,可以通过N个加密序列确定N个伪随机秘钥,伪随机秘钥满足如下公式所示的条件:
其中,Sj表示第j个NALU对应的伪随机秘钥,Zj表示第j个加密序列,j∈(0,1,…,N),N为NALU的数量,H(j mod C)表示第(j mod C)个加解密数据,C为加解密数据的个数,表示异或运算。
一些场景中,当加解密信息包括8个加解密数据时,则C=8,第j个NALU对应的伪随机秘钥可以表示为
一些实施例中,第j个伪随机秘钥可以用Sj表示,第j个加密数据可以用Ej表示,可以通过第j个伪随机秘钥确定设定长度的第j个加密数据。加密数据满足如下公式所示的条件:
Ej=Sj mod 2Q
其中,Q为2的正偶数次幂,且Q小于或者等于P,mod表示取余运算。
一些实施例中,当伪随机秘钥为64位,加密数据的设定长度为32位时,Q=32,则加密数据可以表示为Ej=Sj mod 232。
503,在第一NALU的有效载荷承载的第一切片数据上叠加第一NALU对应的加密数据得到第一NALU的第二切片数据。
一些实施例中,第一NALU为N个NALU中的任一NALU,第二切片数满足如下公式所示的条件:
Cj=Dj+Ej;
其中,Cj为第j个NALU承载的加密后的第二切片数据,Dj为第j个NALU承载的第一切片数据,Ej为第j个NALU对应的加密数据。
504,将第一NALU的有效载荷承载的第一切片数据更新为第二切片数据,以得到第二码流。
一些实施例中,当NALU中的NAL header的值为7时,表示该NALU中存储的数据是一个序列参数集(Sequence Paramater Set,SPS);而当NAL header的值为8时,表示NALU是图片参数集(Picture Paramater Set,PPS)。SPS中保存了一组编码视频序列(Coded VideoSequence)的全局参数,编码视频序列即原始视频的一帧一帧的像素数据经过编码之后的结构组成的序列。而每一帧的编码后的数据所依赖的参数保存于SPS中。SPS和PPS包含了初始化H.264解码器所需要的信息参数,如果H.264流中缺少PPS或SPS参数信息,解码器将不能够解析视频流数据,视频将无法播放。因此,在对视频数据码流进行加密时,要避开第一码流中NAL header的值为7或8的NALU。
一些实施例中,当确定第二切片数据后,还需要对第二切片数据进行防止歧义处理。
一些实施例中,视频数据对应的码流中每个NALU前含有起始标志(Start Code),起始标志为0x000001或0x00000001。当解码端在码流中检测到起始标志后,可以判断上一个NALU结束。而在对视频数据的对应的第一码流进行加密时,加密后的第二切片数据中无法避免产生0x000001或0x00000001。为了避免解码错误,可以对第二切片数据进行防止歧义处理。具体地,当检测到第二切片数据中的连续S个字符与起始标志符相同时,在连续S个字符中的设定位置添加设定标志位,并将第一NALU的有效载荷承载的第一切片数据更新为添加了设定标志位的第二切片数据,以得到第二码流。作为一种举例,设定标志位可以为0x03,当视频解码端检测到第二切片数据中包含0x000001或0x00000001时,可以在0x0000序列后添加设定标志位0x03,将第二切片数据中的与起始标识符相同的S个字符转化为0x00000301或0x0000030001,进而可以区分起始码以及加密后的第二切片数据,避免了解码错误。
505,向视频解码端发送第二码流。
通过上述方法,本申请通过对第一码流包括的多个NALU的有效载荷承载的切片数据进行加密,使得加密数据不可被他人预测,同时计算加密数据时融合了视频编码端与视频解码端共同保存的加密解密文档,增加了视频数据的破解难度,提高了视频传输的安全性,加强了个人隐私保护。
本申请实施例提供了一种视频解密方法,图7示例性地示出了视频解密方法的流程,该流程可由视频解密端执行,具体流程如下:
701,接收视频编码端发送的视频数据对应的第二码流。
一些实施例中,第二码流为加密后的视频数据对应的码流,第二码流中包括多个网络抽象层单元NALU。
702,根据加密解密文档中的秘钥信息生成多个NALU分别对应的解密数据。
一些实施例中,加密解密文档分别保存在所述视频编码端以及视频解码端,且视频编码端与视频解码端中的加密解密文档是相同的。
一些实施例中,根据加密解密文档中的秘钥信息生成多个NALU分别对应的解密数据的方法流程如下:
S201,获取设定值、秘钥常数以及初始值z0。
一些实施例中,视频解密端接收到视频编码端发送的第二码流后,首先从第二码流的设定位置确定设定NALU。可以将设定NALU表示为NALU1,则NALU 1的有效载荷中保存有设定值、第一秘钥常数、第二秘钥常数以及初始值z0。当确定NALU 1之后,可以从NALU 1的有效载荷的第一设定位置提取出设定值,从第二设定位置提取出秘钥常数以及初始值z0。作为一种举例,有效载荷为slice data,第一设定位置为NALU 1中的前16位,第二设定位置位于第一设定位置之后。因此,可以从NALU 1的slice data的前16位(0-15位)提取出设定值,从16-31位提取出第一秘钥常数,从32-47位提取出第二秘钥常数,从48-63位提取出初始值z0。
另一些实施例中,加密解密文档保存在视频编码端与视频解密端,且视频编码端与视频解码端的加密解密文档相同。一些场景中,设定值、秘钥常数以及初始值z0可以按照设定顺序预先保存在加密解密文档中的设定位置。当视频解码端接收到第二视频后,可以从加密解密文档中的设定位置按照设定顺序获取设定值、秘钥常数以及初始值z0。
S202,根据设定值和秘钥信息确定加解密信息。
其中,秘钥信息保存在加密解密文档中,秘钥信息包括多组秘钥。可以根据从设定NALU中获取的设定值以及秘钥信息确定加解密信息。确定加解密信息的具体方法可参见步骤S101,此处不再赘述。
S203,根据秘钥常数和加解密信息生成混沌算法所需的初始值。
一些实施例中,通过步骤S201获取的秘钥常数以及通过步骤S202确定的加解密信息生成混沌算法的初始值,具体方法可以参见步骤S102,此处不再赘述。
S204,根据初始值采用洛伦兹方程进行N次迭代产生N个迭代结果。
一些实施例中,将生成的混沌算法的初始值以及z0代入洛伦兹方程中,经过多次迭代后获得N个迭代结果,将N个迭代结果作为一个序列,可以将该序列表示为序列1,具体方法参见步骤S103,此处不再赘述。
S205,根据N个迭代结果和加解密数据生成N个设定长度的解密数据。
确定解密数据的方法与确定加密数据的方法一致,具体步骤参见步骤S104,此处不再赘述。
703,在第一NALU的有效载荷承载的第二切片数据上减去第一NALU对应的解密数据得到第一NALU的第一切片数据。
一些实施例中,当视频解码端获取到第二码流后,首先删除第二码流中防止歧义处理的设定标志位。
一些实施例中,对接收到的加密后的视频数据对应的第二码流进行查找,确定第二码流中经过防止歧义处理的NALU,并将用于区分第二切片数据和起始标志的设定标志位删除。例如,设定标志位为0x03,当检测到NALU中存在0x00000301或0x0000000301时,将切片数据中的0x03删除,获得第二切片数据0x000001或0x00000001。
一些实施例中,根据确定的解密数据以及第一NALU中的第二切片数据确定第一NALU中的第一切片数据。第一切片数据满足如下公式所述的条件:
Dj=Cj-Fj;
其中,Cj为第j个NALU对应的第二切片数据,Dj为第j个NALU对应的第一切片数据,Fj为第j个NALU对应的解密数据,j∈(0,1,…,N),N为第一码流中NALU的数量,mod表示取余运算。
704,将第一NALU的有效载荷承载的第二切片数据更新为所述第一切片数据,以得到第一码流。
一些实施例中,第一码流为加密前视频数据对应的码流。在对NALU的切片数据进行解密时,避免对NAL header的值为7或8的NALU进行解密处理,以保证视频数据对应的码流能够正常播放。
基于相同的技术构思,本申请实施例提供了一种视频加密装置800,参见图8所示。该装置800可以执行上述视频加密方法中的各个步骤,为了避免重读,此处不再详述。装置800包括获取单元801、处理单元802和发送单元803;
所述获取单元801,用于获得待发送的视频数据对应的第一码流,所述第一码流中包括多个网络抽象层单元NALU;
所述处理单元802,用于根据加密解密文档中的秘钥信息生成所述多个NALU分别对应的加密数据;所述加密解密文档分别保存在所述视频编码端以及视频解码端;
所述处理单元802,还用于在第一NALU的有效载荷承载的第一切片数据上叠加所述第一NALU对应的加密数据得到第一NALU的第二切片数据;所述第一NALU为所述多个NALU中的任一NALU;
所述处理单元802,还用于将所述第一NALU的有效载荷承载的第一切片数据更新为所述第二切片数据,以得到第二码流;
所述发送单元803,用于向所述视频解码端发送所述第二码流。
一些实施例中,所述处理单元802,在根据加密解密文档中的秘钥信息生成所述多个NALU分别对应的加密数据时,具体用于:
确定混沌算法所需的秘钥常数;
根据秘钥常数以及所述秘钥信息采用所述混沌算法生成所述多个NALU分别对应的加密数据;
所述处理单元802,还用于:
在所述第一码流的设定位置增加设定NALU,所述设定NALU的有效载荷包括所述混沌算法所需的秘钥常数。
一些实施例中,所述第一码流包括的N个NALU,所述处理单元802,在根据秘钥常数以及所述秘钥信息采用所述混沌算法生成所述多个NALU分别对应的加密数据时,具体用于:
根据所述秘钥信息进行哈希运算生成加解密信息;
根据所述秘钥常数和所述加解密信息生成所述混沌算法所需的初始值;
根据所述初始值采用洛伦兹方程进行N次迭代产生N个迭代结果;
根据所述N个迭代结果和所述加解密信息生成N个设定长度的加密数据。
一些实施例中,所述加密解密文档的秘钥信息包括M组秘钥;
所述处理单元802,在根据所述秘钥信息进行哈希运算生成加解密信息时,具体用于:根据设定值从所述M组秘钥中确定至少一组秘钥;对所述至少一组秘钥以及M组中设定数量的秘钥的合并数据进行哈希运算得到所述加解密信息;其中,所述设定NALU的有效载荷还包括所述设定值。
另一些实施例中,所述处理单元802,在将所述第一NALU的有效载荷承载的第一切片数据更新为所述第二切片数据,以得到第二码流时,具体用于:
当检测到所述第二切片数据中的连续S个字符与起始标志符相同时,在所述连续S个字符中的设定位置添加设定标志位;将所述第一NALU的有效载荷承载的第一切片数据更新为添加了设定标志位的第二切片数据,以得到第二码流。
基于相同的技术构思,本申请实施例提供了一种视频解码装置900,参见图9。该装置900可以执行上述视频解方法中的各个步骤,为了避免重读,此处不再详述。装置900包括接收单元901和处理单元902;
所述接收单元,901用于接收视频编码端发送的视频数据对应的第二码流,所述第二码流中包括多个网络抽象层单元NALU;
所述处理单元902,用于根据加密解密文档中的秘钥信息生成所述多个NALU分别对应的解密数据;所述加密解密文档分别保存在所述视频编码端以及视频解码端;
所述处理单元902,还用于在第一NALU的有效载荷承载的第二切片数据上减去所述第一NALU对应的解密数据得到第一NALU的第一切片数据;所述第一NALU为所述多个NALU中的任一NALU;
所述处理单元902,还用于将所述第一NALU的有效载荷承载的第二切片数据更新为所述第一切片数据,以得到第一码流。
一些实施例中,所述处理单元902还用于:当检测到所述第一NALU的有效载荷承载的切片数据中包含设定序列时,删除所述设定序列的设定位置的标志位,以获得第一NALU的有效载荷承载的第二切片数据;其中,所述设定序列为所述切片数据中在与起始标志相同的序列的设定位置添加了设定标志位的序列,所述设定标志位为视频编码端在与起始标志相同的序列的设定位置添加的字符串。
一些实施例中,所述处理单元902,在根据加密解密文档中的秘钥信息生成所述多个NALU分别对应的加密数据时,具体用于:确定混沌算法所需的秘钥常数;根据秘钥常数以及所述秘钥信息采用所述混沌算法生成所述多个NALU分别对应的解密数据。
所述处理单元902还用于:在所述第一码流的设定位置增加设定NALU,所述设定NALU的有效载荷包括所述混沌算法所需的秘钥常数。
另一些实施例中,所述第一码流包括的N个NALU,所述处理单元902,在根据秘钥常数以及所述秘钥信息采用所述混沌算法生成所述多个NALU分别对应的解密数据时,具体用于:
根据所述秘钥信息进行哈希运算生成加解密信息;根据所述秘钥常数和所述加解密信息生成所述混沌算法所需的初始值;根据所述初始值采用洛伦兹方程进行N次迭代产生N个迭代结果;根据所述N个迭代结果和加解密信息生成N个设定长度的解密数据。
一些实施例中,所述加密解密文档的秘钥信息包括M组秘钥;所述处理单元902,在根据所述秘钥信息进行哈希运算生成加解密信息时,具体用于:根据设定值从所述M组秘钥中确定至少一组秘钥;对所述至少一组秘钥以及M组中设定数量的秘钥的合并数据进行哈希运算得到所述加解密信息;其中,所述设定NALU的有效载荷还包括所述设定值。
基于相同的技术构思,本申请实施例提供了一种视频加密装置1000,参见图10所示。该装置1000可以执行上述视频加密方法中的各个步骤。该装置1000包括存储器1001以及处理器1002。
所述存储器1001,用于存储程序指令;
所述处理器1002,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述视频加密方法。
基于相同的技术构思,本申请实施例提供了一种视频解密装置1100,参见图11所示。该装置1100可以执行上述视频解密方法中的各个步骤。该装置1100包括存储器1101和处理器1102。
所述存储器1101,用于存储程序指令;
所述处理器1102,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述视频解密方法。
在本申请实施例中,处理器可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random Access Memory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
本申请实施例还提供一种计算机可读存储介质,包括程序代码,当程序代码在计算机上运行时,程序代码用于使计算机执行上述本申请实施例提供的任一方法的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种视频加密方法,其特征在于,应用于视频编码端,包括:
获得待发送的视频数据对应的第一码流,所述第一码流中包括多个网络抽象层单元NALU;
根据加密解密文档中的秘钥信息生成所述多个NALU分别对应的加密数据;所述加密解密文档分别保存在所述视频编码端以及视频解码端;
在第一NALU的有效载荷承载的第一切片数据上叠加所述第一NALU对应的加密数据得到第一NALU的第二切片数据;所述第一NALU为所述多个NALU中的任一NALU;
将所述第一NALU的有效载荷承载的第一切片数据更新为所述第二切片数据,以得到第二码流;
向所述视频解码端发送所述第二码流。
2.如权利要求1所述的方法,其特征在于,所述根据加密解密文档中的秘钥信息生成所述多个NALU分别对应的加密数据,包括:
确定混沌算法所需的秘钥常数;
根据秘钥常数以及所述秘钥信息采用所述混沌算法生成所述多个NALU分别对应的加密数据;
所述方法还包括:在所述第一码流的设定位置增加设定NALU,所述设定NALU的有效载荷包括所述混沌算法所需的秘钥常数。
3.如权利要求2所述的方法,其特征在于,所述第一码流包括N个NALU,所述根据秘钥常数以及所述秘钥信息采用所述混沌算法生成所述多个NALU分别对应的加密数据,包括:
根据所述秘钥信息进行哈希运算生成加解密信息;
根据所述秘钥常数和所述加解密信息生成所述混沌算法所需的初始值;
根据所述初始值采用洛伦兹方程进行N次迭代产生N个迭代结果;
根据所述N个迭代结果和所述加解密信息生成N个设定长度的加密数据。
4.如权利要求3所述的方法,其特征在于,所述加密解密文档的秘钥信息包括M组秘钥;
根据所述秘钥信息进行哈希运算生成加解密信息,包括:
根据设定值基于所述M组秘钥生成至少一组秘钥数据;
对所述至少一组秘钥数据以及M组中设定数量的秘钥的合并数据进行哈希运算得到所述加解密信息;
其中,所述设定NALU的有效载荷还包括所述设定值。
5.如权利要求1-4任一项所述的方法,其特征在于,所述将所述第一NALU的有效载荷承载的第一切片数据更新为所述第二切片数据,以得到第二码流,包括:
当检测到所述第二切片数据中的连续S个字符与起始标志符相同时,在所述连续S个字符中的设定位置添加设定标志位;
将所述第一NALU的有效载荷承载的第一切片数据更新为添加了设定标志位的第二切片数据,以得到第二码流。
6.一种视频解密方法,其特征在于,应用视频解码端,包括:
接收视频编码端发送的第二码流,所述第二码流中包括多个网络抽象层单元NALU;
根据加密解密文档中的秘钥信息生成所述多个NALU分别对应的解密数据;所述加密解密文档分别保存在所述视频编码端以及所述视频解码端;
在第一NALU的有效载荷承载的第二切片数据上减去所述第一NALU对应的解密数据得到第一NALU的第一切片数据;所述第一NALU为所述多个NALU中的任一NALU;
将所述第一NALU的有效载荷承载的第二切片数据更新为所述第一切片数据,以得到第一码流。
7.如权利要求6所述的方法,其特征在于,所述方法还包括:
当检测到所述第一NALU的有效载荷承载的切片数据中包含设定序列时,删除所述设定序列的设定位置的设定标志位,以获得第一NALU的有效载荷承载的第二切片数据;
其中,所述设定序列为所述切片数据中在与起始标志相同的序列的设定位置添加了设定标志位的序列,所述设定标志位为视频编码端在与起始标志相同的序列的设定位置添加的字符串。
8.一种视频加密装置,其特征在于,包括:获取单元、处理单元和发送单元;
所述获取单元,用于获得待发送的视频数据对应的第一码流,所述第一码流中包括多个网络抽象层单元NALU;
所述处理单元,用于根据加密解密文档中的秘钥信息生成所述多个NALU分别对应的加密数据;所述加密解密文档分别保存在所述视频编码端以及视频解码端;
所述处理单元,还用于在第一NALU的有效载荷承载的第一切片数据上叠加所述第一NALU对应的加密数据得到第一NALU的第二切片数据;所述第一NALU为所述多个NALU中的任一NALU;
所述处理单元,还用于将所述第一NALU的有效载荷承载的第一切片数据更新为所述第二切片数据,以得到第二码流;
所述发送单元,用于向所述视频解码端发送所述第二码流。
9.一种视频解码装置,其特征在于,包括接收单元和处理单元;
所述接收单元,用于接收视频编码端发送的视频数据对应的第二码流,所述第二码流中包括多个网络抽象层单元NALU;
所述处理单元,用于根据加密解密文档中的秘钥信息生成所述多个NALU分别对应的解密数据;所述加密解密文档分别保存在所述视频编码端以及视频解码端;
所述处理单元,还用于在第一NALU的有效载荷承载的第二切片数据上减去所述第一NALU对应的解密数据得到第一NALU的第一切片数据;所述第一NALU为所述多个NALU中的任一NALU;
所述处理单元,还用于将所述第一NALU的有效载荷承载的第二切片数据更新为所述第一切片数据,以得到第一码流。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行权利要求1~7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210272657.8A CN116800446A (zh) | 2022-03-18 | 2022-03-18 | 一种视频加密、解密方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210272657.8A CN116800446A (zh) | 2022-03-18 | 2022-03-18 | 一种视频加密、解密方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116800446A true CN116800446A (zh) | 2023-09-22 |
Family
ID=88040527
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210272657.8A Pending CN116800446A (zh) | 2022-03-18 | 2022-03-18 | 一种视频加密、解密方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116800446A (zh) |
-
2022
- 2022-03-18 CN CN202210272657.8A patent/CN116800446A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7801306B2 (en) | Secure information distribution system utilizing information segment scrambling | |
EP1468566B1 (en) | Methods for encoding and decoding video data to enable random access and splicing | |
US20080291999A1 (en) | Method and apparatus for video frame marking | |
JP4812117B2 (ja) | コンテンツ暗号化装置及びそのプログラム、並びに、コンテンツ復号装置及びそのプログラム | |
CN105704545A (zh) | 一种基于h.264视频流的密钥同步信息传输方法 | |
US20140105392A1 (en) | Method for selectively scrambling bit-streams | |
US20090219987A1 (en) | Method and Device for Generating a Marked Data Flow, Method and Device for Inserting a Watermark Into a Marked Data Flow, and Marked Data Flow | |
KR101145782B1 (ko) | 모바일 컨텐츠 서비스를 제공하기 위한 경량화된 비디오 컨텐츠 암호화 및 복호화 방법 | |
US20150358156A9 (en) | Method and system for scrambling and descrambling a digital image | |
US8818019B2 (en) | Robust watermark | |
CN105491399A (zh) | 图像处理装置及其控制方法 | |
US10045040B2 (en) | Interleaved watermarking | |
CN116800446A (zh) | 一种视频加密、解密方法及装置 | |
KR102348633B1 (ko) | 비디오 암호화 및 복호화 방법 및 장치 | |
US10489559B2 (en) | Method for providing protected multimedia content | |
CN115278243A (zh) | 对抗深度学习人脸攻击的实时视频加密方法及装置 | |
CN115280791A (zh) | 数字媒体完整性的指示 | |
Tew et al. | Joint selective encryption and data embedding technique in HEVC video | |
US10958989B2 (en) | Framework for embedding data in encoded video | |
US20240155146A1 (en) | Transcodable signed video data | |
US20230246834A1 (en) | Picture partitioning in video coding | |
US20230179787A1 (en) | Method and device for signing an encoded video sequence | |
US20230020655A1 (en) | Indication of digital medial integrity | |
CN112672167B (zh) | 视频处理方法、计算机设备和存储介质 | |
CN109561345B (zh) | 基于avs+编码格式的数字电影打包方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |