CN1852088B - 流媒体传输码流的加密解密方法及模块 - Google Patents
流媒体传输码流的加密解密方法及模块 Download PDFInfo
- Publication number
- CN1852088B CN1852088B CN2005101003370A CN200510100337A CN1852088B CN 1852088 B CN1852088 B CN 1852088B CN 2005101003370 A CN2005101003370 A CN 2005101003370A CN 200510100337 A CN200510100337 A CN 200510100337A CN 1852088 B CN1852088 B CN 1852088B
- Authority
- CN
- China
- Prior art keywords
- data
- ciphering unit
- module
- stream
- unit
- 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
Links
Images
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
一种流媒体传输码流的加密解密方法及模块,发送端选取分包后的若干个流媒体数据包组成一个加密单元;再对加密单元中的数据分别进行置换加密和流加密;对加密单元中的数据再次进行分包,并依次编号,记录数据包在加密单元中的位置;对分包后的数据包进行发送。本发明针对分包后的流媒体数据分别进行置换加密和流加密,该密码算法是对称的,接收端收到媒体数据后,可采用原理相同的方法依次对包数据进行流解密和置换解密,最终得到解密的流媒体数据。本发明联合使用流加密和置换加密能有效抵抗已知明文的攻击,并具有良好的容错性,而且不影响压缩效率。
Description
技术领域
本发明涉及一种传输媒体的保护,尤其涉及一种流媒体传输码流的加密解密方法及模块。
背景技术
H.264是由联合视频组JVT制定的一套音视频编码国际标准,为了保护传输的媒体,特别是针对无线环境下的H.264视频媒体的保护,通常的加密系统会在媒体发送方和媒体接收方之间约定密码算法,媒体发送方秘密地选取一个密钥用于加密媒体,并将加密的媒体传输给媒体接收方,同时采用安全的方式将密钥告知媒体接收方,媒体接收方从而可以利用密钥解密媒体。因此,密码算法的设计与媒体的传输安全有密切关系。在无线网络环境下,对于密码算法通常有以下要求:
(1)安全性
安全性是加密方案的核心要求。一方面加密方案应能给内容提供足够的保护;另一方面,考虑面向商业的应用,其安全性所耗费的成本应控制在合理的范围内。相对于传统的数据,视频信息的数据量大,数据间存在着较大的冗余,这为破解内容提供了便利。特别的,很多的电影采用了固定片头或者提前发布预告片剪辑,这意味着相应视频明文可以被攻击者知晓,因此,加密算法应能抵御已知明文的攻击(由一段明文数据和该明文数据段加密得到的密文数据段组成“明文-密文对”,利用“明文-密文对”对加密系统实施的攻击称之为已知明文的攻击)。
(2)复杂度
流媒体应用要求移动终端设备能实时地解密内容,而移动终端设备的计算处理能力是受限的,因此,视频解密的复杂度不能太高。通常,复杂度与安全性是一对典型的矛盾,在实际设计加密系统时应考虑二者的折中。
(3)容错性
无线网络中存在着大量的传输错误,拥塞、缓冲区溢出及各种网络错误都可能导致丢包,此外,各种突发性错误也会导致传输比特错误。为此,加密系统应能限制错误的蔓延,并能对包丢失的情况提供快速的重同步功能,针对比特错误进行错误恢复处理。
(4)对压缩效率的负面影响
加密操作对压缩效率的负面影响源于以下几个方面:加密更改了编码参数及视频数据的统计特性,这使得编码效率明显降低;为正确的解密内容,一些解密参数及指示符被引入到压缩码流中,例如一些加密方法要求在明文之后填充一些信息,使得明文的长度满足加密算法的要求,这样一来就使得原来的明文变得更长,使压缩效率大打折扣。加密系统的设计要求之一是尽可能降低加密对压缩效率的负面影响。
不加密时流媒体的传送过程如下:
视频流获取→压缩编码→分包→网络发送→网络传输→网络接收→包组合→解码→视频流输出
下面分别对现有的加密方案进行介绍:
现有技术一是采用传输分包前的加密方案,视频媒体由于数据量大,通常在经过压缩编码之后传输。第一类方案因此选择在视频压缩编码过程中的某个阶段对视频数据进行加密。第二类方案是在媒体编码之后进行加密,不考虑媒体传输分包策略,而对媒体数据进行加密。
现有技术一的缺点在于:
第一类方案在压缩编码过程中加密,或者破坏了媒体数据自身的相 关性,或者破坏了由于之前的压缩操作引入的数据相关性,从而降低了后续的数据压缩效率。从信息论的角度,加密去除数据的相关性(冗余度),而压缩则需要利用数据的相关性(冗余度),因此,当先加密后压缩时,通常压缩率不会很高;而先压缩后加密则可以保证压缩率。
第二类方案加密时没有考虑到传输分包,因而在媒体接收端解密一个包数据,往往需要参考其它的包数据,而一旦媒体在传输过程中发生丢包,可能造成相关的包数据也无法解密。
现有技术二是采用分块加密(即分组加密)方案,将明文分成固定长度的组,用同一密钥和算法对每一块加密,输出也是固定长度的密文。
采用标准的分块加密算法对媒体数据进行加密,其缺点在于:
分块加密算法会使数据位之间存在相关性,媒体接收端需要将相关的若干数据位联合起来解密,而一旦媒体数据在传输过程中出现突发性位错误(无线环境下经常出现),则一位数据出错,相关的数据位解密时也会出错,从而造成错误蔓延。
现有技术三是采用一般的流加密方案:
如图1所示,一些现有技术采用流加密算法加密媒体数据。流密码(stream cipher)又称序列密码,每次加密一位或一字节的明文。流加密的原理是生成与明文等长的密码本(也就是伪随机序列),然后与明文进行逐位或者逐字节的加密操作。流加密使用伪随机序列发生器产生密码本。伪随机序列发生器的输入是初始向量,输出则是无限长的伪随机序列。之所以是伪随机,就是因为输入的初始向量的种类决定了输出的伪随机序列的种类。不同的流加密算法,会定义不同的伪随机序列发生器。在实际使用流加密方法的时候,为了提高安全性,需要引入初始向量和散列算法。但如果频繁地使用同一个初始向量去进行流加密是很危险的,因为它们的密码本是一样的,攻击者可以利用这一点进行破解。
由于流加密算法天然难以抵抗已知明文的攻击,这些算法通过更换 初始向量来更换流加密算法产生的伪随机密码本。但是,这些算法仍将初始向量放置于传输的数据流中。如2004年10月6日公开的申请号为200410032441.6,名称为《对可测量多媒体的可完全测量的密码编制》的专利申请提出的C&S加密算法,使用数据的消息校验码MAC作为初始向量,但却将消息校验码作为数据包的最后一个字节。
现有技术三的缺点在于:
上述的流加密方案仍会给已知明文的攻击提供信息。由于初始向量相同意味着加密数据的密码本源自于同一个伪随机序列,因此,一旦攻击者获得了一个“明文-密文对”以及相应的初始向量,就能计算该“明文-密文对”和所有与该“明文-密文对”拥有同样的初始向量的密文所使用的全部或部分的密码本,从而破解其明文信息。
现有技术四是采用置换加密,置换加密方法的原理是将数据分块,并打乱顺序。只有按照通信双方约定的方式对打乱数据恢复,才能获得正确的明文。
一些研究人员提出了视频媒体的置换加密方案,如文献:H.Chu,L.Qiao,and K.Nahrstedt,“A Secure Multicast Protocol with CopyrightProtection,”A CM SIGCOMM,Vol.32,Apr.2002。
现有技术四的缺点在于:虽然置换算法简单高效,但是攻击者一旦获取“明文-密文对”,也能寻找规律,破解算法。文献A.J.Slagell,“Know-Plaintext Attack Against a Permutation Based Video EncryptionAlgorithm,”Jan.2004(http://eprint.iacr.org/2004/011.pdf)就提出了针对上述置换方案的已知明文的攻击方法。此外,置换方法一般不会改变视频或者图像的统计特性,不适用于安全级别要求较高的应用。
如图2所示,现有技术单一使用流加密方法或者置换加密方法都易遭受已知明文的攻击。流密码难以抵御已知“明文-密文”对的攻击,攻击者同时得到一段明文和相应的密文后,可以推算密钥,进而破解其 它的密文,安全性差。
发明内容
本发明所要解决的技术问题是:克服现有的视频媒体加密方法存在的安全性差、容错性差或对压缩效率产生负面影响等的不足,提供一种具有良好的容错性、较强的抵御已知明文攻击能力、而且不影响压缩效率的流媒体传输码流的加密解密方法及模块。
本发明为解决上述技术问题所采用的技术方案为:
这种流媒体传输码流的加密方法,发送端进行加密发送的步骤包括:
S1、对流媒体码流进行编码压缩并进行分包,选取分包后的若干个流媒体数据包组成一个加密单元;
S2、对加密单元中的数据分别进行置换加密和流加密;
S3、对加密单元中的数据再次进行分包,并依次编号,记录数据包在加密单元中的位置;
S4、对分包后的数据包进行发送。
所述的置换加密先根据密钥确定加密单元的分块规则,然后将加密单元中的数据依次填充入块中,再将各块依次串联排列,按与填充次序相正交的次序从块中提取数据,组成置换后的加密单元。
在进行置换加密时,根据密钥确定加密单元的分块规则,通过控制分块的长度变化幅度与平均块长的比例,平衡加密媒体数据的交织特性和扰乱特性。
所述的流加密以比特为基本单位,以密钥作为种子,使用流密码生成器产生与加密单元等长的密码本,然后用密码本与待加密数据进行位异或运算,得到密文数据。
对采用H.264标准的视频媒体数据,从网络抽象层单元序列中选取 连续的若干个网络抽象层单元组成一个加密单元。
在完成对一个加密单元分别进行置换加密和流加密之后,根据各网络抽象层单元的原始长度,将加密数据依次填充到网络抽象层单元中,并在每个网络抽象层单元头部标识网络抽象层单元所属的加密单元以及在所属的加密单元中的偏移地址。
对采用非H.264标准的视频媒体数据,划分与H.264网络抽象层单元相当的数据片段,由连续的若干数据片段组成一个加密单元。
相应的一种流媒体传输码流的解密方法,流媒体传输码流接收端解密流程包括:
T1、从网络接收属于一个加密单元的若干个数据包;
T2、将数据包依据其在加密单元中的编号或位置排列重新组成加密单元;若一个加密单元中的数据包出现丢包,则对丢包数据位进行比特填充;
T3、对所述加密单元中的数据分别进行流解密和置换解密;
T4、将解密的数据组成流媒体数据包。
相应的一种流媒体传输码流的加密模块,包括依次连接的包组合模块、置换加密模块、流加密模块、分包与编号模块;
所述的包组合模块选取分包后的若干个流媒体数据包组成一个加密单元;
所述的置换加密模块和流加密模块对加密单元中的数据分别进行置换加密和流加密;
所述的分包与编号模块对加密单元中的数据再次进行分包,并依次编号,记录数据包在加密单元中的位置,然后进行发送。
相应的一种流媒体传输码流的解密模块,包括依次连接的包组合模块、流解密模块、置换解密模块和数据组装模块;
所述的包组合模块从网络接收属于一个加密单元的若干个数据包, 并将数据包依据其在加密单元中的编号或位置排列重新组成加密单元;若一个加密单元中的数据包出现丢包,则对丢包数据位进行比特填充;
所述的流解密模块和置换解密模块分别对所述加密单元中的数据进行流解密和置换解密;
所述的数据组装模块将解密的数据组成流媒体数据包。
本发明的有益效果为:本发明提供了一种针对流媒体传输的加密解密方法及模块,针对分包后的流媒体数据分别进行置换加密和流加密,该密码算法是对称的,接收端收到媒体数据后,可采用原理相同的方法依次对包数据进行流解密和置换解密,最终得到解密的流媒体数据。单一的使用流加密方法或者置换加密方法都易遭受已知明文的攻击,本发明联合使用流加密和置换加密则能有效抵抗已知明文的攻击,并具有良好的容错性,而且不影响压缩效率。
本发明采用置换加密后,使媒体数据具有了良好的交织特性。实施时,相邻的密文数据字节经过置换解密的映射后,会保持一定的距离。因此,当传输的密文数据发生相对集中的突发性错误时,经过接收端的置换解密操作,错误会被分散,从而视觉效果的恶化被削弱,同时,有利于接收端在解码过程中实施错误隐藏技术,对视觉效果进行补偿。而且置换操作根据密钥确定加密单元的分块规则,其间引入平滑系数,控制分块的长度变化幅度与平均块长的比例,可在算法的交织特性和扰乱特性之间寻求平衡。
本发明采用的置换加密和流加密均不会引入数据位之间的相关性,这使得对一个数据位的解密不依赖于其它数据位的值。因此,当码流在传输中出现误码时,接收端实施解密不会造成位错误的蔓延,容错性好,且不会降低压缩效率,本发明的这一特性特别适用于无线环境下的媒体保密传输。
附图说明
图1为现有技术采用流加密算法加密媒体数据的原理示意图;
图2为现有技术单独采用流加密或置换加密的原理示意图;
图3为本发明联合进行置换加密与流加密的原理示意图;
图4为本发明加密模块和解密模块内部结构示意图;
图5为置换加密前的数据十六进制表示示例图;
图6为置换算法的分块示意图;
图7为置换加密后的数据十六进制表示示例图;
图8为置换算法的映射规则示意图;
图9为明文序列经过置换得到的新序列结构示意图;
图10为图9第五行丢失后经过反置换得到的新序列结构示意图。
具体实施方式
下面根据附图和实施例对本发明作进一步详细说明:
本发明提出一种针对视频媒体的传输加密解密方法和设备,针对分包后的视频媒体数据分别进行置换加密和流加密,该密码算法是对称的,接收端收到媒体数据后,可采用原理相同的方法依次对包数据进行流解密和置换解密,最终得到解密的视频数据。本发明流媒体进行加密解密的传送过程如下:
视频流获取→压缩编码→分包→加密模块→网络发送→网络传输→网络接收→解密模块→包组合→解码→视频流输出
如图3所示,本发明加密模块中联合置换加密与流加密后,置换加密输出的中间文与明文的对应顺序被打乱,且打乱的方式是由密钥决定的。所以,既使攻击者同时获得了一段明文和相应的密文,但是与密文对应的中间文攻击者是不知道的,因此,无法实施“明文-密文”对的攻击。
如图4所示,本发明流媒体传输码流的加密模块包括依次连接的包组合模块、置换加密模块、流加密模块、分包与编号模块;包组合模块选取分包后的若干个流媒体数据包组成一个加密单元;置换加密模块和流加密模块对加密单元中的数据分别进行置换加密和流加密;分包与编号模块对加密单元中的数据再次进行分包,并依次编号,记录数据包在加密单元中的位置,然后进行发送。
流媒体传输码流的解密模块,包括依次连接的包组合模块、流解密模块、置换解密模块和数据组装模块;包组合模块从网络接收属于一个加密单元的若干个数据包,并将数据包依据其在加密单元中的编号或位置排列重新组成加密单元;若一个加密单元中的数据包出现丢包,则对丢包数据位进行比特填充;流解密模块和置换解密模块分别对所述加密单元中的数据进行流解密和置换解密;数据组装模块将解密的数据组成流媒体数据包。
本发明技术是针对一般流媒体的,兼顾了H.264的传输规范。H.264具有压缩率高、容错性好、并加入了适应网络传输的控制策略,能很好的适应无线环境的特点,H.264在世界上得到广泛认可,是无线环境下的有力竞争标准,因此本实施例以H.264视频码流加密为例进行说明,虽然本发明在描述算法的时候,结合了H.264的数据包封装格式,但是本发明方法可以扩展到其它流媒体的加密。
H.264标准定义了NAL(网络抽象层),负责将视频数据封装成NALU(网络抽象层单元),以适应在异构网络中的分组传输。采用H.264标准,并将视频码流面向传输分包,那么得到的就是一系列的NALU。如果不采用H.264标准,那么操作对象就不是NALU,而是相应标准分包后的单元。对采用非H.264标准的视频媒体数据(如MPEG-2、MPEG-4以及AVS),划分与H.264网络抽象层单元相当的数据片段,由连续的若干数据片段组成一个加密单元。其中,码流数据的划分以不分拆码流 的格式头信息或者载荷单元为原则,例如按码流的头信息,若干个宏块数据,或者运动矢量数据及若干个宏块数据划分为一个数据片段,这样保证了每个片段的数据的语义完整性,并尽可能使得一个数据片段的数据能够被独立的解码,也即是说对一个片断的数据进行视频解码不需要依赖其它片断的数据,从而降低网络传输丢包引起解码错误的蔓延。
发送端的包组合模块选择若干个连续的NALU包组成一个加密单元。在不同的网络环境下,NALU的长度会不同。有线网络中NALU的长度在1000字节左右,在无线网络中NALU通常为200字节左右。
NALU在格式上分为包头数据和包载荷数据,包头存储的是描述包数据类型、特征的标志位,而包载荷信息就是视频编码后的数据。所有的加密操作都是针对包载荷数据进行的,不修改包头数据。在完成对一个加密单元分别进行置换加密和流加密之后,发送端的分包与编号模块根据各NALU的原始长度,将加密数据依次填充到NALU中。为了使接收端在出现丢包(丢失个别的NALU)时仍能尽力解密,分包与编号模块在每个NALU头部标识NALU所属的加密单元以及在所属的加密单元中的偏移地址。这样,如果个别的NALU丢失,接收端的包组合模块可将接收到的其它NALU准确定位,而对丢失的NALU数据位进行比特填充,从而得到填充后的加密数据单元,然后实施解密操作,并由数据组装模块将全部解密的数据组装成视频数据单元。二次分包是将加密后的数据再次填充到NALU的包载荷数据中,因此,得到的仍然是NALU格式的包。
本实施例是以NALU为例进行说明,对采用非H.264标准的视频媒体数据(如MPEG-2、MPEG-4以及AVS),划分数据片段,并将数据片段等同于上述NALU进行操作。
分包后的发送端加密流程具体如下:
步骤1从H.264的NALU包序列中选取n个连续NALU包组成一 个加密单元;
步骤2对加密单元中的数据实施置换加密;
步骤3对加密单元中的数据实施流加密;
步骤4对加密单元中的数据二次分包,并依次编号,记录数据包载荷数据在加密单元中的偏移地址;
步骤5将二次分包后的数据包交给网络发送模块,并返回步骤1,提取下一个加密单元,依此循环。
接收端解密流程如下:
步骤1从网络接收模块收到的数据包中获取同属于一个加密单元的m个数据包(考虑网络传输中可能丢包,m<n);
步骤2将m个数据包依据包序号和偏移地址排列组成加密单元,其中,对丢失的包,用信息位0进行填充;
步骤3对加密单元中的数据实施流解密;
步骤4对加密单元中的数据实施置换解密;
步骤5将加密单元中的数据交给数据组装模块,并返回步骤1,提取下一个加密单元,依此循环。
下面对置换加密进行具体说明:
置换加密操作以字节为基本单位,针对加密单元实施。置换加密算法先根据密钥确定加密单元的分块规则,然后将加密单元中的数据依次填充入块中,然后按与填充次序相正交的次序从块中提取数据,组成置换后的加密单元。
置换加密的过程举例描述如下。假设待加密的数据单元共有100个字节,如图5所示。假设密钥为6位十进制数,例如564073。首先计算密钥数据位的总和,这里,5+6+4+0+7+3=25。接着根据十进制密钥的位数,将待加密的数据单元划分为相应数目的块,这里分为7块,依次计算各块的长度如下:
第1块:[(5/25)×100]=20(字节)
第2块:[(6/25)×100]=24(字节)
第3块:[(4/25)×100]=16(字节)
第4块:[(0/25)×100]=0(字节)
第5块:[(7/25)×100]=28(字节)
第6块:[(3/25)×100]=12(字节)
第7块:100-([(5/25)×100]+[(6/25)×100]+[(4/25)×100]+[(0/25)×100]+[(7/25)×100]+[(3/25)×100])=0(字节)
其中,[]表示取整运算,[x]表示不大于x的最大整数。第4块和第7块的长度为0,它只在逻辑上存在,数据实际被分成了5块。
然后按照图6所示的方法,将待加密的数据依次填充到各块中,得到填充结果。再将各块依次串联排列,按与填充次序相正交的次序从块中提取数据,组成置换后的加密单元,置换后的数据如图7所示。
置换操作的形式化描述如下:
首先,定义一些符号:
D 密钥的进制
K 密钥
L 密钥在D进制表示下的长度
N 明文字节长度
{P[j]}明文字节序列,j为序号,从0至N-1
{Q[j]}将明文置换后得到的字节序列
{R[l,m]}明文被映射成的中间二维字节序列,l为列标,m表示行标,{R[l]}为子列
设密钥K是一个L位的D进制数(L和D是自然数),则K的D进 制表示形式如下:
设明文字节序列为{P[j]}j=0,1,…,N-1,其中P[j]为一个字节长的数据。
记映射规则V将一维字节序列{P[j]}映射为二维字节序列{R[l,m]},其中,字节子序列{R[l]}的长度记为|R[l]|,且规定如下:
上述计算式中,[]表示取整运算,[x]是不大于x的最大整数。本发明针对置换加密的改进在于引入平滑系数γ,控制{R[l]}序列变化幅度与平均长度之间的比例。映射规则V描述如下:
其中,l=0,1,…,L,m=0,1,…,|R[l]| (式2-4)
记映射规则U,将二维字节序列{R[l,m]}映射为一维字节序列{Q[j]},其规则描述如下:
Q[j]=R[l,m](j=0,1,…,N-1),
且 (式2-5)
至此,置换算法P可定义为映射V和映射U的叠加,
P(·)=U(V(·)):{Q[j]}=P({P[j]})=U(V({P[j]})) (式2-6)
上述置换操作可用图8来描述,根据密钥确定加密单元的分块规则,其间引入平滑系数,控制分块的长度变化幅度与平均块长的比例,在算法的交织特性和扰乱特性之间寻求平衡;平滑系数γ可以控制置换方法的交织特性和扰乱特性。交织特性是让原本相邻的数据尽可能的分散 开。扰乱特性是让原来的数据尽可能无规律的打乱,这样就不容易破解,能提高抵御“明文-密文”对的攻击。这两个特性在一定程度上存在对立,平滑系数γ即是它们控制参数,在两者之间寻求折衷。
上述置换过程,平滑系数γ实际上取值为0。如果取γ等于5,那么计算分块的大小如下:
第1块:[(5+5)/(25+5×6)×100]=18(字节)
第2块:[(6+5)/(25+5×6)×100]=20(字节)
第3块:[(4+5)/(25+5×6)×100]=16(字节)
第4块:[(0+5)/(25+5×6)×100]=9(字节)
第5块:[(7+5)/(25+5×6)×100]=21(字节)
第6块:[(3+5)/(25+5×6)×100]=14(字节)
第7块:100-18-20-16-9-21-14=2(字节)
可以看到这时候,前6个块的大小变化幅度比γ取0时要小,通过理论分析,这时置换算法的交织特性比较稳定,但是扰乱特性比较差。
进一步地,取γ为100。这时,前6个块都为16字节,第7个块为4字节。这时置换算法等同于一般的块交织算法,其交织特性十分稳定,但是扰乱特性已丧失。
由上面的分析可以看出,调整平滑系数γ可以调节各个块的变化幅度,从而在交织特性与扰乱特性之间寻求平衡。γ越大,交织特性越稳定,扰乱特性越差;反之,γ越小,交织特性越不稳定,扰乱特性越好。因而,要保持置换算法的交织特性,应当使分块尽量的均匀。当然,这会弱化置换的随机性,降低加密的强度。为此,本发明在分块长度计算式(式2-3)中引入了平滑系数γ。γ直接影响着分块的长度变化幅度与分块的平均长度之间的比例。γ增大,各块长度间的相对差异缩小,能提供更好的交织特性,但同时也降低了置换扰乱的效果。
在前面描述的例子中,明文序列P经过置换得到的新的序列P’如图 9所示,可以看到置换后的序列有规律的交织。假设其中的第五行数据丢失,则经过反置换后得到的序列如图10所示。可见,一行的错误被分散到五行中,这样在视频解码的时候,错误被分散,导致的视觉效果恶化被削弱,同时,如果采取错误隐藏,则错误分散之后,会更加有效。
流加密操作以比特为基本单位,针对置换加密之后的加密单元实施。以密钥作为种子,使用流密码生成器产生与加密单元等长的密码本,然后用密码本与待加密数据进行位异或运算,得到密文数据。可以采用RC4算法或其它通用的流加密算法,如A5等。RC4和A5算法均遵从图1中所示的流密码框架,只是定义了各自不同的伪随机序列发生器,本发明对使用的伪随机序列发生器的算法没有特别的规定,具体实现时,可依据安全性要求和复杂度要求选用合适的伪随机序列发生器。
本发明采用置换加密后,使媒体数据具有了良好的交织特性(交织是一种控制差错的编码思想,将数据交替排列,以分散突发性的误码错误)。实施时,相邻的密文数据字节经过置换解密的映射后,会保持一定的距离。因此,当传输的密文数据发生相对集中的突发性错误时,经过接收端的置换解密操作,错误会被分散,从而视觉效果的恶化被削弱,同时,有利于接收端在解码过程中实施错误隐藏技术,对视觉效果进行补偿。
本发明采用的置换加密和流加密均不会引入数据位之间的相关性,这使得对一个数据位的解密不依赖于其它数据位的值。因此,当码流在传输中出现误码时,接收端实施解密不会造成位错误的蔓延。本方案的这一特性特别适用于无线环境下的媒体保密传输。
本发明联合使用流加密和置换加密能有效的抵抗已知明文的攻击。设置换操作为P,流加密操作为S,两个操作均为线性的,加密操作E可等效的视为:C=E(P)=S(P(P))。当攻击者获得“明文-密文对”(C-P)后,由于不知道密钥,难以计算P(P),也即难以获得P或者S操 作的“明文-密文对”,因此无法针对P和S直接实施已知明文的攻击。
P和S指代置换解密操作和流解密操作,两个操作的方法是公开的,但是实际流程是由密钥决定的。因此,如果不知道密钥,就无法实现这两个操作,也就无法解密。
本发明的加密方法可视为置换算法和流加密算法的线性叠加,置换算法和流加密算法的先后次序不会影响加密和解密结果。本文为了方便描述,将置换加密放置于流加密之前、置换解密放置于流解密之后,但具体实现上,置换加密与流加密、置换解密与流解密的次序是可以调整的。流加密和置换加密是采用的同一密钥,可以先流加密,再置换加密,这与先置换加密再流加密的结果是一样的。相应地,要求解密端先置换解密,再流解密。
本领域技术人员不脱离本发明的实质和精神,可以有多种变形方案实现本发明,以上所述仅为本发明较佳可行的实施例而已,并非因此局限本发明的权利范围,凡运用本发明说明书及附图内容所作的等效变化,均包含于本发明的权利范围之内。
Claims (10)
1.一种流媒体传输码流的加密方法,其特征在于,发送端进行加密发送的步骤包括:
S1、对流媒体码流进行编码压缩并进行分包,选取分包后的若干个流媒体数据包组成一个加密单元;
S2、对加密单元中的数据分别进行置换加密和流加密;
S3、对加密单元中的数据再次进行分包,并依次编号,记录数据包在加密单元中的位置;
S4、对分包后的数据包进行发送。
2.根据权利要求1所述的流媒体传输码流的加密方法,其特征在于:所述的置换加密先根据密钥确定加密单元的分块规则,然后将加密单元中的数据依次填充入块中,再将各块依次串联排列,按与填充次序相正交的次序从块中提取数据,组成置换后的加密单元。
3.根据权利要求2所述的流媒体传输码流的加密方法,其特征在于:在进行置换加密时,根据密钥确定加密单元的分块规则,通过控制分块的长度变化幅度与平均块长的比例,平衡加密媒体数据的交织特性和扰乱特性。
4.根据权利要求1、2或3所述的流媒体传输码流的加密方法,其特征在于:所述的流加密以比特为基本单位,以密钥作为种子,使用流密码生成器产生与加密单元等长的密码本,然后用密码本与待加密数据进行位异或运算,得到密文数据。
5.根据权利要求1、2或3所述的流媒体传输码流的加密方法,其特征在于:对采用H.264标准的视频媒体数据,从网络抽象层单元序列中选取连续的若干个网络抽象层单元组成一个加密单元。
6.根据权利要求5所述的流媒体传输码流的加密方法,其特征在于:在完成对一个加密单元分别进行置换加密和流加密之后,根据各网络抽象层单元的原始长度,将加密数据依次填充到网络抽象层单元中,并在每个网络抽象层单元头部标识网络抽象层单元所属的加密单元以及在所属的加密单元中的偏移地址。
7.根据权利要求1、2或3所述的流媒体传输码流的加密方法,其特征在于:对采用非H.264标准的视频媒体数据,划分与H.264网络抽象层单元相当的数据片段,由连续的若干数据片段组成一个加密单元。
8.一种流媒体传输码流的解密方法,其特征在于:流媒体传输码流接收端解密流程包括:
T1、从网络接收属于一个加密单元的若干个数据包;
T2、将数据包依据其在加密单元中的编号或位置排列重新组成加密单元;若一个加密单元中的数据包出现丢包,则对丢包数据位进行比特填充;
T3、对所述加密单元中的数据分别进行流解密和置换解密;
T4、将解密的数据组成流媒体数据包。
9.一种流媒体传输码流的加密模块,其特征在于:包括依次连接的包组合模块、置换加密模块、流加密模块、分包与编号模块;
所述的包组合模块选取分包后的若干个流媒体数据包组成一个加密单元;
所述的置换加密模块和流加密模块对加密单元中的数据分别进行置换加密和流加密;
所述的分包与编号模块对加密单元中的数据再次进行分包,并依次编号,记录数据包在加密单元中的位置,然后进行发送。
10.一种流媒体传输码流的解密模块,其特征在于:包括依次连接的包组合模块、流解密模块、置换解密模块和数据组装模块;
所述的包组合模块从网络接收属于一个加密单元的若干个数据包,并将数据包依据其在加密单元中的编号或位置排列重新组成加密单元;若一个加密单元中的数据包出现丢包,则对丢包数据位进行比特填充;
所述的流解密模块和置换解密模块分别对所述加密单元中的数据进行流解密和置换解密;
所述的数据组装模块将解密的数据组成流媒体数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2005101003370A CN1852088B (zh) | 2005-10-13 | 2005-10-13 | 流媒体传输码流的加密解密方法及模块 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2005101003370A CN1852088B (zh) | 2005-10-13 | 2005-10-13 | 流媒体传输码流的加密解密方法及模块 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1852088A CN1852088A (zh) | 2006-10-25 |
CN1852088B true CN1852088B (zh) | 2011-07-27 |
Family
ID=37133559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005101003370A Active CN1852088B (zh) | 2005-10-13 | 2005-10-13 | 流媒体传输码流的加密解密方法及模块 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1852088B (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101051906B (zh) * | 2007-05-14 | 2011-11-23 | 北京大学 | 发送、接收流式媒体的方法及流式媒体认证系统 |
CN102714625A (zh) * | 2010-01-29 | 2012-10-03 | 瑞典爱立信有限公司 | 在网络中通过修改分组中布隆过滤器的分组路由选择 |
TWI448133B (zh) * | 2011-08-22 | 2014-08-01 | Chiou Haun Lee | 使用沙紋圖像通訊之加解密方法 |
CN102624708A (zh) * | 2012-02-23 | 2012-08-01 | 浙江工商大学 | 一种面向云存储的高效数据加密、更新和访问控制方法 |
CN102685129A (zh) * | 2012-05-10 | 2012-09-19 | 苏州阔地网络科技有限公司 | 一种实现信息安全的方法及系统 |
CN103166753B (zh) * | 2013-03-26 | 2015-12-09 | 桂林电子科技大学 | 4个非线性驱动的轻量级流密码加密方法 |
CN103199995A (zh) * | 2013-04-26 | 2013-07-10 | 福建伊时代信息科技股份有限公司 | 一种文件加密的方法和装置 |
CN103581683B (zh) * | 2013-10-18 | 2017-02-08 | 宁波海韦斯智能技术有限公司 | Jpeg图像加密传输方法 |
CN104010301A (zh) * | 2014-06-13 | 2014-08-27 | 曾宪钊 | 用于无线安全通讯的多元随机变码加密算法 |
CN104735457A (zh) * | 2015-03-27 | 2015-06-24 | 南京中新赛克科技有限责任公司 | 一种基于h.264编码的视频加解密方法 |
CN105049877A (zh) * | 2015-06-02 | 2015-11-11 | 阔地教育科技有限公司 | 一种用于直录播互动系统的加密方法及装置 |
CN104883372B (zh) * | 2015-06-19 | 2018-11-16 | 中国电子科技集团公司第五十四研究所 | 一种基于无线自组织网的防欺骗和抗攻击的数据传输方法 |
CN105721147A (zh) * | 2016-03-09 | 2016-06-29 | 中国电子科技集团公司第三十三研究所 | 一种基于分组加密同步信息的自同步序列密码算法 |
CN107294913B (zh) * | 2016-03-31 | 2021-08-27 | 阿里巴巴集团控股有限公司 | 基于http的安全通信方法、服务端及客户端 |
CN107147616B (zh) * | 2017-03-31 | 2019-09-10 | 武汉斗鱼网络科技有限公司 | 数据加密方法及装置 |
WO2019047178A1 (zh) * | 2017-09-08 | 2019-03-14 | 北京小米移动软件有限公司 | 分布式物理层资源映射方法、装置、发送端及接收端 |
CN108235022A (zh) * | 2018-01-29 | 2018-06-29 | 苏州南尔材料科技有限公司 | 一种计算机视频数据处理方法 |
CN109308420B (zh) * | 2018-08-22 | 2023-04-07 | 平安科技(深圳)有限公司 | 一种数据加密方法、终端设备及计算机可读存储介质 |
CN109981217A (zh) * | 2019-01-28 | 2019-07-05 | 北京交通大学 | 一种基于交织分片的安全数据传输方法 |
CN109981249B (zh) * | 2019-02-19 | 2020-09-08 | 吉林大学珠海学院 | 基于拉链式动态散列和nlfsr的加密解密方法及装置 |
CN110446108B (zh) * | 2019-06-28 | 2022-04-22 | 中国传媒大学 | 一种媒体云系统及视频加密、解密方法 |
CN112235607B (zh) * | 2020-09-16 | 2023-04-07 | 浙江大华技术股份有限公司 | 一种数据安全保护方法、装置、设备及存储介质 |
CN114142970B (zh) * | 2021-11-25 | 2024-04-19 | 无锡彼星半导体有限公司 | 一种用于二维阵列数据高速传输的容错传输方法 |
CN116405711B (zh) * | 2023-06-08 | 2023-08-18 | 北京小鸟科技股份有限公司 | 关于实时音视频流加密解密的系统、音视频流加密方法 |
-
2005
- 2005-10-13 CN CN2005101003370A patent/CN1852088B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN1852088A (zh) | 2006-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1852088B (zh) | 流媒体传输码流的加密解密方法及模块 | |
CN103414686B (zh) | 一种支持透明转码的图像数据安全传输系统 | |
Li et al. | PDA: a privacy‐preserving dual‐functional aggregation scheme for smart grid communications | |
CN108429735A (zh) | 一种数据加密方法 | |
CN102208976B (zh) | 基于编码向量加密的安全网络编码方法 | |
CN103746962B (zh) | 一种goose电力实时报文加解密方法 | |
CN102469173A (zh) | 基于组合公钥算法的IPv6网络层可信传输的方法和系统 | |
CN107332657A (zh) | 一种基于区块链数字签名的加密方法及系统 | |
CN110011786A (zh) | 一种高安全的ip保密通信方法 | |
Velasco et al. | Lightweight method of shuffling overlapped data-blocks for data integrity and security in WSNs | |
CN101621376A (zh) | 一种多级加密解密方法、装置及系统 | |
CN102611557A (zh) | 一种基于背包体制的安全网络编码数据传输方法 | |
CN101542962B (zh) | 容许消息数据的非顺序到达的消息完整性的处理方法 | |
CN110098937B (zh) | 一种基于时间戳的数据块关联加密算法 | |
CN101826959B (zh) | 一种面向字节的密钥流生成方法及加密方法 | |
CN107666491A (zh) | 基于对称加密的空地一体化网络的数据传输方法 | |
Robshaw | Block ciphers | |
CN101621661B (zh) | 一种音视频加密解密传输系统 | |
CN101710964B (zh) | Mpeg2传输流数据包的加密和解密方法 | |
CN107147626A (zh) | 一种AES算法与ElGamal算法相结合的加密文件传输方法 | |
CN107172429B (zh) | 基于网络编码的可分级视频流加密方法 | |
US20200204354A1 (en) | A method for sending digital data over a number of channels | |
CN110213257B (zh) | 基于真随机流异或加密的高安全ip保密通信方法 | |
CN106973061A (zh) | 一种基于可逆逻辑电路的aes的外发文件加密方法 | |
CN102571281B (zh) | 一种使用缓存节点的安全网络编码传输方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |