视频流加、解密装置、方法、设备及介质转让专利

申请号 : CN202311840124.6

文献号 : CN117499040B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 高波

申请人 : 苏州元脑智能科技有限公司

摘要 :

本发明涉及通信技术领域,提出一种视频流加、解密装置、方法、设备及介质,其中,视频流加密装置包括:计数器,用于响应于检测到待加密视频流的当前帧的帧头,将计数值更新为第一计数值;密钥生成模块,用于基于第一计数值和预设密钥生成第一密钥,基于当前帧的像素位宽和第一密钥生成对应的若干子密钥并进行拼接得到第二密钥,基于当前帧的像素个数输出对应的若干第二密钥;加密模块,用于基于若干第二密钥对当前帧加密得到加密数据,并响应于检测到所述当前帧的帧尾,读取第一计数值并将加密数据和第一计数值发送给解密端。本发明的方案有利于提高视频流加/解密的安全性和稳定性。

权利要求 :

1.一种视频流加密装置,其特征在于,所述视频流加密装置包括:

计数器,所述计数器用于响应于检测到待加密视频流的当前帧的帧头,将计数值更新为所述当前帧对应的第一计数值;

密钥生成模块,所述密钥生成模块用于接收所述第一计数值和预设密钥并基于二者生成第一密钥,以及基于所述当前帧的像素位宽和所述第一密钥生成对应的若干子密钥并进行拼接得到第二密钥,以及基于所述当前帧的像素个数输出对应的若干第二密钥;

加密模块,所述加密模块用于接收所述若干第二密钥和所述当前帧,以及基于所述若干第二密钥对所述当前帧加密得到加密数据,并响应于检测到所述当前帧的帧尾,从所述计数器中读取所述第一计数值,并将所述加密数据和所述第一计数值发送给解密端;

所述密钥生成模块包括第二密钥生成模块,所述第二密钥生成模块进一步包括:

初始化单元,所述初始化单元用于将所述第一密钥初始化为伪随机数序列;

多个子密钥生成单元,所述多个子密钥生成单元依次级联,每个所述子密钥生成单元用于基于预设加密算法和接收到的所述伪随机数序列生成一个所述子密钥并向下一个所述子密钥生成单元输出剩余的所述伪随机数序列,以将所述多个子密钥生成单元分别生成的对应子密钥进行拼接,得到第二密钥,其中,多个子密钥生成单元的数量基于所述当前帧的像素位宽和所述子密钥的位宽之比进行配置。

2.根据权利要求1所述的视频流加密装置,其特征在于,所述密钥生成模块包括:

第一密钥生成模块,与所述计数器连接,用于接收所述第一计数值和预设密钥,并将所述第一计数值和所述预设密钥进行拼接得到第一密钥。

3.根据权利要求1所述的视频流加密装置,其特征在于,所述第二密钥生成模块用于接收所述第一密钥生成模块输出的所述第一密钥,以及基于预设加密算法获取生成的子密钥的位宽,基于所述当前帧的像素位宽和所述子密钥的位宽计算一个周期内基于所述第一密钥生成的对应子密钥的数量,基于所述数量将对应子密钥进行拼接,得到第二密钥。

4.根据权利要求3所述的视频流加密装置,其特征在于,所述初始化单元用于接收所述第一密钥生成模块输出的所述第一密钥。

5.根据权利要求4所述的视频流加密装置,其特征在于,所述第二密钥生成模块还包括:多路选择器单元,用于接收所述初始化单元输出的所述伪随机数序列并将其发送给所述多个子密钥生成单元中的首个子密钥生成单元,以生成对应子密钥。

6.根据权利要求5所述的视频流加密装置,其特征在于,所述视频流加密装置还包括:第一存储器,用于接收输入的所述待加密视频流的当前帧以及将所述当前帧发送给所述加密模块,并响应于存储的数据为空,指示空信号。

7.根据权利要求6所述的视频流加密装置,其特征在于,所述第二密钥生成模块还包括:触发器单元,用于响应于接收到所述多个子密钥生成单元中的末尾子密钥生成单元输出的伪随机数序列,读取所述第一存储器中的信号,响应于未读取到所述空信号,在检测到时钟信号时将接收的伪随机数序列发送给所述多路选择器单元,以启动生成下一个周期的对应子密钥。

8.根据权利要求7所述的视频流加密装置,其特征在于,所述触发器单元的所述时钟信号的周期基于所述当前帧的像素个数进行配置。

9.根据权利要求7所述的视频流加密装置,其特征在于,所述多路选择器单元进一步用于接收所述触发器单元发送的伪随机数序列并将其再次发送给所述首个子密钥生成单元,以生成下一个周期的对应子密钥。

10.根据权利要求3所述的视频流加密装置,其特征在于,所述预设加密算法包括RC4加密算法。

11.根据权利要求1所述的视频流加密装置,其特征在于,所述加密模块进一步用于将所述若干第二密钥按照所述当前帧的像素顺序分别与所述当前帧的对应像素进行异或计算,得到加密数据。

12.根据权利要求1所述的视频流加密装置,其特征在于,所述计数器进一步用于响应于检测到所述当前帧的帧头,将前一帧对应的第一计数值加1,以得到所述当前帧对应的第一计数值。

13.一种视频流加密方法,其特征在于,所述方法包括:

响应于检测到待加密视频流的当前帧的帧头,将计数值更新为所述当前帧对应的第一计数值;

基于所述第一计数值和预设密钥生成第一密钥,以及基于所述当前帧的像素位宽和所述第一密钥生成对应的若干子密钥并进行拼接得到第二密钥,以及基于所述当前帧的像素个数生成对应的若干第二密钥,其中,将所述第一密钥初始化为伪随机数序列,基于预设加密算法和接收到的所述伪随机数序列生成一个所述子密钥并向下一个所述子密钥生成单元输出剩余的所述伪随机数序列,以将所述多个子密钥生成单元分别生成的对应子密钥进行拼接,得到第二密钥,基于所述当前帧的像素位宽和所述子密钥的位宽之比配置多个子密钥生成单元的数量;

基于所述若干第二密钥对所述当前帧加密得到加密数据,并响应于检测到所述当前帧的帧尾,从计数器中读取所述第一计数值,并将所述加密数据和所述第一计数值发送给解密端。

14.一种视频流解密装置,其特征在于,所述视频流解密装置包括:

接收模块,用于接收加密数据以及第一计数值;

密钥生成模块,用于存储预设密钥,并响应于从所述接收模块接收到所述加密数据和所述第一计数值,基于所述预设密钥和所述第一计数值生成第一密钥,以及获取所述加密数据的当前帧的像素位宽,基于所述加密数据的当前帧的像素位宽和所述第一密钥生成对应的若干子密钥并进行拼接得到第二密钥,以及基于所述加密数据的当前帧的像素个数输出对应的若干第二密钥;

解密模块,用于接收所述若干第二密钥和所述加密数据的当前帧,以及基于所述若干第二密钥对所述加密数据的当前帧进行解密得到对应的原始数据,并响应于检测到所述加密数据的当前帧的帧尾,将得到的全部原始数据输出;

所述密钥生成模块包括第二密钥生成模块,所述第二密钥生成模块进一步包括:

初始化单元,所述初始化单元用于将所述第一密钥初始化为伪随机数序列;

多个子密钥生成单元,所述多个子密钥生成单元依次级联,每个所述子密钥生成单元用于基于预设加密算法和接收到的所述伪随机数序列生成一个所述子密钥并向下一个所述子密钥生成单元输出剩余的所述伪随机数序列,以将所述多个子密钥生成单元分别生成的对应子密钥进行拼接,得到第二密钥,其中,多个子密钥生成单元的数量基于所述当前帧的像素位宽和所述子密钥的位宽之比进行配置。

15.一种视频流解密方法,其特征在于,所述方法包括:

接收加密数据以及第一计数值;

将预先存储的预设密钥和所述第一计数值生成第一密钥,以及获取所述加密数据的当前帧的像素位宽,基于所述加密数据的当前帧的像素位宽和所述第一密钥生成对应的若干子密钥并进行拼接得到第二密钥,以及基于所述加密数据的当前帧的像素个数生成对应的若干第二密钥,其中,将所述第一密钥初始化为伪随机数序列,基于预设加密算法和接收到的所述伪随机数序列生成一个所述子密钥并向下一个所述子密钥生成单元输出剩余的所述伪随机数序列,以将所述多个子密钥生成单元分别生成的对应子密钥进行拼接,得到第二密钥,基于所述当前帧的像素位宽和所述子密钥的位宽之比配置多个子密钥生成单元的数量;

基于所述若干第二密钥对所述加密数据的当前帧进行解密得到对应的原始数据,并响应于检测到所述加密数据的当前帧的帧尾,将得到的全部原始数据输出。

16. 一种电子设备,其特征在于,包括:

至少一个处理器;以及

存储器,所述存储器存储有可在所述处理器中运行的计算机程序,所述处理器执行所述程序时执行权利要求13所述的视频流加密方法或者权利要求15所述的视频流解密方法。

17.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时执行权利要求13所述的视频流加密方法或者权利要求

15所述的视频流解密方法。

说明书 :

视频流加、解密装置、方法、设备及介质

技术领域

[0001] 本发明涉及通信技术领域,尤其涉及一种视频流加、解密装置、方法、设备及介质。

背景技术

[0002] 视频流在传输过程中需要进行加密处理,以保证其安全性,比如通过RC4(Rivest Cipher 4,一种流加密算法)算法对视频流进行加密,RC4加密算法是一种对称加密算法,加解密使用相同的密钥,由初始化和伪随机子密码生成算法构成,并且具有实现简单,对硬件资源消耗低,可以防御暴力破解等优点。
[0003] 现有的视频流加密的方法,在处理视频流数据时受DDR(Double Data Rate,双倍速率同步动态随机存储器)带宽等因素的影响,当视频流传输过程中某一帧丢失数据,则无法继续对丢失帧之后的数据进行加密,也无法对加密速率与视频流的带宽之间进行合理匹配,不利于提高视频流加密的安全性以及稳定性。

发明内容

[0004] 有鉴于此,有必要针对以上技术问题,提供一种视频流加、解密装置、方法、设备及介质。
[0005] 根据本发明的第一方面,提供了一种视频流加密装置,所述视频流加密装置包括:
[0006] 计数器,所述计数器用于响应于检测到待加密视频流的当前帧的帧头,将计数值更新为所述当前帧对应的第一计数值;
[0007] 密钥生成模块,所述密钥生成模块用于接收所述第一计数值和预设密钥并基于二者生成第一密钥,以及基于所述当前帧的像素位宽和所述第一密钥生成对应的若干子密钥并进行拼接得到第二密钥,以及基于所述当前帧的像素个数输出对应的若干第二密钥;
[0008] 加密模块,所述加密模块用于接收所述若干第二密钥和所述当前帧,以及基于所述若干第二密钥对所述当前帧加密得到加密数据,并响应于检测到所述当前帧的帧尾,从所述计数器中读取所述第一计数值,并将所述加密数据和所述第一计数值发送给解密端。
[0009] 在一些实施例中,所述密钥生成模块包括:
[0010] 第一密钥生成模块,与所述计数器连接,用于接收所述第一计数值和预设密钥,并将所述第一计数值和所述预设密钥进行拼接得到第一密钥。
[0011] 在一些实施例中,所述密钥生成模块还包括:
[0012] 第二密钥生成模块,用于接收所述第一密钥生成模块输出的所述第一密钥,以及基于预设加密算法获取生成的子密钥的位宽,基于所述当前帧的像素位宽和所述子密钥的位宽计算一个周期内基于所述第一密钥生成的对应子密钥的数量,基于所述数量将对应子密钥进行拼接,得到第二密钥。
[0013] 在一些实施例中,所述第二密钥生成模块包括:
[0014] 初始化单元,所述初始化单元用于接收所述第一密钥生成模块输出的所述第一密钥,并将所述第一密钥初始化为伪随机数序列;
[0015] 多个子密钥生成单元,所述多个子密钥生成单元依次级联,每个所述子密钥生成单元用于基于所述预设加密算法和接收到的所述伪随机数序列生成一个所述子密钥并向下一个所述子密钥生成单元输出剩余的所述伪随机数序列,以将所述多个子密钥生成单元分别生成的对应子密钥进行拼接,得到第二密钥。
[0016] 在一些实施例中,所述多个子密钥生成单元的数量基于所述当前帧的像素位宽和所述子密钥的位宽之比进行配置。
[0017] 在一些实施例中,所述第二密钥生成模块还包括:
[0018] 多路选择器单元,用于接收所述初始化单元输出的所述伪随机数序列并将其发送给所述多个子密钥生成单元中的首个子密钥生成单元,以生成对应子密钥。
[0019] 在一些实施例中,所述视频流加密装置还包括:
[0020] 第一存储器,用于接收输入的所述待加密视频流的当前帧以及将所述当前帧发送给所述加密模块,并响应于存储的数据为空,指示空信号。
[0021] 在一些实施例中,所述第二密钥生成模块还包括:
[0022] 触发器单元,用于响应于接收到所述多个子密钥生成单元中的末尾子密钥生成单元输出的伪随机数序列,读取所述第一存储器中的信号,响应于未读取到所述空信号,在检测到时钟信号时将接收的伪随机数序列发送给所述多路选择器单元,以启动生成下一个周期的对应子密钥。
[0023] 在一些实施例中,所述触发器单元的所述时钟信号的周期基于所述当前帧的像素个数进行配置。
[0024] 在一些实施例中,所述多路选择器单元进一步用于接收所述触发器单元发送的伪随机数序列并将其再次发送给所述首个子密钥生成单元,以生成下一个周期的对应子密钥。
[0025] 在一些实施例中,所述预设加密算法包括RC4加密算法。
[0026] 在一些实施例中,所述加密模块进一步用于将所述若干第二密钥按照所述当前帧的像素顺序分别与所述当前帧的对应像素进行异或计算,得到加密数据。
[0027] 在一些实施例中,所述计数器进一步用于响应于检测到所述当前帧的帧头,将前一帧对应的第一计数值加1,以得到所述当前帧对应的第一计数值。
[0028] 根据本发明的第二方面,提供了一种视频流加密方法,所述视频流加密方法包括:
[0029] 响应于检测到待加密视频流的当前帧的帧头,将计数值更新为所述当前帧对应的第一计数值;
[0030] 基于所述第一计数值和预设密钥生成第一密钥,以及基于所述当前帧的像素位宽和所述第一密钥生成对应的若干子密钥并进行拼接得到第二密钥,以及基于所述当前帧的像素个数生成对应的若干第二密钥;
[0031] 基于所述若干第二密钥对所述当前帧加密得到加密数据,并响应于检测到所述当前帧的帧尾,从所述计数器中读取所述第一计数值,并将所述加密数据和所述第一计数值发送给解密端。
[0032] 根据本发明的第三方面,还提供了一种视频流解密装置,所述视频流解密装置包括:
[0033] 接收模块,用于接收加密数据以及第一计数值;
[0034] 密钥生成模块,用于存储预设密钥,并响应于从所述接收模块接收到所述加密数据和所述第一计数值,基于所述预设密钥和所述第一计数值生成第一密钥,以及获取所述加密数据的当前帧的像素位宽,基于所述加密数据的当前帧的像素位宽和所述第一密钥生成对应的若干子密钥并进行拼接得到第二密钥,以及基于所述加密数据的当前帧的像素个数输出对应的若干第二密钥;
[0035] 解密模块,用于接收所述若干第二密钥和所述加密数据的当前帧,以及基于所述若干第二密钥对所述加密数据的当前帧进行解密得到对应的原始数据,并响应于检测到所述加密数据的当前帧的帧尾,将得到的全部原始数据输出。
[0036] 根据本发明的第四个方面,提供了一种视频流解密方法,所述视频流解密方法包括:
[0037] 接收加密数据以及第一计数值;
[0038] 将预先存储的预设密钥和所述第一计数值生成第一密钥,以及获取所述加密数据的当前帧的像素位宽,基于所述加密数据的当前帧的像素位宽和所述第一密钥生成对应的若干子密钥并进行拼接得到第二密钥,以及基于所述加密数据的当前帧的像素个数生成对应的若干第二密钥;
[0039] 基于所述若干第二密钥对所述加密数据的当前帧进行解密得到对应的原始数据,并响应于检测到所述加密数据的当前帧的帧尾,将得到的全部原始数据输出。
[0040] 根据本发明的第五个方面,还提供了一种电子设备,该电子设备包括:
[0041] 至少一个处理器;以及
[0042] 存储器,存储器存储有可在处理器上运行的计算机程序,处理器执行程序时执行前述的视频流加密方法或者视频流解密方法。
[0043] 根据本发明的第六个方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时执行前述的视频流加密方法或者视频流解密方法。
[0044] 上述一种视频流加密装置,包括计数器、密钥生成模块以及加密模块,其中,密钥生成模块接收计数器的计数值(当前帧对应的第一计数值)并将其与预设密钥生成第一密钥,之后根据当前帧的像素位宽和第一密钥生成对应的若干子密钥并进一步拼接得到第二密钥,进一步根据当前帧的像素个数输出对应的若干第二密钥,加密模块基于接收的若干第二密钥对当前帧进行加密,最终将加密得到的加密数据和第一计数值发送给解密端。实现了将加密密钥和视频流的输入带宽进行合理匹配,按照视频帧进行加密,即一帧对应一个加密密钥,即使加密过程中有视频帧丢失,也不影响后续视频帧的加密,有利于提高视频流加密的安全性和稳定性。此外,本发明还提供了一种视频流加密方法,同样能实现上述技术效果,这里不再赘述。
[0045] 进一步,本发明还提供了一种视频流解密装置,包括接收模块、密钥生成模块以及解密模块,其中,密钥生成模块存储了预设密钥并当从接收模块接收到加密数据和第一计数值时,基于二者生成第一密钥,并获取加密数据的当前帧的像素位宽,基于当前帧的像素位宽和第一密钥生成对应的若干子密钥并进行拼接得到第二密钥,以及基于加密数据中的当前帧的像素个数输出对应的若干第二密钥,进一步,解密模块基于接收的若干第二密钥对加密数据的当前帧解密,得到对应的原始数据并输出。在解密端实现了对加密数据按帧解密,即使得到的加密数据中存在丢失帧也不影响对后续帧的解密,实现了一帧加密数据对应一个解密密钥,有利于增强系统的稳定性和安全性。此外,本发明还提供了一种视频流解密方法,同样能实现上述技术效果,这里不再赘述。
[0046] 此外,本发明还提供了一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果,这里不再赘述。

