1.本发明涉及视频加密技术领域,具体涉及一种视频流实时加密方法及系统。
背景技术:
2.ts(transport stream)流,又称传输流,是一种用于存储和传输音视频数据的标准格式,被广泛应用于数字电视广播系统dvb,dtmb中。现有无线图像传输系统大多采用ts流作为传输单元。ts包为ts流的基本单元,每包包含188字节,分为4个字节的包头和184个字节的数据负荷,其中包头包含同步字节“47”(十六进制,以下47均为十六进制),包标记符pid,包连续计数信息等字段。ts流中不同类型,不同节目的包pid也不相同,同类型包的包连续计数域数值会依次从0到15累加。
3.高级加密标准(advanced encryption standard,简称aes)和sm4是目前常用的分组加密算法。加密算法在现实应用中有多种工作模式,常用的工作模式有电子密码本(electronic codebook,简称ecb)、密码分组链接(cipher
‑
block chaining,简称cbc)、计算器模式(counter,简称ctr)、密文反馈(cipher feedback,简称cfb)和输出反馈模式(output feedback,简称ofb)共五种,几种工作模式原理框图如图1
‑
4所示。
4.然而,dvb,dtmb为公开数字电视标准,任何个人和机构均可以轻易接收获得传输信息,无法满足人们对私密信息传输的要求。已有个人和机构提出了通过加密ts流的方式实现私密视频传输的技术和方法。如:通过aes
‑
cbc算法进行并行加密的方法及系统(专利公开号:cn104284208a)
5.上述专利中的加密方法具体执行过程为:
6.a,将所述传输流视频文件切割为n个子视频块;
7.b,选择密钥;
8.c,确定长度188字节与长度a的最小公倍数b;
9.d,插入填充部分;
10.e,对各子视频块独立并行加密;
11.f,组成密文块。
12.上述专利所用加密方法将视频流文件重新分割,每个视频块不再是188字节,与现有dvb,dtmb广播传输系统和其他常见传输系统存在接口兼容问题,而且需要增加填充,存在协议开销,降低了传输效率。传输过程丢失字节会破坏整个视频块的连续性,造成错误扩散,实际应用中容易造成接收端大面积解密失败,且仅支持aes
‑
cbc模式,容易被针对性破解,有较大的局限性。
技术实现要素:
13.为了解决已有视频流加密系统中,存在填充、协议开销大、与传输系统存在接口兼容性以及加密模式单一等问题,本发明提供了一种视频流实时加密方法,所述方法包括:
14.步骤1:生成多个初始向量和密钥;
15.步骤2:提取ts流中的pid和包连续计数信息;
16.步骤3:根据每一ts包打乱后的pid和包连续计信息,从多个初始向量和密钥中选出每一ts包对应的初始向量和密钥;
17.步骤4:利用选出的初始向量和密钥生成每一ts包的密码流;
18.步骤5:利用密码流对视频流进行处理,输出密文。
19.进一步的,所述步骤1具体包括:从物理热噪声源根据所选加密算法要求的位数提取随机信号生成初始向量和密钥,并存放于存储器中。
20.进一步的,所述步骤2中在提取pid和包连续计数信息前,还包括采用二次同步的方式对ts流进行同步的步骤,该步骤包括:检测接收的ts流,当检测到ts流中的字节的数据为47时则进入预同步状态,计数器清零并开始对随后收到字节逐一计数,当计数器为187时检测下一个收到的字节的数据是否为47,是47则进入同步状态并再次清零计数器,同时继续计数,计数器再次累计到187时,下个收到数据为47则同步完成,否则重新开始同步。
21.优选的,所述步骤3具体为:将一ts包的pid和包连续计数的各比特数据输入交织器a,交织器a实现将所述比特数据打乱重新排序。
22.以交织器a的输出作为地址信息对存放有初始向量和密钥的存储器进行寻址,寻址获得的数据输出至交织器b实现将该数据的打乱重新排序。
23.选取交织器b输出的一部分作为加密使用的初始向量,剩余部分作为加密使用的密钥。
24.优选的,所述步骤4中采用aes或sm4加密算法。
25.优选的,所述步骤4中的加密算法采用的工作模式为ecb、cbc、ctr、cfb或ofb中的一种;
26.优选的,采用ofb工作模式时,对加密使用的初始向量或移位后的加密使用的初始向量进行交织乱序处理,密钥保持不变。
27.优选的,所述步骤5具体为:将每组密码流与相应ts包除包头4字节外的184字节进行异或得到密文输出;
28.优选的,将串行的ts流转换为多个并行的子流,对各子流实施并行加密。
29.本发明还提供了一种视频流实时加密系统,包括:
30.生成模块,用于生成多个初始向量和密钥;
31.提取模块,用于提取ts流中的pid和包连续计数信息;
32.映射模块,其内耦合有交织器a和用于存储所述初始向量及秘钥的存储器,该模块用于,根据每一ts包打乱后的pid和包连续计信息,从多个初始向量和密钥中选出每一ts包对应的初始向量和密钥;
33.加密模块,用于利用映射模块选出的初始向量和密钥生成每一ts包的密码流;
34.以及利用该密码流对视频流进行处理,输出密文。
35.进一步的,所述生成模块被配置为,从物理热噪声源根据所选加密算法要求的位数提取随机信号生成初始向量和密钥,并存放于所述存储器中。
36.进一步的,所述提取模块中耦合有同步模块,用于在提取pid和包连续计数信息前对ts流进行同步;
37.该模块被配置为执行以下步骤:检测接收的ts流,当检测到ts流中的字节的数据
为47时则进入预同步状态,计数器清零并开始对随后收到字节逐一计数,当计数器为187时检测下一个收到的字节的数据是否为47,是47则进入同步状态并再次清零计数器,同时继续计数,计数器再次累计到187时,下个收到数据为47则同步完成,否则重新开始同步。
38.优选的,所述映射模块内还耦合有交织器b;
39.所述映射模块被配置为,将一ts包的pid和包连续计数的各比特数据输入交织器a,交织器a实现将所述比特数据打乱重新排序;
40.以交织器a的输出作为地址信息对存放有初始向量和密钥的存储器进行寻址,寻址获得的数据输出至交织器b实现将该数据的打乱重新排序;
41.选取交织器b输出的一部分作为加密使用的初始向量,剩余部分作为加密使用的密钥。
42.优选的,所述加密模块被配置为中采用aes或sm4加密算法。
43.优选的,所述加密算法的工作模式被配置为ecb、cbc、ctr、cfb或ofb中的一种。
44.优选的,所述加密模块被配置为,采用ofb工作模式时,对加密使用的初始向量或移位后的加密使用的初始向量进行交织乱序处理,密钥保持不变。
45.优选的,所述加密模块还被配置为:将每组密码流与相应ts包除包头4字节外的184字节进行异或得到密文输出。
46.优选的,还包括串并转换模块,用于将串行的ts流转换为多个并行的子流,
47.包括多个并联的加密模块,用于对各所述子流实施并行加密。
48.本发明提供的技术方案的有益效果是:针对私密视频传输需要对ts流进行加密的场景,在加密过程无需填充,仅通过交织技术实现了高级密钥分发机制,保持了原有的ts包的长度,于是不产生更多协议开销,进而在支持aes,sm4等多种加密算法和多种加密工作模式的同时,可实现音视频流独立加密,进一步保证密钥存储的安全性同时也确保了传输效率。
49.本发明提供的技术方案的中,每个ts包根据pid和包连续计数采用不同的初始向量和密钥进行加密,利用ts流协议的有效信息最大程度实现一次一密原则,同时在多个环节引入交织器增加随机性,包括在ofb工作模式中也引入交织,有效的提升了加密强度。
附图说明
50.图1是现有技术中的cbc加密工作模式原理框图;
51.图2是现有技术中的ctr加密工作模式原理框图;
52.图3是现有技术中的cfb加密工作模式原理框图;
53.图4是现有技术中的ofb加密工作模式原理框图;
54.图5是本发明实施例中的视频流加密系统的示意性框图;
55.图6是本发明实施例中提供的视频流加密方法的步骤流程图;
56.图7是本发明实施例中同步模块所实施的ts流二次同步的状态转移示意图;
57.图8是本发明提供的利用pid和包连续计数寻址初始向量和密钥存储器的实现过程示意图;
58.图9是本发明实施例中的加密模块所实施的改进型ofb加密工作模式的原理框图;
59.图10是本发明另一实施例中实施并行加密的示意性逻辑框图。
具体实施方式
60.为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
61.本实施例中的视频流实时加密方法由如图5所示的视频流实时加密系统实施,该系统包括生成模块、提取模块、映射模块和加密模块;提取模块中耦合有同步模块,映射模块中耦合有交织器a、交织器b和用于存储初始向量和密钥的存储器。
62.视频流实时加密方法的步骤流程基本如图6所示,各步骤具体为:
63.步骤101:由生成模块从物理热噪声源提取随机信号生成初始向量和密钥,存放于存储器中,初始向量和密钥的长度随着所选择的加密算法和工作模式而变化,加密算法为aes128和sm4时,密钥长度为128位,加密算法为aes256时,密钥长度为256位。
64.步骤102:ts流同步,提取pid和连续计数信息,待加密的ts流首先由同步模块进行同步,确定包头位置;本实施例中的同步模块采用二次同步的方式对ts流进行同步,具体实现过程如图7所示:检测接收的ts流,当检测到ts流中的字节的数据为47时则进入预同步状态,计数器清零并开始对随后收到字节逐一计数,当计数器为187时检测下一个收到的字节的数据是否仍为47,是47则进入二次同步状态,不是则跳回预同步状态。在二次同步状态再次清零计数器并继续计数,计数器再次累加到187时,如果下一个收到字节的数据为47则同步完成,否则跳转到预同步,重新开始同步过程。码流同步完成后,提取ts包中的pid和包连续计数信息,pid为47同步字节后两个字节拼接后的低13位,包连续计数信息为47同步字节后第三个字节的低4位。
65.步骤103:如图8所示,映射模块根据pid和包连续计数信息确定初始向量和密钥的执行流程为:将pid和包连续计数共17比特数据输入交织器,交织器a实现将数据线17打乱重新排序功能,如叫17位输入数据倒序输出,交织器a的输出作为地址信息对初始向量和密钥存储器进行寻址,存储器的输出连接交织器b,交织器b实现存储器输出数据的进一步打散,最后,将交织器b的输出的低部分作为初始向量,高部分作为密钥。交织器b的输入输出位数相同,交织器a的输入位数为固定17位,输出位数可根据存储器的深度灵活变化,实现一对一映射或多对一映射。多对一映射节省了存储器,但因为多个ts包均采用同一个初始向量和密钥加密,牺牲了安全性。
66.步骤104:由加密模块完成密码流输出,本实施例中的加密模块采用aes或sm4算法皆可,并采取改进型ofb加密工作模式,其过程如图9所示,从图9与图4的对比中可以看到,不同于ofb模式的简单移位,改进型引入交织器,对初始向量和后级模块的初始向量和密码流的拼接单元进行乱序重排,交织器的输出作为加密器的初始向量输入。在本发明的其他一些实施例中,如图1
‑
图4所示的其它工作模式皆可被加密模块采用,并通过对加密模块的重新配置来实现。
67.本实施例中需要加密的明文长度为184字节共1472位。aes和sm4加密模块的分组长度均为128位,1472除以128向上取整为12,因此需要12个密码块的拼接形成密码流。改进型ofb模式和普通ofb模式一样,密码流的生成不依赖于明文的输入,因此可以提前工作,等明文到来时直接加密输出,减小加密延迟。
68.步骤105:如图9所示,最后加密模块将密码流与ts包除包头4字节外的184字节进行异或得到密文输出。
69.本实施例中提出的视频流加密系统,ts包内采用改进型ofb模式,每个ts包根据pid和包连续计数信息采用不同的初始向量和密钥进行加密。利用ts流协议的有效信息和改进型ofb加密工作模式的最大程度实现一次一密原则,同时在多个环节引入交织器增加随机性,有效的提升加密强度。
70.本实施例中的加密系统可以方便的引入并行结构来提高加密的吞吐量。如图10所示,在本发明的另一实施例中,还加入了串并转换模块,加密模块也有多个(图中以3个为例),串并转换模块用于将串行的ts流转换为三个并行的子流,而三个并联的加密模块用于对各子流实施并行加密,最后各加密模块所输出的密文流则再被并串转换转为串行的密文ts流。当采用ofb模式或改进型ofb模式时,作为输出反馈的高n位密码输出可以在加密模块间传递;也每一加密模块仅仅反馈给自己作下一个ts包加密使用。
71.本发明提出的加密系统的解密过程为将密文与密码流再次进行异或,得到明文输出。解密系统与加密系统架构一致,包括存储器中的,初始向量、秘钥以及各交织器中的交织顺序也会同步,于是在某些场合可分时复用,节省硬件开支,密文在传播过程中的差错,仅局限于自身,无扩散,不会造成大面积解密失败,在现实中有很大的实用价值。
72.以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。需要说明的是,上述实施例提供的系统,仅以上述各功能单元的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能单元来完成,即将本发明实施例中的单元或者步骤再分解或者组合,例如,上述实施例的单元可以合并为一个单元,也可以进一步拆分成多个子单元,以完成以上描述的全部或者部分功能。对于本发明实施例中涉及的单元、步骤的名称,仅仅是为了区分各个单元或者步骤,不视为对本发明的不当限定。
73.本领域技术人员应该能够意识到,结合本文中所公开的实施例描述的各示例的单元、方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,软件单元、方法步骤对应的程序可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd
‑
rom、或技术领域内所公知的任意其它形式的存储介质中。为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
技术特征:
1.视频流实时加密方法,其特征在于,包括:步骤1:生成多个初始向量和密钥;步骤2:提取ts流中的pid和包连续计数信息;步骤3:根据每一ts包打乱后的pid和包连续计信息,从多个初始向量和密钥中选出每一ts包对应的初始向量和密钥;步骤4:利用选出的初始向量和密钥生成每一ts包的密码流;步骤5:利用密码流对视频流进行处理,输出密文。2.根据权利要求1所述的视频流实时加密方法,其特征在于,所述步骤1具体包括:从物理热噪声源根据所选加密算法要求的位数提取随机信号生成初始向量和密钥,并存放于存储器中。3.根据权利要求1所述的视频流实时加密方法,其特征在于,所述步骤2中在提取pid和包连续计数信息前,还包括采用二次同步的方式对ts流进行同步的步骤,该步骤包括:检测接收的ts流,当检测到ts流中的字节的数据为47时则进入预同步状态,计数器清零并开始对随后收到字节逐一计数,当计数器为187时检测下一个收到的字节的数据是否为47,是47则进入同步状态并再次清零计数器,同时继续计数,计数器再次累计到187时,下个收到数据为47则同步完成,否则重新开始同步。4.根据权利要求1所述的视频流实时加密方法,其特征在于,所述步骤3具体为:将一ts包的pid和包连续计数的各比特数据输入交织器a,交织器a实现将所述比特数据打乱重新排序;以交织器a的输出作为地址信息对存放有初始向量和密钥的存储器进行寻址,寻址获得的数据输出至交织器b实现将该数据的打乱重新排序;选取交织器b输出的一部分作为加密使用的初始向量,剩余部分作为加密使用的密钥。5.根据权利要求1所述的视频流实时加密方法,其特征在于,所述步骤4中采用aes或sm4加密算法。6.根据权利要求5所述的视频流实时加密方法,其特征在于,所述步骤4中的加密算法采用的工作模式为ecb、cbc、ctr、cfb或ofb中的一种。7.根据权利要求6所述的视频流实时加密方法,其特征在于,采用ofb工作模式时,对加密使用的初始向量或移位后的加密使用的初始向量进行交织乱序处理,密钥保持不变。8.根据权利要求1所述的视频流实时加密方法,其特征在于,所述步骤5具体为:将每组密码流与相应ts包除包头4字节外的184字节进行异或得到密文输出。9.根据权利要求1所述的视频流实时加密方法,其特征在于,还包括,将串行的ts流转换为多个并行的子流,对各子流实施并行加密。10.视频流实时加密系统,其特征在于,包括:生成模块,用于生成多个初始向量和密钥;提取模块,用于提取ts流中的pid和包连续计数信息;映射模块,其内耦合有交织器a和用于存储所述初始向量及秘钥的存储器,该模块用于,根据每一ts包打乱后的pid和包连续计信息,从多个初始向量和密钥中选出每一ts包对应的初始向量和密钥;加密模块,用于利用映射模块选出的初始向量和密钥生成每一ts包的密码流,以及利
用该密码流对视频流进行处理,输出密文。11.根据权利要求10所述的视频流实时加密系统,其特征在于,所述生成模块被配置为,从物理热噪声源根据所选加密算法要求的位数提取随机信号生成初始向量和密钥,并存放于所述存储器中。12.根据权利要求10所述的视频流实时加密系统,其特征在于,所述提取模块中耦合有同步模块,用于在提取pid和包连续计数信息前对ts流进行同步;该模块被配置为执行以下步骤:检测接收的ts流,当检测到ts流中的字节的数据为47时则进入预同步状态,计数器清零并开始对随后收到字节逐一计数,当计数器为187时检测下一个收到的字节的数据是否为47,是47则进入同步状态并再次清零计数器,同时继续计数,计数器再次累计到187时,下个收到数据为47则同步完成,否则重新开始同步。13.根据权利要求10所述的视频流实时加密系统,其特征在于,所述映射模块内还耦合有交织器b;所述映射模块被配置为,将一ts包的pid和包连续计数的各比特数据输入交织器a,交织器a实现将所述比特数据打乱重新排序;以交织器a的输出作为地址信息对存放有初始向量和密钥的存储器进行寻址,寻址获得的数据输出至交织器b实现将该数据的打乱重新排序;选取交织器b输出的一部分作为加密使用的初始向量,剩余部分作为加密使用的密钥。14.根据权利要求10所述的视频流实时加密系统,其特征在于,所述加密模块被配置为中采用aes或sm4加密算法。15.根据权利要求14所述的视频流实时加密系统,其特征在于,所述加密算法的工作模式被配置为ecb、cbc、ctr、cfb或ofb中的一种。16.根据权利要求15所述的视频流实时加密系统,其特征在于,所述加密模块被配置为,采用ofb工作模式时,对加密使用的初始向量或移位后的加密使用的初始向量进行交织乱序处理,密钥保持不变。17.根据权利要求10所述的视频流实时加密系统,其特征在于,所述加密模块还被配置为:将每组密码流与相应ts包除包头4字节外的184字节进行异或得到密文输出。18.根据权利要求10所述的视频流实时加密系统,其特征在于,还包括串并转换模块,用于将串行的ts流转换为多个并行的子流,包括多个并联的加密模块,用于对各所述子流实施并行加密。
技术总结
本发明公开了一种视频流实时加密方法及系统,属于视频加密技术领域。所述方法包括:步骤1:生成多个初始向量和密钥;步骤2:提取TS流中的PID和包连续计数信息;步骤3:根据每一TS包打乱后的PID和包连续计信息,从多个初始向量和密钥中选出每一TS包对应的初始向量和密钥;步骤4:利用选出的初始向量和密钥生成每一TS包的密码流;步骤5:利用密码流对视频流进行处理,输出密文。本发明的系统实现简单高效,无需填充,无协议开销,可直接应用于DVB,DTMB等数字电视广播系统与无线图像传输系统中。数字电视广播系统与无线图像传输系统中。数字电视广播系统与无线图像传输系统中。
技术研发人员:贾旭光 庞起超
受保护的技术使用者:六所智达(北京)科技有限公司
技术研发日:2021.03.03
技术公布日:2021/6/29
转载请注明原文地址:https://doc.8miu.com/read-405.html