一种在数字电视程序流中实时插入签名和验证签名的方法

文档序号:7952808阅读:359来源:国知局
专利名称:一种在数字电视程序流中实时插入签名和验证签名的方法
技术领域
本发明涉及基于MPEG2(运动图像专家组2)PS(程序流)技术,具体涉及一种在基于MPEG2的程序流中加入数字签名和验证签名的技术。
背景技术
MPEG2标准以及该标准的产品的出现及其迅速发展,无疑给人们的生活带来了深刻的影响。根据统计,在我国,DVD-V的品种、数量连续几年大幅增长,2002年,发行品种比上一年增长249.7%,发行数量增长614.4%,达到1809.69万张;2003年,品种比上年增长69.49%,数量增长168.26%,达到4851.92万张。这种爆炸式的发展趋势表明,DVD-V将会迅速取代VCD成为家庭娱乐的主要载体。
DVD-V技术的发展和市场的扩大,使得制造DVD-V的成本大大减少,制作DVD-V的设备唾手可得。于是一些非法的组织趁虚而入,大量发行含有非法内容的DVD-V碟片,极大地破坏了DVD-V市场的健康发展。然而,对于这种非法DVD-V碟片,目前的DVD-V技术并不能很好地防止,而只能通过立法和人工干预的传统方式去规范市场,这无疑浪费了巨大的人力物力。由于市场的分散性,这种传统的方式很难从根本上制止非法DVD-V的制作和从市场上彻底清除DVD-V碟片。即使在市场上查出这种非法的DVD-V碟片,也很难追溯出制作出这些碟片的组织。
另外,一些非法机构未经允许,擅自录制付费电视台提供的节目,制作成DVD-V碟片,大量销售,从而构成对电视节目提供商的版权的侵犯。一些其他形式的转录DVD-V碟片的行为也使得原作品的版权受到侵害。而对于这种行为,也很难追查出侵权的机构。同样,现有的技术和传统的方法很难防止这些违法的行为。

发明内容
本发明致力于提供一种在PS(程序流)流中加入数字签名的方法,并配合DVD-V播放机生产厂商在其产品中加入数字签名验证模块,可以达到阻止非授权机构生产非法DVD-V碟片的目的,并有效地防止数字电视的有偿接收内容被非法复制到DVD-V碟片上而大肆传播。
本发明的上述目的是通过如下的技术方案予以实现的一种在Mpeg2程序流中实时插入签名的方法包含A、首先,签名端获取程序流的信息,所述程序流PS由PS包组成,所述PS包由多个打包基本流PES包构成,所述PES包至少包含音频PES包,视频PES包,数据PES包和包含映射表的PES包;然后以包含设定数目基本PES包的程序流为一段,对该段程序流中的基本PES包进行签名,并且把签名插入程序流中并发送。
步骤A中所述插入签名为一段程序流发送完成后,将对该段程序流的签名结果打包成签名PES包,并紧接在该段程序流之后发送出去,签名PES包发送完成后再继续发送下一段程序流。
所述步骤A包括以下步骤A1、签名端由最初始接收到的一段程序流中包含节目映射表的程序流PES包中获取程序流的信息;A2、以设定数目基本PES包的程序流为一段,把该段中的PES包发送出去,并且发送头PES包作为分段的标识;把该段程序流中的基本PES包放入哈希运算单元;A3、对哈希运算单元中的基本PES包进行哈希运算,并对哈希运算结果进行签名,把签名结果打包成签名PES包,紧接在该段程序流之后发送出去;A4、进行下一段程序流处理,步骤同所述步骤A2和步骤A3。
一种在PS流中实时验证签名的方法包含
B、首先,验证端获取程序流的信息,所述程序流至少包含音频PES包、视频PES包、数据PES包、头PES包、签名PES包和包含节目映射表的PES包;然后提取一段程序流的签名,对该段程序流进行验证。
步骤B中所述提取一段程序流的签名并对该签名进行验证为一段程序流发送出去后,用随后接收到的所述程序流段签名PES包中的签名数据对该段程序流进行验证,如果验证通过,继续发送一下段程序流;如果验证没有通过,下一段程序流段不再发送。
所述步骤B包括以下步骤B1、验证端由最初始接收到的一段程序流中包含节目映射表的PES包获取程序流的信息;B2、获取头PES包,然后以包含设定数目PES包的程序流为一段,把该程序流的PES包发送出去,并把该段程序流的基本PES包放入哈希运算单元,并进行哈希运算;然后查看下一个包是否是签名PES包,如果是签名PES包,接收签名PES包并且验证哈希运算单元中的哈希运算结果是否正确,如果不是签名PES包,清空哈希运算单元,重新获取标志一段程序流起始的头PES包,然后接收设定数目的基本PES包等待验证,所述基本PES包不发送出去,直到基本PES包验证通过,才继续发送后续收到的基本PES包。
所述步骤B之后进一步包括验证端获取标志一段程序流起始的头PES包,然后接收设定数目的基本PES包等待验证,所述基本PES包不发送出去,直到基本PES包验证通过,才继续发送后续收到的基本PES包。
综上,本发明实现了一种在PS流中加入数字签名和验证签名的方法。
该方法利用了MPEG2标准的可扩展性,核心思想是在原PS流中增加一路自定义基本流来传输数字签名和证书。这种方法安全、难以攻破,因为非法机构无法制造能在改进的DVD-V播放机上使用的DVD-V碟片,也无法在合法的DVD-V碟片上做修改和加入非法内容。
在DVD-V碟片中加入数字签名后,没有经过改进的DVD-V播放机仍能播放。这是为了保护已经购买了原有DVD-V播放机的大量用户的投资。很显然,对于改进的DVD-V播放机来说,加入了合法数字签名的DVD-V碟片应该能毫无影响地播放。新型的DVD-V播放机不能继续播放原有没有加入数字签名的DVD-V碟片。
另外,加入和验证数字签名只需要利用PS包和PES的结构和关系,在程序流中加入一种新的基本PES包——签名PES包,而不需要对程序流做其他改动,所以实现简单。DVD-V碟片制作端,只需要增加一台签名设备,在程序流写入碟片之前进入签名设备进行签名;DVD-V碟片播放端,只需要在DVD-V碟片播放机中增加数字签名验证模块,DVD-V碟片中程序流播放之前先在数字签名验证模块中进行验证,所以对现有设备和技术做的改动很少,成本低。