附图说明

[0047] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
[0048] 图1为本发明一个实施例提供的一种视频流加密装置的示意图;
[0049] 图2为本发明一个实施例提供的密钥生成模块的结构示意图;
[0050] 图3为本发明一个实施例提供的第二密钥生成模块的结构示意图;
[0051] 图4为本发明一个实施例提供的一种视频流加密装置的示意图;
[0052] 图5为本发明另一个实施例提供的一种视频流加密方法的流程图;
[0053] 图6为本发明另一个实施例提供的一种视频流解密装置的示意图;
[0054] 图7为本发明另一个实施例提供的一种视频流解密方法的流程图;
[0055] 图8为本发明另一个实施例中电子设备的内部结构图;
[0056] 图9为本发明另一个实施例中计算机可读存储介质结构图。

具体实施方式

[0057] 为使本发明的目标、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
[0058] 需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
[0059] 在一个实施例中,请参照图1所示,本发明提供了一种视频流加密装置100,具体来说,所述一种视频流加密装置100包括:
[0060] 计数器101,所述计数器101用于响应于检测到待加密视频流的当前帧的帧头,将计数值更新为所述当前帧对应的第一计数值;
[0061] 密钥生成模块102,所述密钥生成模块102用于接收所述第一计数值和预设密钥并基于二者生成第一密钥,以及基于所述当前帧的像素位宽和所述第一密钥生成对应的若干子密钥并进行拼接得到第二密钥,以及基于所述当前帧的像素个数输出对应的若干第二密钥;
[0062] 加密模块103,所述加密模块103用于接收所述若干第二密钥和所述当前帧,以及基于所述若干第二密钥对所述当前帧加密得到加密数据,并响应于检测到所述当前帧的帧尾,从所述计数器101中读取所述第一计数值,并将所述加密数据和所述第一计数值发送给解密端。
[0063] 上述一种视频流加密装置100,实现了将加密密钥和视频流的输入带宽进行合理匹配,按照视频帧进行加密,即一帧对应一个加密密钥,即使加密过程中有视频帧丢失,也不影响后续视频帧的加密,有利于提高视频流加密的安全性和稳定性。
[0064] 根据本发明的若干实施例,请参考图2,所述密钥生成模块102包括:
[0065] 第一密钥生成模块104,与所述计数器101连接,用于接收所述第一计数值和预设密钥,并将所述第一计数值和所述预设密钥进行拼接得到第一密钥。
[0066] 通过计数器101的计数值和预设密钥拼接得到第一密钥(拼接的密钥),保证了每一帧对应的第一密钥不相同,实现了一帧对应一密钥的效果。
[0067] 根据本发明的若干实施例,请继续参考图2,所述密钥生成模块102还包括:
[0068] 第二密钥生成模块105,用于接收所述第一密钥生成模块104输出的所述第一密钥,以及基于预设加密算法获取生成的子密钥的位宽,基于所述当前帧的像素位宽和所述子密钥的位宽计算一个周期内基于所述第一密钥生成的对应子密钥的数量,基于所述数量将对应子密钥进行拼接,得到第二密钥。
[0069] 根据本发明的若干实施例,请参考图3,所述第二密钥生成模块105包括:
[0070] 初始化单元106,所述初始化单元106用于接收所述第一密钥生成模块104输出的所述第一密钥,并将所述第一密钥初始化为伪随机数序列;
[0071] 多个子密钥生成单元107,所述多个子密钥生成单元107依次级联,每个所述子密钥生成单元107用于基于所述预设加密算法和接收到的所述伪随机数序列生成一个所述子密钥并向下一个所述子密钥生成单元107输出剩余的所述伪随机数序列,以将所述多个子密钥生成单元107分别生成的对应子密钥进行拼接,得到第二密钥。
[0072] 根据本发明的若干实施例,所述多个子密钥生成单元107的数量基于所述当前帧的像素位宽和所述子密钥的位宽之比进行配置。
[0073] 通过当前帧的像素位宽匹配一个周期内生成的子密钥的个数,将一个周期内的全部子密钥进行拼接,得到对应的第二密钥,以通过第二密钥对对应像素加密,即使其中一帧丢失,也可以继续对后续帧进行加密,提高了系统的安全性。
[0074] 根据本发明的若干实施例,请继续参考图3,所述第二密钥生成模块105还包括:
[0075] 多路选择器单元108,用于接收所述初始化单元106输出的所述伪随机数序列并将其发送给所述多个子密钥生成单元107中的首个子密钥生成单元107,以生成对应子密钥。
[0076] 多路选择器单元108与首个子密钥生成单元107连接,多个子密钥生成单元107依次进行级联,对应了生成的子密钥的顺序,按照此顺序对生成的子密钥依次拼接,避免出现顺序错乱导致加密失误的问题,有利于提高系统的稳定性。
[0077] 根据本发明的若干实施例,请参考图4,所述视频流加密装置100还包括:
[0078] 第一存储器109,用于接收输入的所述待加密视频流的当前帧以及将所述当前帧发送给所述加密模块103,并响应于存储的数据为空,指示空信号。
[0079] 通过第一存储器109暂存待加密视频流的当前帧的数据,并利用第一存储器109可以指示空信号,指示了后续第二密钥生成模块102生成子密钥结束时间,有利于每一帧对应的若干第二密钥有序生成。
[0080] 根据本发明的若干实施例,在图4的基础上,请继续参考图3,所述第二密钥生成模块102还包括:
[0081] 触发器单元110,用于响应于接收到所述多个子密钥生成单元107中的末尾子密钥生成单元107输出的伪随机数序列,读取所述第一存储器109中的信号,响应于未读取到所述空信号,在检测到时钟信号时将接收的伪随机数序列发送给所述多路选择器单元108,以启动生成下一个周期的对应子密钥。
[0082] 在一些实施例中,当触发器单元110没有从FIFO中读取到空信号,并且检测到时钟信号时,将接收的伪随机数序列发送给多路选择器单元108,以启动生成下一个周期的对应子密钥。
[0083] 根据本发明的若干实施例,所述触发器单元110的所述时钟信号的周期基于所述当前帧的像素个数进行配置。
[0084] 根据本发明的若干实施例,所述多路选择器单元108进一步用于接收所述触发器单元110发送的伪随机数序列并将其再次发送给所述首个子密钥生成单元107,以生成下一个周期的对应子密钥。
[0085] 通过触发器单元110读取第一存储器109中的信号,可以生成多个周期的子密钥,直至第二密钥生成模块102输出的若干第二密钥的数量对应于当前帧的像素数量。
[0086] 根据本发明的若干实施例,所述预设加密算法包括RC4加密算法。
[0087] 根据本发明的若干实施例,所述加密模块103进一步用于将所述若干第二密钥按照所述当前帧的像素顺序分别与所述当前帧的对应像素进行异或计算,得到加密数据。
[0088] 按照异或的方式进行加密,有利于节省系统的计算资源。
[0089] 根据本发明的若干实施例,所述计数器101进一步用于响应于检测到所述当前帧的帧头,将前一帧对应的第一计数值加1,以得到所述当前帧对应的第一计数值。
[0090] 计数器101更新计数值的方式为当检测到当前帧的帧头则加1,更新计数值方式简单,实现了通过一种简单方式即可实现一帧对应一个加密密钥的效果。
[0091] 为了对本发明的一种视频流加密装置进一步阐述,在一个具体实施例中,请继续参考图1‑图4,计数器101的位宽为64位,预设密钥的位宽为128位,128位的预设密钥由软件进行配置,加密端和解密端共享这128位的预设密钥,视频流的每一帧的像素位宽为32位。
[0092] 当检测到待加密视频流的当前帧的帧头,计数器101将计数值更新为当前帧对应的64位的第一计数值,优选地,当检测到待加密视频流的当前帧的帧头,计数器101将其计数值加1。待加密视频流输入到第一存储器109中,优选地,第一存储器109为FIFO(First Input First Output,先进先出)存储器,将待加密视频流的当前帧和帧尾的指示(位宽为1位)一起暂存到FIFO中。当FIFO中存储的数据为空时,指示空信号。
[0093] 第一密钥生成模块104接收64位的第一计数值和128位的预设密钥并将二者拼接为192位的第一密钥并将其输出。第二密钥生成模块105基于RC4加密算法生成子密钥,RC4加密算法按照字节进行加密,需要匹配RC4加密速率和视频流带宽,RC4加密算法一次可以生成8位的子密钥,因此,第二密钥生成模块105需要一个周期内产生4个子密钥(共计32位),4个子密钥的位宽与视频流的当前帧的像素位宽相匹配,以及在一个周期内将产生的4个子密钥进行拼接得到第二密钥。
[0094] 第二密钥生成模块105包括初始化单元106、多个子密钥生成单元107、多路选择器单元108以及触发器单元110,其中,多个子密钥生成单元107在本实施例中为4个,即每一个子密钥生成单元生成一个8位子密钥,4个子密钥生成单元107按照顺序依次级联连接。初始化单元106接收第一密钥生成模块104输出的第一密钥,对第一密钥基于初始化算法进行初始化,得到初始化的结果伪随机数序列(S,i,j)initial并输出给多路选择器单元108,多路选择器单元108首先选择(S,i,j)initial输出给多个子密钥生成单元107中的首个子密钥生成单元107,首个子密钥生成单元107基于接收的(S,i,j)initial以及RC4加密算法生成一个8位子密钥,并将剩余的伪随机数序列(S,i,j)0输出给下一个子密钥生成单元107(第2个子密钥生成单元107),依次类推,第2个子密钥生成单元107输出一个8位子密钥和(S,i,j)1,第3个子密钥生成单元107输出一个8位子密钥和(S,i,j)2,末尾子密钥生成单元107(第4个子密钥生成单元107)接收上一个子密钥生成单元107输入的(S,i,j)2并基于其生成一个8位子密钥和(S,i,j)next给触发器单元110,触发器单元110包括使能信号和时钟信号,触发器单元110当接收到(S,i,j)next,读取第一存储器109中的信号,如果没有读取到空信号,则置使能信号为有效状态,之后接收到时钟信号则将(S,i,j)next发送给多路选择器单元108,以生成下一个周期的子密钥,直至第二密钥生成模块105生成的第二密钥的个数与当前帧的像素个数相同停止。
[0095] 加密模块103接收第二密钥生成模块105输出的若干第二密钥并对当前帧等进行加密,得到加密数据,当检测到当前帧的帧尾,从计数器101读取第一计数值,以将加密数据和第一计数值一起发送给解密端,即输出64位的第一计数值和加密数据。优选地,加密模块103将若干第二密钥与当前帧的对应像素的数据进行异或计算,得到加密数据。
[0096] 实现了将加密密钥和视频流的输入带宽进行合理匹配,按照视频帧进行加密,即一帧对应一个加密密钥,即使加密过程中有视频帧丢失,也不影响后续视频帧的加密,有利于提高视频流加密的安全性和稳定性。
[0097] 根据本发明的另一方面,提供了一种视频流加密方法,请参照图5,图5示出了本发明另一个实施例提供的一种视频流加密方法的流程图,如图5所示,一种视频流加密方法200包括:
[0098] 步骤201,响应于检测到待加密视频流的当前帧的帧头,将计数值更新为所述当前帧对应的第一计数值;
[0099] 步骤202,基于所述第一计数值和预设密钥生成第一密钥,以及基于所述当前帧的像素位宽和所述第一密钥生成对应的若干子密钥并进行拼接得到第二密钥,以及基于所述当前帧的像素个数生成对应的若干第二密钥;
[0100] 步骤203,基于所述若干第二密钥对所述当前帧加密得到加密数据,并响应于检测到所述当前帧的帧尾,从所述计数器中读取所述第一计数值,并将所述加密数据和所述第一计数值发送给解密端。
[0101] 上述一种视频流加密方法200实现了将加密密钥和视频流的输入带宽进行合理匹配,按照视频帧进行加密,即一帧对应一个加密密钥,即使加密过程中有视频帧丢失,也不影响后续视频帧的加密,有利于提高视频流加密的安全性和稳定性。
[0102] 根据本发明的另一方面,提供了一种视频流解密装置,请参照图6,图6示出了本发明另一个实施例提供的一种视频流解密装置的示意图,如图6所示,一种视频流解密装置300包括:
[0103] 接收模块301,用于接收加密数据以及第一计数值;
[0104] 密钥生成模块302,用于存储预设密钥,并响应于从所述接收模块301接收到所述加密数据和所述第一计数值,基于所述预设密钥和所述第一计数值生成第一密钥,以及获取所述加密数据的当前帧的像素位宽,基于所述加密数据的当前帧的像素位宽和所述第一密钥生成对应的若干子密钥并进行拼接得到第二密钥,以及基于所述加密数据的当前帧的像素个数输出对应的若干第二密钥;
[0105] 解密模块303,用于接收所述若干第二密钥和所述加密数据的当前帧,以及基于所述若干第二密钥对所述加密数据的当前帧进行解密得到对应的原始数据,并响应于检测到所述加密数据的当前帧的帧尾,将得到的全部原始数据输出。
[0106] 上述一种视频流解密装置300包括接收模块、密钥生成模块以及解密模块,其中,密钥生成模块存储了预设密钥并当从接收模块接收到加密数据和第一计数值时,基于二者生成第一密钥,并获取加密数据的当前帧的像素位宽,基于当前帧的像素位宽和第一密钥生成对应的若干子密钥并进行拼接得到第二密钥,以及基于加密数据中的当前帧的像素个数输出对应的若干第二密钥,进一步,解密模块基于接收的若干第二密钥对加密数据的当前帧解密,得到对应的原始数据并输出。在解密端实现了对加密数据按帧解密,即使得到的加密数据中存在丢失帧也不影响对后续帧的解密,实现了一帧加密数据对应一个解密密钥,有利于增强系统的稳定性和安全性。
[0107] 根据本发明的另一方面,提供了一种视频流加密方法,请参照图7,图7示出了本发明另一个实施例提供的一种视频流解密方法的流程图,如图7所示,一种视频流解密方法400包括:
[0108] 步骤401,接收加密数据以及第一计数值;
[0109] 步骤402,将预先存储的预设密钥和所述第一计数值生成第一密钥,以及获取所述加密数据的当前帧的像素位宽,基于所述加密数据的当前帧的像素位宽和所述第一密钥生成对应的若干子密钥并进行拼接得到第二密钥,以及基于所述加密数据的当前帧的像素个数生成对应的若干第二密钥;
[0110] 步骤403,基于所述若干第二密钥对所述加密数据的当前帧进行解密得到对应的原始数据,并响应于检测到所述加密数据的当前帧的帧尾,将得到的全部原始数据输出。
[0111] 上述一种视频流加密方法400实现了对加密数据按帧解密,即使得到的加密数据中存在丢失帧也不影响对后续帧的解密,实现了一帧加密数据对应一个解密密钥,有利于增强系统的稳定性和安全性。
[0112] 根据本发明的另一方面,提供了一种电子设备,该电子设备可以是服务器,其内部结构图请参照图8所示。该电子设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的数据库用于存储数据。该电子设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时实现以上所述的视频流加密方法或者视频流解密方法。
[0113] 根据本发明的又一方面,提供了一种计算机可读存储介质,请参照图9所示,其上存储有计算机程序,计算机程序被处理器执行时实现以上所述的视频流加密方法或者视频流解密方法。
[0114] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
[0115] 以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0116] 以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。