CN114025192B - 直播数据加密、解密方法、装置、存储介质及计算机设备 - Google Patents

直播数据加密、解密方法、装置、存储介质及计算机设备 Download PDF

Info

Publication number
CN114025192B
CN114025192B CN202111302423.5A CN202111302423A CN114025192B CN 114025192 B CN114025192 B CN 114025192B CN 202111302423 A CN202111302423 A CN 202111302423A CN 114025192 B CN114025192 B CN 114025192B
Authority
CN
China
Prior art keywords
key
encrypted
data stream
live
live broadcast
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.)
Active
Application number
CN202111302423.5A
Other languages
English (en)
Other versions
CN114025192A (zh
Inventor
王靖鑫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Cubesili Information Technology Co Ltd
Original Assignee
Guangzhou Cubesili Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Cubesili Information Technology Co Ltd filed Critical Guangzhou Cubesili Information Technology Co Ltd
Priority to CN202111302423.5A priority Critical patent/CN114025192B/zh
Publication of CN114025192A publication Critical patent/CN114025192A/zh
Application granted granted Critical
Publication of CN114025192B publication Critical patent/CN114025192B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2347Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4405Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video stream decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4408Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video stream encryption, e.g. re-encrypting a decrypted video stream for redistribution in a home network

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本申请提供的直播数据加密、解密方法、装置、存储介质及计算机设备,在传输直播数据流时,生成与编码后的直播数据流中的关键帧对应的第一密钥,使用第一密钥对关键帧进行加密,这样不仅能够减少数据加密的时间,还能够减少设备运行负担;并且,本申请在检测到数据传输启动指令时,获取本次数据传输所使用的密钥参数,利用该密钥参数来对第一密钥进行加密,并根据加密后的第一密钥在初步加密直播数据流中的存储位置,将加密后的第一密钥插入到初步加密直播数据流中,形成目标加密直播数据流,由于密钥参数是与直播接收端预先预定的,外部无法确定加密后的第一密钥在初步加密直播数据流中的存储位置,从而进一步提高直播数据传输的安全性。

Description

直播数据加密、解密方法、装置、存储介质及计算机设备
技术领域
本申请涉及直播数据安全技术领域,尤其涉及一种直播数据加密、解密方法、装置、存储介质及计算机设备。
背景技术
随着互联网的普及,网络数据安全已成为互联网扩展业务和拓展应用的重中之重。例如,随着视频技术运用场景的不断丰富,像直播、视频会议、视频通话等。如何保证直播数据流在网络上的安全传输,也越来越引起人们的重视。
目前,在保证直播数据流的安全传输方面,主要是采取对传输的直播数据流进行加密的方式,为了保证安全,往往需要采用较复杂的加密算法,这样不仅增加了直播发送端和直播接收端设备运行的负担,还加大了传输时延;另外,现有技术在对传输的直播数据流进行加密时,主要采用单一的密钥进行加密,这样也会存在被破解的风险。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一,特别是现有技术中采用较复杂的加密算法,这样不仅增加了直播发送端和直播接收端设备运行的负担,还加大了传输时延,另外,现有技术在对传输的直播数据流进行加密时,主要采用单一的密钥进行加密,这样也会存在被破解的风险的技术缺陷。
本申请提供了一种直播数据加密方法,所述方法包括:
在检测到数据传输启动指令时,获取与直播接收端预先约定的本次数据传输所使用的密钥参数,以及待传输的直播数据流;
对所述直播数据流进行编码,并确定编码后的直播数据流中的至少一个关键帧,生成与所述关键帧对应的第一密钥;
使用所述第一密钥对所述编码后的直播数据流中的所述关键帧进行加密,得到初步加密直播数据流;
在所述关键帧加密后,基于所述密钥参数对所述第一密钥进行加密,并确定加密后的第一密钥在所述初步加密直播数据流中的存储位置;
按照所述加密后的第一密钥在所述初步加密直播数据流中的存储位置,将所述加密后的第一密钥插入所述初步加密直播数据流中,得到目标加密直播数据流,并发送给所述直播接收端。
可选地,所述密钥参数包括第二密钥,以及与所述第二密钥对应的密文数据在直播数据流中的存储位置;
所述基于所述密钥参数对所述第一密钥进行加密,并确定加密后的第一密钥在所述初步加密直播数据流中的存储位置的步骤,包括:
利用所述第二密钥对所述第一密钥进行加密,得到加密后的第一密钥,并将所述加密后的第一密钥作为与所述第二密钥对应的密文数据;
按照与所述第二密钥对应的密文数据在直播数据流中的存储位置,确定所述加密后的第一密钥在所述初步加密直播数据流中的存储位置。
可选地,所述与所述第二密钥对应的密文数据在直播数据流中的存储位置包括与所述第二密钥对应的密文数据在关键帧中的起始存储位置,以及所述密文数据的数据长度;
按照所述加密后的第一密钥在所述初步加密直播数据流中的存储位置,将所述加密后的第一密钥插入所述初步加密直播数据流中,得到目标加密直播数据流的步骤,包括:
根据与所述第二密钥对应的密文数据在关键帧中的起始存储位置,确定所述加密后的第一密钥在所述初步加密直播数据流中对应的关键帧中的插入位置;
根据所述密文数据的数据长度,在所述初步加密直播数据流中对应的关键帧中的插入位置处沿编码方向确定与所述数据长度对应的字节长度,并在所述字节长度对应的范围内存入所述加密后的第一密钥,得到目标加密直播数据流。
可选地,所述按照所述加密后的第一密钥在所述初步加密直播数据流中的存储位置,将所述加密后的第一密钥插入所述初步加密直播数据流中,得到目标加密直播数据流的步骤,还包括:
若根据与所述第二密钥对应的密文数据在关键帧中的起始存储位置,无法确定所述加密后的第一密钥在所述初步加密直播数据流中对应的关键帧中的插入位置;
则将所述初步加密直播数据流中对应的关键帧的帧尾部位置作为所述加密后的第一密钥的插入位置,在所述初步加密直播数据流中对应的关键帧的帧尾部位置处沿编码方向确定与所述密文数据的数据长度对应的字节长度,并在所述字节长度对应的范围内存入所述加密后的第一密钥,得到目标加密直播数据流。
可选地,所述对所述直播数据流进行编码,并确定编码后的直播数据流中的至少一个关键帧的步骤,包括:
采用预设的编码算法对所述直播数据流进行编码;
根据所述预设的编码算法对应的编码结构,确定编码后的直播数据流中的至少一个关键帧。
可选地,所述预设的编码算法包括H264编码算法;
采用所述H264编码算法对所述直播数据流进行编码后确定的关键帧包括I帧。
本申请还提供了一种直播数据解密方法,所述方法包括:
接收目标加密直播数据流;
利用与直播发送端预先约定的本次数据传输所使用的密钥参数,在所述目标加密直播数据流中查找并提取加密后的第一密钥,对提取到的所述加密后的第一密钥进行解密,得到第一密钥;
利用所述第一密钥对提取后的目标加密直播数据流中相应的关键帧进行解密,得到解密后的直播数据流;
对所述解密后的直播数据流进行解码,得到对应的直播数据流。
可选地,所述密钥参数包括第二密钥,以及与所述第二密钥对应的密文数据在直播数据流中的存储位置;
所述利用与直播发送端预先约定的本次数据传输所使用的密钥参数,在所述目标加密直播数据流中查找并提取加密后的第一密钥,对提取到的所述加密后的第一密钥进行解密,得到第一密钥的步骤,包括:
利用与所述第二密钥对应的密文数据在直播数据流中的存储位置,在所述目标加密直播数据流中查找并提取加密后的第一密钥;
利用所述第二密钥对提取到的所述加密后的第一密钥进行解密,得到第一密钥。
可选地,所述与所述第二密钥对应的密文数据在直播数据流中的存储位置包括与所述第二密钥对应的密文数据在关键帧中的起始存储位置,以及所述密文数据的数据长度;
所述利用与所述第二密钥对应的密文数据在直播数据流中的存储位置,在所述目标加密直播数据流中查找并提取加密后的第一密钥的步骤,包括:
根据与所述第二密钥对应的密文数据在关键帧中的起始存储位置,在所述目标加密直播数据流中的关键帧中查找对应的加密后的第一密钥的插入位置;
根据所述密文数据的数据长度,以及查找到的加密后的第一密钥的插入位置,在所述目标加密直播数据流中所述加密后的第一密钥的插入位置处,沿解码方向确定与所述数据长度对应的字节长度,并在所述字节长度对应的范围内提取所述加密后的第一密钥。
可选地,所述利用与所述第二密钥对应的密文数据在直播数据流中的存储位置,在所述目标加密直播数据流中查找并提取加密后的第一密钥的步骤,还包括:
若根据与所述第二密钥对应的密文数据在关键帧中的起始存储位置,在所述目标加密直播数据流中的关键帧中无法查找到对应的加密后的第一密钥的插入位置;
则将所述目标加密直播数据流中的关键帧的帧尾部位置作为对应的加密后的第一密钥的插入位置,在所述关键帧的帧尾部位置处沿解码方向确定与所述密文数据的数据长度对应的字节长度,并在所述字节长度对应的范围内提取所述加密后的第一密钥。
本申请还提供了一种直播数据加密装置,包括:
数据获取模块,用于在检测到数据传输启动指令时,获取与直播接收端预先约定的本次数据传输所使用的密钥参数,以及待传输的直播数据流;
密钥生成模块,用于对所述直播数据流进行编码,并确定编码后的直播数据流中的至少一个关键帧,生成与所述关键帧对应的第一密钥;
第一加密模块,用于使用所述第一密钥对所述编码后的直播数据流中的所述关键帧进行加密,得到初步加密直播数据流;
第二加密模块,用于在所述关键帧加密后,基于所述密钥参数对所述第一密钥进行加密,并确定加密后的第一密钥在所述初步加密直播数据流中的存储位置;
数据发送模块,用于按照所述加密后的第一密钥在所述初步加密直播数据流中的存储位置,将所述加密后的第一密钥插入所述初步加密直播数据流中,得到目标加密直播数据流,并发送给所述直播接收端。
本申请还提供了一种直播数据解密装置,包括:
数据接收模块,用于接收目标加密直播数据流;
第一解密模块,用于利用与直播发送端预先约定的本次数据传输所使用的密钥参数,在所述目标加密直播数据流中查找并提取加密后的第一密钥,对提取到的所述加密后的第一密钥进行解密,得到第一密钥;
第二解密模块,用于利用所述第一密钥对提取后的目标加密直播数据流中相应的关键帧进行解密,得到解密后的直播数据流;
解码模块,用于对所述解密后的直播数据流进行解码,得到对应的直播数据流。
本申请还提供了一种存储介质,所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任一项所述直播数据加密方法的步骤,以及如上述实施例中任一项所述直播数据解密方法的步骤。
本申请还提供了一种计算机设备,所述计算机设备中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任一项所述直播数据加密方法的步骤,以及如上述实施例中任一项所述直播数据解密方法的步骤。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请提供的直播数据加密、解密方法、装置、存储介质及计算机设备,在传输直播数据流时,首先对直播数据流进行编码,并生成与编码后的直播数据流中的关键帧对应的第一密钥,使用该第一密钥对直播数据流中的关键帧进行加密,由于编码过程中会持续输出多个关键帧,而每一个关键帧都会生成与其对应的第一密钥,各个关键帧对应的第一密钥之间可以互不相同,从而在加密关键帧时,可以采用运行速度快、资源消耗低的对称加密算法,这样不仅能够减少数据加密的时间,还能够减少设备运行负担,同时保证安全;并且,为进一步保证数据传输的安全性,本申请在检测到数据传输启动指令时,获取与接收端预先约定的本次数据传输所使用的密钥参数,在使用第一密钥对直播数据流中的关键帧进行加密后,利用该密钥参数来对第一密钥进行加密,并根据加密后的第一密钥在初步加密直播数据流中的存储位置,将加密后的第一密钥插入到初步加密直播数据流中,形成目标加密直播数据流,由于密钥参数是与接收端预先预定的,外部无法确定加密后的第一密钥在初步加密直播数据流中的存储位置,因此,即使外部获取了目标加密直播数据流,也无法对目标加密直播数据流进行解密,从而进一步提高直播数据传输的安全性,降低目标加密直播数据流被破解的风险。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的应用架构示意图;
图2为本申请实施例提供的一种直播数据加密方法的流程示意图;
图3为本申请实施例提供的直播发送端的加密过程示意图;
图4为本申请实施例提供的一种直播数据解密方法的流程示意图;
图5为本申请实施例提供的直播接收端的解密过程示意图;
图6为本申请实施例提供的一种直播数据加密装置的结构示意图;
图7为本申请实施例提供的一种直播数据解密装置的结构示意图;
图8为本申请实施例提供的一种计算机设备的内部结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,在保证网络数据安全传输方面,主要是采取对传输内容进行加密的方式,为了保证安全,往往需要采用较复杂的加密算法,这样不仅增加了直播发送端和直播接收端设备运行的负担,还加大了传输时延;另外,现有技术在对传输内容进行加密时,主要采用单一的密钥进行加密,这样也会存在被破解的风险。
基于此,本申请提出如下技术方案,具体参见下文:
在对本申请的具体实现过程进行说明之前,首先说明本申请的应用环境,具体请参考图1,图1为本申请实施例提供的应用架构示意图;图1中的应用架构可以包括服务器110、直播发送端120和直播接收端130,服务器110可以是为直播发送端120和直播接收端130提供数据传输服务的服务器;直播发送端120可以为主播端对应的终端设备,也可以是直播会议发起端对应的终端设备,还可以是视频发起端对应的终端设备;相应地,直播接收端130可以为观众端对应的终端设备,也可以为直播会议参与端对应的终端设备,还可以是视频接收端对应的终端设备。
当直播发送端120为主播端对应的终端设备、直播接收端130为观众端对应的终端设备时,主播可以通过直播发送端120向服务器110发起创建直播间的请求,并在创建直播间后,将直播过程中产生的直播数据流发送给服务器110,观众可以通过直播接收端130获取服务器110发送的直播数据流,从而观看直播视频。
当直播发送端120为直播会议发起端对应的终端设备、直播接收端130为直播会议参与端对应的终端设备时,会议发起人可以通过直播发送端120向服务器110发起创建会议间的请求,并在创建会议间后,将直播会议过程中产生的直播数据流发送给服务器110,会议参与者可以通过直播接收端130获取服务器110发送的直播数据流,从而收听会议内容。
在一些实施场景中,直播发送端120和直播接收端130可以互换使用。例如,主播可以使用直播发送端120为观众提供直播视频服务,也可以作为直播观众使用直播接收端120查看其他主播提供的直播视频。又例如,观众可以使用直播接收端130观看主播提供的直播视频,也可以作为主播使用直播发送端120为其他观众提供直播视频服务。
本申请实施例中,直播发送端120和直播接收端130可以是智能手机、平板电脑、个人计算机、笔记本电脑、虚拟现实终端设备、增强现实终端设备等。其中,直播发送端120和直播接收端130中可以安装有用于提供互联网直播服务、线上直播会议服务,或即时通信服务的互联网产品,例如,互联网产品可以是计算机或智能手机中使用的与互联网直播服务、线上直播会议服务,或即时通信服务相关的应用程序APP、全球广域网网页、小程序等。
在一种具体的实现方式中,当直播发送端120和直播接收端130中安装提供互联网直播服务、线上直播会议服务,或即时通信服务的互联网产品后,直播发送端120可以在检测到数据传输启动指令时,获取待传输的直播数据流,并对该直播数据流中的关键帧进行加密后,使用与直播接收端130预先预定的本次数据传输所使用的密钥参数来对加密关键帧时所使用的密钥进行加密,从而得到目标加密直播数据流。
接着,直播发送端120可以通服务器110将目标加密直播数据流发送至直播接收端130,当直播接收端130接收到该目标加密直播数据流后,可以通过预先预定的密钥参数来对目标加密直播数据流中加密后的密钥进行解密,并利用解密后的密钥对目标加密直播数据流中相应的关键帧进行解密,从而得到解密后的直播数据流。
可以理解的是,图1中仅示出了服务器110与一个直播发送端120和一个直播接收端130通信连接的示意图,本申请中的服务器110可以与多个直播发送端120和多个直播接收端130通信连接,在此不做赘述。
以下基于上述应用场景,将分别站在直播发送端120和直播接收端130这两个角度对本申请中的数据加密方法和数据解密方法进行介绍。
在一个实施例中,如图2所示,图2为本申请实施例提供的一种直播数据加密方法的流程示意图;本申请提供了一种直播数据加密方法,所述方法可以包括:
S110:在检测到数据传输启动指令时,获取与直播接收端130预先约定的本次数据传输所使用的密钥参数,以及待传输的直播数据流。
本步骤中,当直播发送端120响应于用户的触发指令,向直播接收端130传输直播数据流时,为了保证网络数据的安全传输,本申请中,直播发送端120向直播接收端130传输直播数据流之前,需要获取数据传输启动指令,并根据该数据传输启动指令,来获取与直播接收端130预先约定的本次数据传输所使用的密钥参数,以及获取待传输的直播数据流。
可以理解的是,本申请中的直播数据流指的是一组有序、有起点和终点的字节的数据序列,该数据序列可以在较短的时间内从直播发送端120到达直播接收端130。
本申请中的数据传输启动指令指的是用户在直播发送端120触发的用于启动数据传输的操作,当直播发送端120检测到数据传输启动指令后,即可根据该数据传输启动指令来获取与直播接收端130预先预定的本次数据传输所使用的密钥参数,以及通过摄像头、麦克风等采集的待传输的直播数据流。
其中,本申请中的密钥参数指的是与直播接收端130预先约定的、用于本次数据传输时对加密直播数据流所使用的密钥进行加密,并确定加密后的密钥的存储位置的一个或多个参数组合后形成的参数集。
由于本申请中的密钥参数是在本次数据传输时所使用的,因此,本申请中的密钥参数的有效时间为本次数据传输开始至本次数据传输结束。并且,在本次数据传输开始时,如一场直播开始、或是一次视频直播会议开始时,直播发送端120便会生成本次数据传输时所使用的密钥参数,并与直播接收端130约定该密钥参数的具体内容和使用方式等。
具体地,本申请中的直播发送端120可以为直播端,直播接收端可以为观众端,当观众通过鉴权进入到对应的直播间后,观众端可以向直播端获取需要访问的直播视频流对应的密钥参数,并利用该密钥参数来对接收的直播视频流进行解密操作。
可以理解的是,这里的鉴权指的是验证用户是否拥有访问系统的权利。传统的鉴权是通过密码来验证的,这种方式的前提是,每个获得密码的用户都已经被授权。在建立用户时,就为此用户分配一个密码,用户的密码可以由管理员指定,也可以由用户自行申请。这种方式一旦密码被偷或用户遗失密码,情况就会十分麻烦,需要管理员对用户密码进行重新修改,而修改密码之前还要人工验证用户的合法身份。为了克服这种鉴权方式的缺点,需要一个更加可靠的鉴权方式。目前的主流鉴权方式是利用认证授权来验证数字签名的正确与否。
基于此,本申请可以将直播发送端120和直播接收端130均设置为鉴权的终端,通过鉴权的终端来获取需要访问的直播视频流对应的密钥参数,可以进一步提高该密钥参数的安全性。
S120:对直播数据流进行编码,并确定编码后的直播数据流中的至少一个关键帧,生成与关键帧对应的第一密钥。
本步骤中,通过S110获取到与直播接收端130预先约定的本次数据传输所使用的密钥参数以及待传输的直播数据流后,接着,本申请可以对直播数据流进行编码,并生成与编码后的直播数据流中的关键帧对应的第一密钥。
可以理解的是,直播发送端120与直播接收端130之间进行数据传输时,如进行音视频传输,为了保证数据的快速、安全、准确传输,本申请可以在数据传输前,对直播数据流进行编码,并将编码后的直播数据流进行加密。
例如,对于直播视频流来说,所谓的视频编码方式就是指通过特定的压缩技术,将某个视频格式的文件转换成另一种视频格式文件的方式。直播视频流传输中最为重要的编解码标准有国际电联的H261、H263、H264,运动静止图像专家组的M-JPEG和国际标准化组织运动图像专家组的MPEG系列标准,此外,在互联网上被广泛应用的还有RealVideo、WMV以及QuickTime等。
当本申请对直播视频流进行编码时,可以使用H264编解码标准来对直播视频流进行编解码。H264作为新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称。在H264协议里定义了三种帧,完整编码的帧叫I帧,参考之前的I帧生成的只包含差异部分编码的帧叫P帧,还有一种参考前后的帧编码的帧叫B帧。H264采用的核心算法包括帧内压缩和帧间压缩,帧内压缩是生成I帧的算法,帧间压缩是生成B帧和P帧的算法。由于I帧中的画面被完整保留,因此解码时只需要I帧数据就可以完成。
需要说明的是,上述直播视频流可以是只包括视频的直播数据流,也可以是包括视频和音频的直播数据流,在此不作限定。
当对直播数据流进行编码后,由于直播数据流是一组有序、有起点和终点的字节的数据序列,而一个序列可以表示一段图像编码后的直播数据流,其以关键帧开始,到下一个关键帧结束。因此,编码后的直播数据流中可以包含至少一个关键帧。
可以理解的是,本申请在对直播数据流进行编码,如对直播视频流进行编码后,可以得到与该直播视频流对应的多个图像帧,若对每一个图像帧进行加密,则会导致直播接收端130对接收到加密后的直播数据流进行解密时耗费的时间较多,从而增加设备的运行负担。而本申请可以将编码后的直播数据流中包含完整画面或完整信息的帧作为关键帧,通过对关键帧进行加密后进行数据传输,这样不仅能够保证直播接收端130对接收到的加密后的直播数据流进行解密后,能够获取到完整的直播数据流,还能够减少加解密耗费的时间,提高数据传输效率的同时,减少设备的运行负担。
另外,由于编码算法的不同,对于关键帧的认定也存在一定的区别。例如,使用H264编码标准进行编解码时,则可以选择I帧作为对应的关键帧,而使用其他编码标准进行编解码时,则可以使用携带完整画面或完整信息的帧作为关键帧,在此不做赘述。
进一步地,当确定编码后的直播数据流中的至少一个关键帧后,本申请可以通过密钥生成模块随机生成与编码后的直播数据流中的关键帧对应个数的第一密钥,并通过第一密钥来对关键帧进行加密。
举例来说,当本申请使用H264编码标准进行编码时,直播发送端120可以在数据传输过程中将摄像头以及麦克风处采集的直播数据流进行编码,并在编码出I帧时通过密钥生成模块随机生成一个与该I帧对应的第一密钥,并通过该第一密钥来对该I帧进行加密。
由于编码后的直播数据流中包含有至少一个I帧,因此,对应生成的第一密钥也至少为一个,且不同的I帧之间生成的第一密钥的值不同,对应的长度也可以不同。
S130:使用第一密钥对编码后的直播数据流中的关键帧进行加密,得到初步加密直播数据流。
本步骤中,通过S120对直播数据流进行编码,并生成与编码后的直播数据流中的关键帧对应的第一密钥后,可以使用第一密钥对编码后的直播数据流中的关键帧进行加密,并将加密后的关键帧与其他帧组合后形成初步加密直播数据流。
具体地,使用第一密钥对编码后的直播数据流中的关键帧进行加密时,可以使用简单的加密算法,如对称加密算法,也可以使用复杂的加密算法,如非对称加密算法。本申请中,由于对关键帧进行加密时所使用的第一密钥时随机生成的,每一个关键帧对应的第一密钥均不相同,并且该第一密钥的长度以及存储位置对于外部来说都是不确定的,因此,本申请在使用第一密钥对编码后的直播数据流中的关键帧进行加密时,可以采用运行速度快、资源消耗低的对称加密算法,从而有效降低直播数据流的加密复杂度,减少数据加密的时间,减少设备运行负担,同时保证安全。
在一个实现方式中,直播发送端120可以通过密钥生成模块来随机生成一段与密钥参数相关的字符,并将该字符作为当前编码后的关键帧对应的第一密钥,接着直播发送端120可以使用该第一密钥与对应的关键帧进行异或运算,从而实现对关键帧的加密操作。
上述实施例仅为本申请的一种实现方式,本申请还可以通过其他方式来随机生成与关键帧对应的第一密钥,并使用其他加密方式对关键帧进行加密,在此不做赘述。
S140:在关键帧加密后,基于密钥参数对第一密钥进行加密,并确定加密后的第一密钥在初步加密直播数据流中的存储位置。
本步骤中,通过S130中使用第一密钥对编码后的直播数据流中的关键帧进行加密,并得到初步加密直播数据流后,接着,可以基于密钥参数对第一密钥进行加密,并确定加密后的第一密钥在初步加密直播数据流中的存储位置。
可以理解的是,由于本申请中的密钥参数指的是与直播接收端130预先约定的、用于本次数据传输时对加密直播数据流所使用的密钥进行加密,并确定加密后的密钥的存储位置的一个或多个参数组合后形成的参数集。因此,当本申请使用第一密钥对编码后的直播数据流中对应的关键帧进行加密后,可以利用预先获取的密钥参数来对第一密钥进行加密,并确定加密后的第一密钥在初步加密直播数据流中的存储位置。
当使用密钥参数来对第一密钥进行加密时,可以使用对称加密算法,也可以使用非对称加密算法。由于本申请中的第一密钥加密后的密文长度以及存储位置对于外部来说都是不确定的,因此,本申请可以使用简单的对称加密算法,如DES、AES等,即可实现对第一密钥的加密操作。更简单的,本申请还可以将密钥参数中对第一密钥进行加密的密钥,与第一密钥进行异或运算,来达到对第一密钥进行加密的效果。
在确定加密后的第一密钥在初步加密直播数据流中的存储位置时,可以依据预先获取的密钥参数中确定的密文数据在直播数据流中的存储位置,该存储位置是由直播发送端120中的密钥生成模块依据预先约定的加密第一密钥时所采用的加密算法,以及直播发送端130支持的最小码率、分辨率等来确定的密文数据在直播数据流中的存储位置。因此,通过该存储位置来确定加密后的第一密钥在初步加密直播数据流中的存储位置后,不仅方便直播接收端130查找并提取加密后的第一密钥,同时,也阻止了外部设备获取第一密钥。
S150:按照加密后的第一密钥在初步加密直播数据流中的存储位置,将加密后的第一密钥插入初步加密直播数据流中,得到目标加密直播数据流,并发送给直播接收端。
本步骤,通过S140中基于密钥参数对第一密钥进行加密,并确定加密后的第一密钥在初步加密直播数据流中的存储位置后,可以按照加密后的第一密钥在初步加密直播数据流中的存储位置,将加密后的第一密钥插入到初步加密直播数据流中,从而得到目标加密直播数据流,接着可以将该目标加密直播数据流发送给直播接收端。
进一步地,本申请为了响应直播数据流的实时传输特性,可以将初步加密直播数据流中每个关键帧对应的加密后的第一密钥存储在该关键帧内,使得直播接收端130在接收到目标加密直播数据流后,可以对目标加密直播数据流中的关键帧进行实时解密,从而避免直播接收端130解密时产生阻塞的情况。
更进一步地,为了保证最终得到的目标加密直播数据流中存储的加密后的第一密钥均位于其对应的关键帧内,本申请在生成密钥参数时,可以根据直播发送端120所使用的编码标准来确定密文数据在直播数据流中的具体存储位置,如本申请若使用H264编码标准进行编解码,则可以根据该编码标准来确定关键帧的长度,从而为最终生成的密文数据在直播数据流中的具体存储位置提供了参考依据。
上述实施例中,在传输直播数据流时,首先对直播数据流进行编码,并生成与编码后的直播数据流中的关键帧对应的第一密钥,使用该第一密钥对直播数据流中的关键帧进行加密,而非对直播数据流中的所有帧进行加密,由于编码过程中会持续输出多个关键帧,而每一个关键帧都会生成与其对应的第一密钥,各个关键帧对应的第一密钥之间可以互不相同,从而在加密关键帧时,可以采用运行速度快、资源消耗低的对称加密算法,这样不仅能够减少数据加密的时间,还能够减少设备运行负担,同时保证安全;并且,为进一步保证数据传输的安全性,本申请在检测到数据传输启动指令时,获取与接收端预先约定的本次数据传输所使用的密钥参数,在使用第一密钥对直播数据流中的关键帧进行加密后,利用该密钥参数来对第一密钥进行加密,并根据加密后的第一密钥在初步加密直播数据流中的存储位置,将加密后的第一密钥插入到初步加密直播数据流中,形成目标加密直播数据流,由于密钥参数是与接收端预先预定的,外部无法确定加密后的第一密钥在初步加密直播数据流中的存储位置,因此,即使外部获取了目标加密直播数据流,也无法对目标加密直播数据流进行解密,从而进一步提高数据传输的安全性,降低目标加密直播数据流被破解的风险。
上述实施例对本申请中的直播数据加密方法进行了展开描述,下面将对本申请中如何根据密钥参数来对第一密钥进行加密,以及确定加密后的第一密钥在初步加密直播数据流中的存储位置进行说明。
在一个实施例中,所述密钥参数可以包括第二密钥,以及与所述第二密钥对应的密文数据在直播数据流中的存储位置。
S140中基于所述密钥参数对所述第一密钥进行加密,并确定加密后的第一密钥在所述初步加密直播数据流中的存储位置的步骤,可以包括:
S141:利用所述第二密钥对所述第一密钥进行加密,得到加密后的第一密钥,并将所述加密后的第一密钥作为与所述第二密钥对应的密文数据。
S142:按照与所述第二密钥对应的密文数据在直播数据流中的存储位置,确定所述加密后的第一密钥在所述初步加密直播数据流中的存储位置。
本实施例中,密钥参数可以包括第二密钥,该第二密钥用于对第一密钥进行加密,还可以包括与第二密钥对应的密文数据在直播数据流中的存储位置,利用该存储位置即可确定加密后的第一密钥在初步加密直播数据流中的存储位置,继而根据加密后的第一密钥在初步加密直播数据流中的存储位置,将加密后的第一密钥插入到初步加密直播数据流中,形成目标加密直播数据流。
可以理解的是,这里的密文数据指的是利用第二密钥对第一密钥进行加密后得到的密文数据。
在一个实施例中,所述与所述第二密钥对应的密文数据在直播数据流中的存储位置可以包括与所述第二密钥对应的密文数据在关键帧中的起始存储位置,以及所述密文数据的数据长度。
S150中按照所述加密后的第一密钥在所述初步加密直播数据流中的存储位置,将所述加密后的第一密钥插入所述初步加密直播数据流中,得到目标加密直播数据流的步骤,可以包括:
S151:根据与所述第二密钥对应的密文数据在关键帧中的起始存储位置,确定所述加密后的第一密钥在所述初步加密直播数据流中对应的关键帧中的插入位置。
S152:根据所述密文数据的数据长度,在所述初步加密直播数据流中对应的关键帧中的插入位置处沿编码方向确定与所述数据长度对应的字节长度,并在所述字节长度对应的范围内存入所述加密后的第一密钥,得到目标加密直播数据流。
本实施例中,与第二密钥对应的密文数据在直播数据流中的存储位置可以进一步包括该密文数据在关键帧中的起始存储位置,以及该密文数据的数据长度。
其中,直播发送端120可以根据密钥参数中指定的密文数据在关键帧中的存储位置,来确定加密后的第一密钥在初步加密直播数据流中对应的关键帧中的插入位置,接着,直播发送端120可以根据密钥参数中指定的密文数据的数据长度,在初步加密直播数据流中对应的关键帧中的插入位置处,沿编码方向确定与密文数据的数据长度对应的字节长度,并在该字节长度对应的范围内存入加密后的第一密钥,从而得到目标加密直播数据流。
可以理解的是,本申请使用第二密钥对第一密钥进行加密后得到的加密后的第一密钥的数据长度,即为本申请的密钥参数中指定的密文数据的数据长度。因此,本申请根据加密后的第一密钥在初步加密直播数据流中对应的关键帧中的插入位置,以及密钥参数中指定的密文数据的数据长度来存入加密后的第一密钥后,可以保证最终得到的目标加密直播数据流中的每个关键帧内仅仅增加了加密后的第一密钥对应的字节长度,该长度的字节对于码流的影响很小,几乎可以忽略不计。
示意性地,如图3所示,图3为本申请实施例提供的直播发送端120的加密过程示意图;图3中,直播发送端120中包括视频采集模块和加密模块,直播发送端120与直播接收端130之间预先约定好密钥参数K,该密钥参数K至少包括K0、Kn_Length和Kn_Position,其中,K0为第二密钥,Kn_Length为密文数据的数据长度,Kn_Position为密文数据在关键帧中的起始存储位置。当视频采集模块采集到直播数据流后,可以使用H264编码标准对该直播数据流进行编码,并根据编码后得到的I帧I_Frame随机生成对应的第一密钥Kn,加密模块利用与关键帧对应的第一密钥对关键帧进行加密后得到s_I_Frame,并根据Kn_Position确定加密后的第一密钥在s_I_Frame中的插入位置,在该插入位置处沿编码方向存入Kn_Length长度的加密后的第一密钥,图3中加密后的第一密钥表示为K0+Kn,从而形成目标加密直播数据流,接着将该目标加密直播数据流发送至直播接收端130中。
在一个实施例中,S150中按照所述加密后的第一密钥在所述初步加密直播数据流中的存储位置,将所述加密后的第一密钥插入所述初步加密直播数据流中,得到目标加密直播数据流的步骤,还可以包括:
S153:若根据与所述第二密钥对应的密文数据在关键帧中的起始存储位置,无法确定所述加密后的第一密钥在所述初步加密直播数据流中对应的关键帧中的插入位置。
S154:则将所述初步加密直播数据流中对应的关键帧的帧尾部位置作为所述加密后的第一密钥的插入位置,在所述初步加密直播数据流中对应的关键帧的帧尾部位置处沿编码方向确定与所述密文数据的数据长度对应的字节长度,并在所述字节长度对应的范围内存入所述加密后的第一密钥,得到目标加密直播数据流。
本实施例中,由于本申请优先保证最终得到的目标加密直播数据流中存储的加密后的第一密钥均位于其对应的关键帧内,这样使得直播接收端130在接收到目标加密直播数据流后,可以对目标加密直播数据流中的关键帧进行实时解密,从而避免直播接收端130解密时产生阻塞的情况。
但是在实际操作过程中,由于某些关键帧的长度比预设长度短,而原本依据关键帧的长度确定的密文数据在关键帧中的起始存储位置超过了关键帧的长度,此时,无法在初步加密直播数据流中对应的关键帧中确定加密后的第一密钥的插入位置。而本申请针对此应用场景,采用将初步加密直播数据流中对应的关键帧的帧尾部位置作为加密后的第一密钥的插入位置的方式,将加密后的第一密钥存入至对应的关键帧的帧尾部位置沿编码方向确定的与密文数据的数据长度对应的字节长度范围内,从而得到目标加密直播数据流。该方式不仅保证了直播接收端130对每个关键帧解密时都可以查找并提取对应的加密后的第一密钥,还可以避免直播接收端130解密时产生阻塞的情况。
上述实施例对本申请中如何根据密钥参数来对第一密钥进行加密,以及确定加密后的第一密钥在初步加密直播数据流中的存储位置进行说明,下面将对本申请中直播数据流编码的过程进行描述。
在一个实施例中,S120中对所述直播数据流进行编码,并确定编码后的直播数据流中的至少一个关键帧的步骤,可以包括:
S121:采用预设的编码算法对所述直播数据流进行编码。
S122:根据所述预设的编码算法对应的编码结构,确定编码后的直播数据流中的至少一个关键帧。
本实施例中,在对直播数据流进行编码时,可以采用预设的编码算法对直播数据流进行编码,并根据该预设的编码算法所对应的编码结构,来确定编码后的直播数据流中的至少一个关键帧。
其中,预设编码算法包括但不限于H261、H263、H264等国际电联的编解码标准,运动静止图像专家组的M-JPEG和国际标准化组织运动图像专家组的MPEG系列标准,此外,在互联网上被广泛应用的还有RealVideo、WMV以及QuickTime等。
在一个实施例中,所述预设的编码算法可以包括H264编码算法;采用所述H264编码算法对所述直播数据流进行编码后确定的关键帧可以包括I帧。
本实施例中,若使用H264编码算法对直播数据流进行编码,H264编码算法中图像以序列为单位进行组织,一个序列是一段图像编码后的直播数据流,以I帧开始,到下一个I帧结束,并且I帧为完整画面,其他帧均需要以I帧作为基础进行编码,因此,解码时只有先解码I帧,才能继续解码其他帧。
其中,一个序列的第一个图像叫做IDR图像(立即刷新图像),IDR图像都是I帧图像。H264编码算法中引入IDR图像是为了解码的重同步,当解码器解码到IDR图像时,立即将参考帧队列清空,将已解码的数据全部输出或抛弃,重新查找参数集,开始一个新的序列。这样,如果前一个序列出现重大错误,在这里可以获得重新同步的机会。IDR图像之后的图像永远不会使用IDR之前的图像的数据来解码。
另外,H264编码算法中的一个序列就是一段内容差异不太大的图像编码后生成的一串直播数据流。当运动变化比较少时,一个序列可以很长,所以就可以编一个I帧,然后一直P帧、B帧;当运动变化较多时,一个序列可能就比较短,比如只包含一个I帧和3、4个P帧。
进一步地,当本申请使用H264编码算法对直播数据流进行编码,并使用第一密钥对编码后的直播数据流中的关键帧进行加密,接着通过密钥参数将加密后的第一密钥进行加密,并存入对应的关键帧后,得到目标加密直播视频流,在将该目标加密直播视频流传输至直播接收端130之前,还可以使用RTP协议对目标加密直播数据流进行封包,并将封包后的目标加密直播数据流发送到直播接收端130。
上述多个实施例对本申请中的直播数据加密方法进行展开描述,下面将对本申请中的直播数据解密方法进行说明。
在一个实施例中,如图4所示,图4为本申请实施例提供的一种直播数据解密方法的流程示意图,本申请还提供了一种直播数据解密方法,所述方法可以包括:
S210:接收目标加密直播数据流。
S220:利用与直播发送端预先约定的本次数据传输所使用的密钥参数,在目标加密直播数据流中查找并提取加密后的第一密钥,对提取到的加密后的第一密钥进行解密,得到第一密钥。
S230:利用第一密钥对提取后的目标加密直播数据流中相应的关键帧进行解密,得到解密后的直播数据流。
S240:对解密后的直播数据流进行解码,得到对应的直播数据流。
本实施例中,直播接收端130接收到目标加密直播数据流后,可以利用与直播发送端120预先约定的本次数据传输时所使用的密钥参数,在目标加密直播数据流中查找并提取加密后的第一密钥,接着利用该密钥参数来对提取到的加密后的第一密钥进行解密,得到第一密钥,再接着利用第一密钥对提取加密后的第一密钥的目标加密直播数据流中相应的关键帧进行解密,从而得到解密后的直播数据流,最后根据直播发送端120所使用的编码算法来对解密后的直播数据流进行解码,得到最终的直播数据流。
上述实施例中,由于直播接收端130对目标加密直播数据流进行解密时所使用的密钥参数是与直播发送端120预先约定的参数,直播接收端130在获取该密钥参数时,可以使用SSL保证传输安全的连接,如Https等。当获取到密钥参数后,再通过密钥参数来查找并提取目标加密直播数据流中加密后的第一密钥,以及对加密后的第一密钥进行解密,并利用解密后的第一密钥来对目标加密直播视频流中对应的关键帧进行解密,该过程不仅能够保证数据传输的安全性,还可以减少直播接收端130解密时所使用的时间。
在一个实施例中,所述密钥参数可以包括第二密钥,以及与所述第二密钥对应的密文数据在直播数据流中的存储位置。
S220中利用与直播发送端预先约定的本次数据传输所使用的密钥参数,在所述目标加密直播数据流中查找并提取加密后的第一密钥,对提取到的所述加密后的第一密钥进行解密,得到第一密钥的步骤,可以包括:
S221:利用与所述第二密钥对应的密文数据在直播数据流中的存储位置,在所述目标加密直播数据流中查找并提取加密后的第一密钥。
S222:利用所述第二密钥对提取到的所述加密后的第一密钥进行解密,得到第一密钥。
本实施例中,密钥参数可以包括与第二密钥对应的密文数据在直播数据流中的存储位置,直播接收端130获取到该存储位置后,可以在目标加密直播数据流中查找并提取加密后的第一密钥,而密钥参数还可以包括第二密钥,该第二密钥可以用于对提取到的加密后的第一密钥进行解密,从而得到第一密钥。
在一个实施例中,所述与所述第二密钥对应的密文数据在直播数据流中的存储位置可以包括与所述第二密钥对应的密文数据在关键帧中的起始存储位置,以及所述密文数据的数据长度。
S221中利用与所述第二密钥对应的密文数据在直播数据流中的存储位置,在所述目标加密直播数据流中查找并提取加密后的第一密钥的步骤,可以包括:
S2211:根据与所述第二密钥对应的密文数据在关键帧中的起始存储位置,在所述目标加密直播数据流中的关键帧中查找对应的加密后的第一密钥的插入位置。
S2212:根据所述密文数据的数据长度,以及查找到的加密后的第一密钥的插入位置,在所述目标加密直播数据流中所述加密后的第一密钥的插入位置处,沿解码方向确定与所述数据长度对应的字节长度,并在所述字节长度对应的范围内提取所述加密后的第一密钥。
本实施例中,密钥参数中与第二密钥对应的密文数据在直播数据流中的存储位置进一步可以包括该密文数据在关键帧中的起始存储位置以及密文数据的数长度,直播接收端130获取到该起始存储位置后,可以在目标加密直播数据流中的关键帧中查找对应的加密后的第一密钥的插入位置,接着可以利用密文数据的数据长度,在目标加密直播数据流中加密后的第一密钥的插入位置处,沿解码方向确定与密文数据的数据长度对应的字节长度,并提取该字节长度对应的范围内的字节数据,作为加密后的第一密钥,最后使用第二密钥来对加密后的第一密钥进行解密,得到第一密钥。
在一个实施例中,S221中利用与所述第二密钥对应的密文数据在直播数据流中的存储位置,在所述目标加密直播数据流中查找并提取加密后的第一密钥的步骤,还可以包括:
S2213:若根据与所述第二密钥对应的密文数据在关键帧中的起始存储位置,在所述目标加密直播数据流中的关键帧中无法查找到对应的加密后的第一密钥的插入位置。
S2214:则将所述目标加密直播数据流中的关键帧的帧尾部位置作为对应的加密后的第一密钥的插入位置,在所述关键帧的帧尾部位置处沿解码方向确定与所述密文数据的数据长度对应的字节长度,并在所述字节长度对应的范围内提取所述加密后的第一密钥。
本实施例中,由于本申请优先保证最终得到的目标加密直播数据流中存储的加密后的第一密钥均位于其对应的关键帧内,这样直播接收端130在接收到目标加密直播数据流后,可以对目标加密直播数据流中的关键帧进行实时解密,从而避免直播接收端130解密时产生阻塞的情况。
但是在实际操作过程中,由于某些关键帧的长度比预设长度短,而原本依据关键帧的长度确定的密文数据在关键帧中的起始存储位置超过了关键帧的长度,此时,直播发送端120无法在初步加密直播数据流中对应的关键帧中确定加密后的第一密钥的插入位置。而本申请针对此应用场景,采用将初步加密直播数据流中对应的关键帧的帧尾部位置作为加密后的第一密钥的插入位置的方式,将加密后的第一密钥存入至对应的关键帧的帧尾部位置沿编码方向确定的与密文数据的数据长度对应的字节长度范围内,从而得到目标加密直播数据流。
当直播接收端130接收到目标加密直播数据流,并在目标加密直播数据流中的关键帧中无法查找到对应的加密后的第一密钥的插入位置,则可以按照与直播发送端120事先约定的插入位置的获取方式,将目标加密直播数据流中的关键帧的帧尾部位置作为对应的加密后的第一密钥的插入位置,并在关键帧的帧尾部位置处沿解码方向确定与密钥参数中密文数据的数据长度对应的字节长度,在该字节长度对应的范围内提取加密后的第一密钥,该方式不仅保证了直播接收端130对每个关键帧解密时都可以查找并提取对应的加密后的第一密钥,还可以避免直播接收端130解密时产生阻塞的情况。
示意性地,如图5所示,图5为本申请实施例提供的直播接收端130的解密过程示意图;图5中,直播接收端130中包括解密模块和解码模块,直播接收端130可以接收直播发送端120发送的视频数据,并利用预先获取的密钥信息K来对视频数据进行解密并解码,其中,密钥信息K至少包括K0、Kn_Length和Kn_Position,其中,K0为第二密钥,Kn_Length为密文数据的数据长度,Kn_Position为密文数据在关键帧中的起始存储位置。当解密模块获取到视频数据中加密后的关键帧时,可以使用密钥信息K来查找并提取视频数据中该关键帧对应的加密后的第一密钥Kn,并使用K0来对加密后的第一密钥Kn进行解密,接着利用解密后的第一密钥Kn对视频数据中对应的关键帧s_I_Frame进行解密,从而得到解密后的关键帧I_Frame,最后通过解码模块对该关键帧I_Frame进行解码,进而获取最终的直播数据流。
下面对本申请实施例提供的直播数据加密装置、直播数据解密装置进行描述,下文描述的直播数据加密装置、直播数据解密装置与上文描述的直播数据加密方法、直播数据解密方法可相互对应参照。
在一个实施例中,如图6所示,图6为本申请实施例提供的一种直播数据加密装置的结构示意图;本申请还提供了一种直播数据加密装置,包括数据获取模块210、密钥生成模块220、第一加密模块230、第二加密模块240、数据发送模块250,具体包括如下:
数据获取模块210,用于在检测到数据传输启动指令时,获取与直播接收端预先约定的本次数据传输所使用的密钥参数,以及待传输的直播数据流。
密钥生成模块220,用于对所述直播数据流进行编码,并确定编码后的直播数据流中的至少一个关键帧,生成与所述关键帧对应的第一密钥。
第一加密模块230,用于使用所述第一密钥对所述编码后的直播数据流中的所述关键帧进行加密,得到初步加密直播数据流。
第二加密模块240,用于在所述关键帧加密后,基于所述密钥参数对所述第一密钥进行加密,并确定加密后的第一密钥在所述初步加密直播数据流中的存储位置。
数据发送模块250,用于按照所述加密后的第一密钥在所述初步加密直播数据流中的存储位置,将所述加密后的第一密钥插入所述初步加密直播数据流中,得到目标加密直播数据流,并发送给所述直播接收端。
上述实施例中,在传输直播数据流时,首先对直播数据流进行编码,并生成与编码后的直播数据流中的关键帧对应的第一密钥,使用该第一密钥对直播数据流中的关键帧进行加密,而非对直播数据流中的所有帧进行加密,由于编码过程中会持续输出多个关键帧,而每一个关键帧都会生成与其对应的第一密钥,各个关键帧对应的第一密钥之间可以互不相同,从而在加密关键帧时,可以采用运行速度快、资源消耗低的对称加密算法,这样不仅能够减少数据加密的时间,还能够减少设备运行负担,同时保证安全;并且,为进一步保证数据传输的安全性,本申请在检测到数据传输启动指令时,获取与接收端预先约定的本次数据传输所使用的密钥参数,在使用第一密钥对直播数据流中的关键帧进行加密后,利用该密钥参数来对第一密钥进行加密,并根据加密后的第一密钥在初步加密直播数据流中的存储位置,将加密后的第一密钥插入到初步加密直播数据流中,形成目标加密直播数据流,由于密钥参数是与接收端预先预定的,外部无法确定加密后的第一密钥在初步加密直播数据流中的存储位置,因此,即使外部获取了目标加密直播数据流,也无法对目标加密直播数据流进行解密,从而进一步提高数据传输的安全性,降低目标加密直播数据流被破解的风险。
在一个实施例中,如图7所示,图7为本申请实施例提供的一种直播数据解密装置的结构示意图;本申请还提供了一种直播数据解密装置,包括数据接收模块310、第一解密模块320、第二解密模块330、解码模块340,具体包括如下:
数据接收模块310,用于接收目标加密直播数据流。
第一解密模块320,用于利用与直播发送端预先约定的本次数据传输所使用的密钥参数,在所述目标加密直播数据流中查找并提取加密后的第一密钥,对提取到的所述加密后的第一密钥进行解密,得到第一密钥。
第二解密模块330,用于利用所述第一密钥对提取后的目标加密直播数据流中相应的关键帧进行解密,得到解密后的直播数据流。
解码模块340,用于对所述解密后的直播数据流进行解码,得到对应的直播数据流。
在一个实施例中,本申请还提供了一种存储介质,所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任一项所述直播数据加密方法的步骤,以及如上述实施例中任一项所述直播数据解密方法的步骤。
在一个实施例中,本申请还提供了一种计算机设备,所述计算机设备中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述实施例中任一项所述直播数据加密方法的步骤,以及如上述实施例中任一项所述直播数据解密方法的步骤。
示意性地,如图8所示,图8为本申请实施例提供的一种计算机设备的内部结构示意图,该计算机设备400可以被提供为一服务器。参照图8,计算机设备400包括处理组件402,其进一步包括一个或多个处理器,以及由存储器401所代表的存储器资源,用于存储可由处理组件402的执行的指令,例如应用程序。存储器401中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件402被配置为执行指令,以执行上述任意实施例的直播数据加密方法或直播数据解密方法。
计算机设备300还可以包括一个电源组件403被配置为执行计算机设备400的电源管理,一个有线或无线网络接口404被配置为将计算机设备400连接到网络,和一个输入输出(I/O)接口405。计算机设备400可以操作基于存储在存储器401的操作系统,例如WindowsServer TM、Mac OS XTM、Unix TM、Linux TM、Free BSDTM或类似。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (14)

1.一种直播数据加密方法,其特征在于,所述方法包括:
在检测到数据传输启动指令时,获取与直播接收端预先约定的本次数据传输所使用的密钥参数,以及待传输的直播数据流;所述密钥参数是由直播发送端生成的、包含加密后的第一密钥的存储位置的参数集,且所述密钥参数的有效时间为本次数据传输开始至本次数据传输结束,所述存储位置是由所述直播发送端中的密钥生成模块依据预先约定的加密第一密钥时所采用的加密算法,以及所述直播发送端支持的最小码率、分辨率来确定的密文数据在直播数据流中的存储位置;
对所述直播数据流进行编码,并确定编码后的数据流中的至少一个关键帧,生成与所述关键帧对应的第一密钥;所述关键帧为编码后的数据流中包含完整画面或完整信息的帧;
使用所述第一密钥对所述编码后的直播数据流中的所述关键帧进行加密,得到初步加密直播数据流;
在所述关键帧加密后,基于所述密钥参数对所述第一密钥进行加密,并确定加密后的第一密钥在所述初步加密直播数据流中的存储位置;
按照所述加密后的第一密钥在所述初步加密直播数据流中的存储位置,将所述加密后的第一密钥插入所述初步加密直播数据流的关键帧中,得到目标加密直播数据流,并发送给所述直播接收端。
2.根据权利要求1所述的直播数据加密方法,其特征在于,所述密钥参数包括第二密钥,以及与所述第二密钥对应的密文数据在直播数据流中的存储位置;
所述基于所述密钥参数对所述第一密钥进行加密,并确定加密后的第一密钥在所述初步加密直播数据流中的存储位置的步骤,包括:
利用所述第二密钥对所述第一密钥进行加密,得到加密后的第一密钥,并将所述加密后的第一密钥作为与所述第二密钥对应的密文数据;
按照与所述第二密钥对应的密文数据在直播数据流中的存储位置,确定所述加密后的第一密钥在所述初步加密直播数据流中的存储位置。
3.根据权利要求2所述的直播数据加密方法,其特征在于,所述与所述第二密钥对应的密文数据在直播数据流中的存储位置包括与所述第二密钥对应的密文数据在关键帧中的起始存储位置,以及所述密文数据的数据长度;
按照所述加密后的第一密钥在所述初步加密直播数据流中的存储位置,将所述加密后的第一密钥插入所述初步加密直播数据流的关键帧中,得到目标加密直播数据流的步骤,包括:
根据与所述第二密钥对应的密文数据在关键帧中的起始存储位置,确定所述加密后的第一密钥在所述初步加密直播数据流中对应的关键帧中的插入位置;
根据所述密文数据的数据长度,在所述初步加密直播数据流中对应的关键帧中的插入位置处沿编码方向确定与所述数据长度对应的字节长度,并在所述字节长度对应的范围内存入所述加密后的第一密钥,得到目标加密直播数据流。
4.根据权利要求3所述的直播数据加密方法,其特征在于,所述按照所述加密后的第一密钥在所述初步加密直播数据流中的存储位置,将所述加密后的第一密钥插入所述初步加密直播数据流的关键帧中,得到目标加密直播数据流的步骤,还包括:
若根据与所述第二密钥对应的密文数据在关键帧中的起始存储位置,无法确定所述加密后的第一密钥在所述初步加密直播数据流中对应的关键帧中的插入位置;
则将所述初步加密直播数据流中对应的关键帧的帧尾部位置作为所述加密后的第一密钥的插入位置,在所述初步加密直播数据流中对应的关键帧的帧尾部位置处沿编码方向确定与所述密文数据的数据长度对应的字节长度,并在所述字节长度对应的范围内存入所述加密后的第一密钥,得到目标加密直播数据流。
5.根据权利要求1所述的直播数据加密方法,其特征在于,所述对所述直播数据流进行编码,并确定编码后的直播数据流中的至少一个关键帧的步骤,包括:
采用预设的编码算法对所述直播数据流进行编码;
根据所述预设的编码算法对应的编码结构,确定编码后的直播数据流中的至少一个关键帧。
6.根据权利要求5所述的直播数据加密方法,其特征在于,所述预设的编码算法包括H264编码算法;
采用所述H264编码算法对所述直播数据流进行编码后确定的关键帧包括I帧。
7.一种直播数据解密方法,其特征在于,所述方法包括:
接收目标加密直播数据流;
利用与直播发送端预先约定的本次数据传输所使用的密钥参数,在所述目标加密直播数据流的关键帧中查找并提取加密后的第一密钥,对提取到的所述加密后的第一密钥进行解密,得到第一密钥;所述密钥参数是由直播发送端生成的、包含加密后的第一密钥的存储位置的参数集,且所述密钥参数的有效时间为本次数据传输开始至本次数据传输结束,所述存储位置是由直播发送端中的密钥生成模块依据预先约定的加密第一密钥时所采用的加密算法,以及直播发送端支持的最小码率、分辨率来确定的密文数据在直播数据流中的存储位置;
利用所述第一密钥对提取后的目标加密直播数据流中相应的关键帧进行解密,得到解密后的直播数据流;所述关键帧为编码后的数据流中包含完整画面或完整信息的帧;
对所述解密后的直播数据流进行解码,得到对应的直播数据流。
8.根据权利要求7所述的直播数据解密方法,其特征在于,所述密钥参数包括第二密钥,以及与所述第二密钥对应的密文数据在直播数据流中的存储位置;
所述利用与直播发送端预先约定的本次数据传输所使用的密钥参数,在所述目标加密直播数据流中查找并提取加密后的第一密钥,对提取到的所述加密后的第一密钥进行解密,得到第一密钥的步骤,包括:
利用与所述第二密钥对应的密文数据在直播数据流中的存储位置,在所述目标加密直播数据流中查找并提取加密后的第一密钥;
利用所述第二密钥对提取到的所述加密后的第一密钥进行解密,得到第一密钥。
9.根据权利要求8所述的直播数据解密方法,其特征在于,所述与所述第二密钥对应的密文数据在直播数据流中的存储位置包括与所述第二密钥对应的密文数据在关键帧中的起始存储位置,以及所述密文数据的数据长度;
所述利用与所述第二密钥对应的密文数据在直播数据流中的存储位置,在所述目标加密直播数据流中查找并提取加密后的第一密钥的步骤,包括:
根据与所述第二密钥对应的密文数据在关键帧中的起始存储位置,在所述目标加密直播数据流中的关键帧中查找对应的加密后的第一密钥的插入位置;
根据所述密文数据的数据长度,以及查找到的加密后的第一密钥的插入位置,在所述目标加密直播数据流中所述加密后的第一密钥的插入位置处,沿解码方向确定与所述数据长度对应的字节长度,并在所述字节长度对应的范围内提取所述加密后的第一密钥。
10.根据权利要求9所述的直播数据解密方法,其特征在于,所述利用与所述第二密钥对应的密文数据在直播数据流中的存储位置,在所述目标加密直播数据流中查找并提取加密后的第一密钥的步骤,还包括:
若根据与所述第二密钥对应的密文数据在关键帧中的起始存储位置,在所述目标加密直播数据流中的关键帧中无法查找到对应的加密后的第一密钥的插入位置;
则将所述目标加密直播数据流中的关键帧的帧尾部位置作为对应的加密后的第一密钥的插入位置,在所述关键帧的帧尾部位置处沿解码方向确定与所述密文数据的数据长度对应的字节长度,并在所述字节长度对应的范围内提取所述加密后的第一密钥。
11.一种直播数据加密装置,其特征在于,包括:
数据获取模块,用于在检测到数据传输启动指令时,获取与直播接收端预先约定的本次数据传输所使用的密钥参数,以及待传输的直播数据流;所述密钥参数是由直播发送端生成的、包含加密后的第一密钥的存储位置的参数集,且所述密钥参数的有效时间为本次数据传输开始至本次数据传输结束,所述存储位置是由所述直播发送端中的密钥生成模块依据预先约定的加密第一密钥时所采用的加密算法,以及所述直播发送端支持的最小码率、分辨率来确定的密文数据在直播数据流中的存储位置;
密钥生成模块,用于对所述直播数据流进行编码,并确定编码后的直播数据流中的至少一个关键帧,生成与所述关键帧对应的第一密钥;所述关键帧为编码后的数据流中包含完整画面或完整信息的帧;
第一加密模块,用于使用所述第一密钥对所述编码后的直播数据流中的所述关键帧进行加密,得到初步加密直播数据流;
第二加密模块,用于在所述关键帧加密后,基于所述密钥参数对所述第一密钥进行加密,并确定加密后的第一密钥在所述初步加密直播数据流中的存储位置;
数据发送模块,用于按照所述加密后的第一密钥在所述初步加密直播数据流中的存储位置,将所述加密后的第一密钥插入所述初步加密直播数据流的关键帧中,得到目标加密直播数据流,并发送给所述直播接收端。
12.一种直播数据解密装置,其特征在于,包括:
数据接收模块,用于接收目标加密直播数据流;
第一解密模块,用于利用与直播发送端预先约定的本次数据传输所使用的密钥参数,在所述目标加密直播数据流的关键帧中查找并提取加密后的第一密钥,对提取到的所述加密后的第一密钥进行解密,得到第一密钥;所述密钥参数是由直播发送端生成的、包含加密后的第一密钥的存储位置的参数集,且所述密钥参数的有效时间为本次数据传输开始至本次数据传输结束,所述存储位置是由直播发送端中的密钥生成模块依据预先约定的加密第一密钥时所采用的加密算法,以及直播发送端支持的最小码率、分辨率来确定的密文数据在直播数据流中的存储位置;
第二解密模块,用于利用所述第一密钥对提取后的目标加密直播数据流中相应的关键帧进行解密,得到解密后的直播数据流;所述关键帧为编码后的数据流中包含完整画面或完整信息的帧;
解码模块,用于对所述解密后的直播数据流进行解码,得到对应的直播数据流。
13.一种存储介质,其特征在于:所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至6中任一项所述直播数据加密方法的步骤,以及如权利要求7至10中任一项所述直播数据解密方法的步骤。
14.一种计算机设备,其特征在于:所述计算机设备中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至6中任一项所述直播数据加密方法的步骤,以及如权利要求7至10中任一项所述直播数据解密方法的步骤。
CN202111302423.5A 2021-11-04 2021-11-04 直播数据加密、解密方法、装置、存储介质及计算机设备 Active CN114025192B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111302423.5A CN114025192B (zh) 2021-11-04 2021-11-04 直播数据加密、解密方法、装置、存储介质及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111302423.5A CN114025192B (zh) 2021-11-04 2021-11-04 直播数据加密、解密方法、装置、存储介质及计算机设备

Publications (2)

Publication Number Publication Date
CN114025192A CN114025192A (zh) 2022-02-08
CN114025192B true CN114025192B (zh) 2024-05-28

Family

ID=80061377

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111302423.5A Active CN114025192B (zh) 2021-11-04 2021-11-04 直播数据加密、解密方法、装置、存储介质及计算机设备

Country Status (1)

Country Link
CN (1) CN114025192B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114721913B (zh) * 2022-05-12 2022-08-23 华控清交信息科技(北京)有限公司 一种生成数据流图的方法、装置和用于生成数据流图的装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101998384A (zh) * 2009-08-18 2011-03-30 中国移动通信集团公司 一种加密传输媒体流的方法、加密服务器和移动终端
CN105308932A (zh) * 2013-06-17 2016-02-03 高通股份有限公司 通过一个或多个服务的中介内容分发
CN111741268A (zh) * 2020-06-30 2020-10-02 中国建设银行股份有限公司 视频的传输方法、装置、服务器、设备和介质
CN112235289A (zh) * 2020-10-13 2021-01-15 桂林微网互联信息技术有限公司 数据加解密方法、装置、计算设备及存储介质
CN112822518A (zh) * 2021-04-19 2021-05-18 浙江华创视讯科技有限公司 视频播放方法、装置、系统、电子设备和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101998384A (zh) * 2009-08-18 2011-03-30 中国移动通信集团公司 一种加密传输媒体流的方法、加密服务器和移动终端
CN105308932A (zh) * 2013-06-17 2016-02-03 高通股份有限公司 通过一个或多个服务的中介内容分发
CN111741268A (zh) * 2020-06-30 2020-10-02 中国建设银行股份有限公司 视频的传输方法、装置、服务器、设备和介质
CN112235289A (zh) * 2020-10-13 2021-01-15 桂林微网互联信息技术有限公司 数据加解密方法、装置、计算设备及存储介质
CN112822518A (zh) * 2021-04-19 2021-05-18 浙江华创视讯科技有限公司 视频播放方法、装置、系统、电子设备和存储介质

Also Published As

Publication number Publication date
CN114025192A (zh) 2022-02-08

Similar Documents

Publication Publication Date Title
US8452008B2 (en) Content distributing method, apparatus and system
US20170323542A1 (en) Apparatus for security enhancement in closed circuit television using hardware security module and the method by using the same
US8627350B2 (en) Systems and method for determining visual media information
CN107483505B (zh) 一种对视频聊天中的用户隐私进行保护的方法及系统
US8850498B1 (en) Media adaptive distribution system and method
CN104519013B (zh) 保证媒体流安全性的方法、设备和系统
CN109495258B (zh) 监控数据解密的方法、装置、计算机设备及存储介质
CN106254382B (zh) 媒体数据的处理方法及装置
US20080148391A1 (en) CONTENT DISTRIBUTION SYSTEM BY SIP (Session Initiation Protocol), CONTENT SERVER SIDE USER TERMINAL, CONTENT CLIENT SIDE USER TERMINAL AND AUTHENTICATION METHOD
CN114025192B (zh) 直播数据加密、解密方法、装置、存储介质及计算机设备
CN113422984A (zh) 视频处理方法及装置、电子设备及存储介质
US11778250B2 (en) Techniques for reducing streaming start latency
CN102714593A (zh) 控制字符的加密方法、传送方法及解密方法和用于执行这些方法的记录媒体
WO2009103343A1 (en) Method and apparatus for distributing media over a communications network
Iqbal et al. Compressed-domain video processing for adaptation, encryption, and authentication
US11128678B2 (en) Multi-platform digital rights management for placeshifting of multimedia content
US8683515B2 (en) Receiver for accelerating channel change time
KR20050009227A (ko) 개별 비디오 암호화 시스템 및 방법
JP4499631B2 (ja) 画像受信装置及びプログラム
Go et al. Secure video transmission framework for battery-powered video devices
US10489559B2 (en) Method for providing protected multimedia content
US8811478B2 (en) Data transmission method and apparatus
JP2012137900A (ja) 映像出力システム、映像出力方法及びサーバ装置
Massandy et al. Secured video streaming development on smartphones with Android platform
Aly et al. A light-weight encrypting for real time video transmission

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
GR01 Patent grant
GR01 Patent grant