图1是根据本发明的在程序流中加入签名的方案图。
图2是根据本发明的对程序流验证签名的方案图。
图3是根据本发明的在程序流中加入签名的实施例图。
图4是根据本发明的对程序流验证签名的实施例图。
图5是根据本发明的签名PES包的格式图。
具体实施例方式
下面结合附图和具体实施例对本发明进行详细说明。
为了实现在DVD-V碟片中插入签名以及验证签名的方法,本发明提出,在全国建立一套用于DVD-V的CA(证书认证机构)系统,以及在现有的DVD-V制作设备和播放设备中做少许的改进。在全国建立一套DVD-V CA系统,由政府部门掌握根CA,该根CA向各个合法注册的DVD-V制作厂商颁发数字证书,当然根据效率的需要,也可以建立多级CA的机制。持有合法数字证书的DVD-V制作厂商在制作DVD-V碟片时,使用私钥对程序流分段进行签名,并且在碟片中插入数字证书和数字签名。插入的方法为,把数字证书和数字签名打包成标准的程序流PES包——签名PES包,在一段被签名的程序流发送出去之后发送该段程序流的签名PES包。该插入方法对于现有播放机是无扰的,也就是说,该碟片在未经过改进的DVD-V播放机上仍然能够使用。制作DVD-V播放机的厂商需要改进现有的DVD-V播放机。在改进的DVD播放机中,加入了数字签名验证模块,对于未经过签名或签名错误的碟片,播放机拒绝播放。所述数字签名验证模块可位于DVD播放机的播放模块之前,即数字签名模块先接收程序流,对其进行验证,程序流通过验证后,才会被发送至播放模块。通过迅速建立全国DVD-V CA系统、强制DVD-V制作厂商在碟片中加入数字签名和证书、强制DVD-V播放机生产厂商加入数字签名验证模块,从而逐步形成规范、健康的DVD-V市场。
图1是根据本发明的在程序流中加入签名的方案图。
在DVD-V碟片制作端中的签名设备中,初始接收程序流时,通过分析最初始接收到的包含映射表的程序流PES包,获取程序流的信息由包含映射表的程序流PES包得知程序流中音频PES包、视频PES包和数据PES包的stream id(包标识)。stream id是同一种类型基本PES包的唯一标识。例如在一个节目的PS流中,所有视频数据的PES包都具有相同的stream id。
然后以特定数目基本PES包为一段程序流,把该段程序流中的包发送出去;并且通过发送头PES包作为对程序流分段的标记;将该段程序流的基本PES包放入哈希运算单元。
一段程序流发送完成后,对哈希运算单元中的基本PES包进行哈希运算,并且对哈希运算结果进行签名。
最后,把签名打包成签名PES包,发送出去。
图2是根据本发明的对程序流验证签名的方案图。
在DVD-V碟片播放机的数字签名验证模块中,首先由最初始接收到的一段程序流中包含映射表的程序流PES包,获取程序流的信息,具体获取方式与图1中所描述的相同,因此不再赘述;然后获取标志一段程序流起始的头PES包;接下来以包含特定数目基本PES包的程序流为一段,把一段程序流的包发送出去,并把该段程序流的基本PES包放入哈希运算单元;一段程序流发送完成后,对哈希运算单元中的基本PES包进行哈希运算。然后查看下一个包是否是签名PES包;如果是签名PES包,接收签名PES包,并且用签名PES包内的签名验证哈希运算单元中的哈希运算结果是否正确,如果正确,继续获取标志一段程序流起始的头PES包,并进行后续处理,如果不正确,清空哈希运算单元,重新获取标志一段程序流起始的头PES包,然后接收特定数目的基本PES包等待验证,所述基本PES包不发送出去,直到基本PES包验证通过,才继续发送后续收到的基本PES包;如果不是签名PES包,清空哈希运算单元,重新获取标志一段程序流起始的头PES包,然后接收特定数目的基本PES包等待验证,所述基本PES包不发送出去,直到基本PES包验证通过,才继续发送后续收到的基本PES包。
图3是根据本发明的在程序流中加入签名的实施例图。
在DVD-V碟片制作端中的签名设备中,首先根据各PES包的识别字段stream id,查看收到的包是否为包含映射表的程序流PES包。如果不是包含映射表的程序流PES包,丢弃该包;如果是,读取包中的内容,然后把所述包含映射表的程序流PES包发送出去。通过读取映射表中的信息得知所述程序流中音频、视频以及数据的PES包的stream id。
继续接收程序流,对收到的包进行分析,收到的包如果是一段程序流中的第一个基本PES包(音频PES包、视频PES包、数据PES包之一或任意的组合),则发送一个标志起始签名位置的头PES包,然后把所述基本PES包输入哈希运算单元,并且把所述基本PES包发送出去。收到的基本PES包如果不是一段程序流中的第一个基本PES包,则把所述基本PES包输入哈希运算单元,并且把所述基本PES包发送出去。如果收到的是包含映射表的程序流PES包则修改映射表,在映射表里除了音频、数据、视频数据类型外再增加一项——附加数据类型及其stream id记录。签名PES包和头PES包的stream id都为映射表中记录的附加包stream id,通过该stream id可以在程序流中找到签名PES包和头PES包。至于签名PES包和头PES包的区分,可以通过包内的其他字段来实现,具体描述可参见图5的说明。将修改完的包含映射表的程序流PES包发送出去。如果接收到的包是除包含映射表的程序流PES包和音频、视频以及数据之外的PES包,直接发送出去。重复上述步骤,直到接收到一定数目(可以为150个、200个等)的基本PES包为止。然后把所述输入哈希运算单元的特定数目的基本PES包进行哈希运算,得到的结果再进行签名,可以使用RSA(一种非对称加密算法)算法。把签名结果连同DVD-V碟片制作商的证书打包成标准的程序流PES包作为签名PES包,然后发送出去。
然后继续接收下一段程序流,按照与前一段程序流相同的方式进行处理。
图4是根据本发明的对程序流验证签名的实施例图。
在DVD-V碟片播放机的数字签名验证模块中,首先根据各PES包的识别字段stream id,查看收到的包是否为包含映射表的程序流PES包。如果不是,丢弃该包;如果是包含映射表的程序流PES包,读取包中的内容,然后把所述包含映射表的程序流PES包发送出去。通过读取包中的内容,得知音频PES包、视频PES包、数据PES包以及签名PES包和头PES包的stream id。继续接收程序流,如果接收到的是包含映射表的程序流PES包,则发送出去;接收到的是该路节目的音频PES包、视频PES包、数据PES包以及签名PES包则丢弃;一直接收包,直到接收到一个头PES包为止,把接收到的头PES包发送出去。然后继续接收包,如果接收到的是该路节目的音频PES包、视频PES包或数据PES包,放入哈希运算单元,并且把所述包发送出去;如果接收到的是包含映射表的程序流PES包,直接发送出去。直到接收到所述节目特定数目的基本PES包为止,对哈希运算单元中的基本PES包进行哈希运算。继续接收包,如果收到的是签名PES包,则把签名PES包中的签名结果和DVD-V碟片制作商的证书提取出来,对所述证书和哈希运算结果进行验证。如果验证通过,则继续接收程序流按照上述步骤进行后续操作;如果验证不通过,则后续接收到的一定数量的基本数据PES包只做哈希运算,而不发送出去,直到哈希运算结果验证通过,再开始后续操作,把后续收到的程序流发送出去。如果接收到的包不是签名PES包,则把接收到的包丢弃,直到接收到一个头PES包为止。然后把头PES包发送出去,后续接收到的该路节目一段程序流的基本PES包做哈希运算但是不再发送出去,直到哈希运算结果验证正确,再开始后续操作,把后续收到的程序流发送出去。
图5是根据本发明的签名PES包的格式图。
最开始的24bits为PES包的start prefix(前缀)。stream id是在修改PS流映射表时确定的。PES_pack_length(包长度)表示从该字段到该PES包结束的字节数。type(包类型)为了区分数字证书和签名PES包,另外,为了在验证签名时能同步地正确地按加入签名时的顺序,每200个进行一次验证,需要引入另外一种包,称为附加头PES包。因此附加基本流共有三种PES包头包,签名包,证书包。type可以如下规定

data bytes(数据)为包的内容,如果为头包,可以填入若干字节0xFF。如果为签名包,即把签名的结果依次填入该字段,如果为证书,则把证书字节依次填入该字段。CRC32(循环冗余校正码)是从type开始到data bytes结束的CRC32校验值,加入该校验的目的是为了保证这些关键包的正确性。
上面介绍了一种利用程序流中PS包和PES包的格式以及PES包间的关联关系在DVD-V碟片中的PS流里插入数字签名的方法。可以广泛的使用在所有需要对程序流进行签名插入和验证的系统中。持有合法数字证书的DVD-V制作厂商在制作DVD-V碟片时,在碟片中插入数字证书和数字签名。在改进的DVD播放机中,加入了数字签名验证模块,对于未经过签名或签名错误的碟片,播放机拒绝播放。通过建立全国DVD-V CA系统、强制DVD-V制作厂商在碟片中加入数字签名和证书、强制DVD-V播放机生产厂商加入数字签名验证模块,从而逐步形成规范、健康的DVD-V市场。
因此可以理解,上述仅仅是对本发明精神的展示,而不是限制。
权利要求
1.一种在运动图像专家组Mpeg2程序流中实时插入签名的方法,其特征在于,该方法包含A、首先,签名端获取程序流的信息,所述程序流PS由PS包组成,所述PS包由多个打包基本流PES包构成,所述PES包至少包含音频PES包,视频PES包,数据PES包和包含映射表的PES包;然后以包含设定数目基本PES包的程序流为一段,对该段程序流中的基本PES包进行签名,并且把签名插入程序流中并发送。
2.根据权利要求1所述的方法,其特征在于,步骤A中所述插入签名为一段程序流发送完成后,将对该段程序流的签名结果打包成签名PES包,并紧接在该段程序流之后发送出去,签名PES包发送完成后再继续发送下一段程序流。
3.根据权利要求2所述的方法,其特征在于,所述步骤A包括以下步骤A1、签名端由最初始接收到的一段程序流中包含节目映射表的程序流PES包中获取程序流的信息;A2、以设定数目基本PES包的程序流为一段,把该段中的PES包发送出去,并且发送头PES包作为分段的标识;把该段程序流中的基本PES包放入哈希运算单元;A3、对哈希运算单元中的基本PES包进行哈希运算,并对哈希运算结果进行签名,把签名结果打包成签名PES包,紧接在该段程序流之后发送出去;A4、进行下一段程序流处理,步骤同所述步骤A2和步骤A3。
4.一种在PS流中实时验证签名的方法,其特征在于,该方法进包括B、首先,验证端获取程序流的信息,所述程序流至少包含音频PES包、视频PES包、数据PES包、头PES包、签名PES包和包含节目映射表的PES包;然后提取一段程序流的签名,对该段程序流进行验证。
5.根据权利要求4所述的方法,其特征在于,步骤B中所述提取一段程序流的签名并对该签名进行验证为一段程序流发送出去后,用随后接收到的所述程序流段签名PES包中的签名数据对该段程序流进行验证,如果验证通过,继续发送一下段程序流;如果验证没有通过,下一段程序流段不再发送。
6.根据权利要求5所述的方法,所述步骤B包括以下步骤B1、验证端由最初始接收到的一段程序流中包含节目映射表的PES包获取程序流的信息;B2、获取头PES包,然后以包含设定数目PES包的程序流为一段,把该程序流的PES包发送出去,并把该段程序流的基本PES包放入哈希运算单元,并进行哈希运算;然后查看下一个包是否是签名PES包,如果是签名PES包,接收签名PES包并且验证哈希运算单元中的哈希运算结果是否正确,如果不是签名PES包,清空哈希运算单元,重新获取标志一段程序流起始的头PES包,然后接收设定数目的基本PES包等待验证,所述基本PES包不发送出去,直到基本PES包验证通过,才继续发送后续收到的基本PES包。
7.根据权利要求5或6所述的方法,其特征在于,所述步骤B之后进一步包括验证端获取标志一段程序流起始的头PES包,然后接收设定数目的基本PES包等待验证,所述基本PES包不发送出去,直到基本PES包验证通过,才继续发送后续收到的基本PES包。
全文摘要
本发明公开了一种在MPEG2(运动图像专家组2)程序流里加入数字签名和验证签名的技术。该方法利用程序流中PS(程序流)包和PES(打包基本流)包的格式以及PES包间的关联关系,对程序流分段签名,并将签名插入到程序流中,在程序流播放时验证签名。
文档编号H04N7/24GK101026746SQ20061000814
公开日2007年8月29日 申请日期2006年2月22日 优先权日2006年2月22日
发明者尚铭, 荆继武, 许良玉, 王晶 申请人:中国软件与技术服务股份有限公司, 中国科学院研究生院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1