发明内容
本发明实施例所要解决的技术问题在于,提供一种节目录制方法、录制节目的回放方法及机顶盒,能够防止对录制的节目的随意拷贝,对录制的节目的版权实现有效地保护。
为了解决上述技术问题,本发明实施例提供了一种节目录制方法,包括:
当接收到用户的节目录制请求时,机顶盒生成所请求录制的节目的元数据文件,所述元数据文件包括:M字节长度的第一随机数;
所述机顶盒采用预置的第一密钥对所述第一随机数进行对称加密,获得M字节长度的第二随机数;
所述机顶盒采用预置的第二密钥对所述元数据文件进行HASH(哈希或散列)加密,获得所请求录制的节目的录制校验文件;
所述机顶盒将所述第二随机数作为第三密钥,对所请求录制的节目的传输流TS流进行对称加密,获得TS流文件;
所述机顶盒将所述元数据文件、录制校验文件及TS流文件写入存储设备中。
其中,所述元数据文件包括:M字节长度的第一随机数;
所述当接收到用户的节目录制请求时,机顶盒生成所请求录制的节目的元数据文件,包括:
当接收到用户的节目录制请求时,机顶盒生成一个M字节长度的第一随机数;
所述机顶盒将所述M字节长度的第一随机数作为所请求录制的节目的元数据文件。
其中,所述元数据文件包括:M字节长度的第一随机数及所请求录制的节目的失效时间;
所述当接收到用户的节目录制请求时,机顶盒生成所请求录制的节目的元数据文件,包括:
当接收到用户的节目录制请求时,机顶盒生成一个M字节长度的第一随机数;
所述机顶盒从服务器下发的节目流中获取当前时间戳;
所述机顶盒根据所述当前时间戳及预设的有效时长,计算得到所请求录制的节目的失效时间;
所述机顶盒对所述第一随机数和所请求录制的节目的失效时间进行封装,形成所请求录制的节目的元数据文件。
其中,所述当接收到用户的节目录制请求时,机顶盒生成所请求录制的节目的元数据文件之前,还包括:
机顶盒预先设置第一密钥和第二密钥,包括:
机顶盒获取当前机顶盒的ID(Identity,标识号码),所述ID为N字节长度;
所述机顶盒根据预设的第一规则对当前机顶盒的ID进行数据填充,生成M字节长度的第一密钥;
所述机顶盒根据预设的第二规则对当前机顶盒的ID进行数据填充,生成M字节长度的第二密钥;
其中,所述M的值大于N的值。
相应地,本发明实施例还提供了一种录制节目的回放方法,包括:
当接收到用户的录制节目回放请求时,机顶盒从存储设备中读取所请求回放的录制节目的元数据文件、录制校验文件及TS流文件;
所述机顶盒采用预置的第二密钥对所述元数据文件进行HASH加密,获得所请求回放的录制节目的回放校验文件;
所述机顶盒将所述回放检验文件与读取的所述录制校验文件进行匹配,若匹配成功,所述机顶盒则解析所述元数据文件,获得M字节长度的第一随机数;
所述机顶盒采用预置的第一密钥对所述第一随机数进行对称加密,获得M字节长度的第二随机数;
所述机顶盒将所述第二随机数作为第三密钥,对所述TS流文件进行对称解密,获得所请求回放的录制节目的TS流;
所述机顶盒播放所请求回放的录制节目的TS流。
其中,所述机顶盒解析所述元数据文件,还获得所请求回放的录制节目的失效时间;
所述机顶盒解析所述元数据文件之后,采用预置的第一密钥对所述第一随机数进行对称加密之前,还包括:
所述机顶盒获取当前系统时间;
所述机顶盒将当前系统时间与所请求回放的录制节目的失效时间相比对,若当前系统时间未达到所请求回放的录制节目的失效时间,所述机顶盒则执行对所述第一随机数进行对称加密的步骤。
其中,所述机顶盒从存储设备中读取所请求回放的录制节目的元数据文件、录制校验文件及TS流文件之前,还包括:
机顶盒预先设置第一密钥和第二密钥,包括:
机顶盒获取当前机顶盒的ID,所述ID为N字节长度;
所述机顶盒根据预设的第一规则对当前机顶盒的ID进行数据填充,生成M字节长度的第一密钥;
所述机顶盒根据预设的第二规则对当前机顶盒的ID进行数据填充,生成M字节长度的第二密钥;
其中,所述M的值大于N的值。
其中,所述机顶盒预先设置第一密钥和第二密钥之后,从存储设备中读取所请求回放的录制节目的元数据文件、录制校验文件及TS流文件之前,还包括:
当接收到用户的录制节目回放请求时,机顶盒检测存储设备中是否包含所请求回放的录制节目的元数据文件、录制校验文件及TS流文件;
若检测结果为是,所述机顶盒则执行读取步骤。
相应地,本发明实施例还提供了一种机顶盒,包括:
元数据生成模块,用于当接收到用户的节目录制请求时,生成所请求录制的节目的元数据文件,所述元数据文件包括:M字节长度的第一随机数;
随机数加密模块,用于采用预置的第一密钥对所述元数据生成模块生成的元数据文件中包括的第一随机数进行对称加密,获得M字节长度的第二随机数;
元数据加密模块,用于采用预置的第二密钥对所述元数据生成模块生成的元数据文件进行哈希HASH加密,获得所请求录制的节目的录制校验文件;
TS流加密模块,用于将所述随机数加密模块获得的第二随机数作为第三密钥,对所请求录制的节目的TS流进行对称加密,获得TS流文件;
录制模块,用于将所述元数据生成模块生成的元数据文件、所述元数据加密模块获得的录制校验文件及所述TS流加密模块获得的TS流文件写入存储设备中。
其中,所述机顶盒还包括:预置模块,用于预先设置第一密钥和第二密钥;
所述预置模块包括:
获取单元,用于获取当前机顶盒的ID,所述ID为N字节长度;
第一预置单元,用于根据预设的第一规则对当前机顶盒的ID进行数据填充,生成M字节长度的第一密钥;
第二预置单元,用于根据预设的第二规则对当前机顶盒的ID进行数据填充,生成M字节长度的第二密钥;
其中,所述M的值大于N的值。
其中,所述元数据文件包括:M字节长度的第一随机数;
所述元数据生成模块包括:
随机数生成单元,用于当接收到用户的节目录制请求时,生成一个M字节长度的第一随机数;
元数据生成单元,用于将所述随机数生成单元生成的第一随机数作为所请求录制的节目的元数据文件。
其中,所述元数据文件包括:M字节长度的第一随机数及所请求录制的节目的失效时间;
所述元数据生成模块包括:
随机数生成单元,用于当接收到用户的节目录制请求时,生成一个M字节长度的第一随机数;
时间戳获取单元,用于从服务器下发的节目流中获取当前时间戳;
失效时间计算单元,用于根据所述时间戳获取单元获取的当前时间戳,及预设的有效时长,计算得到所请求录制的节目的失效时间;
元数据生成单元,用于对所述随机数生成单元生成的第一随机数和所述失效时间计算单元计算得到的所请求录制的节目的失效时间进行封装,形成所请求录制的节目的元数据文件。
相应地,本发明实施例还提供了一种机顶盒,包括:
读取模块,用于当接收到用户的录制节目回放请求时,从存储设备中读取所请求回放的录制节目的元数据文件、录制校验文件及TS流文件;
元数据加密模块,用于采用预置的第二密钥对所述读取模块读取的元数据文件进行HASH加密,获得所请求回放的录制节目的回放校验文件;
匹配模块,用于将所述元数据加密模块获得的回放检验文件与所述读取模块读取的录制校验文件进行匹配;
解析模块,用于当所述匹配模块匹配成功时,解析所述读取模块读取的元数据文件,获得M字节长度的第一随机数;
随机数加密模块,用于采用预置的第一密钥对所述解析模块获得的第一随机数进行对称加密,获得M字节长度的第二随机数;
TS流解密模块,用于将所述随机数加密模块获得的第二随机数作为第三密钥,对所述读取模块读取的TS流文件进行解密,获得所请求回放的录制节目的TS流;
回放模块,用于播放所述TS流解密模块解密后的TS流。
其中,所述解析模块解析所述元数据文件,还获得所请求回放的录制节目的失效时间;
所述机顶盒还包括:
时间获取模块,用于获取当前系统时间;
比对模块,用于将所述时间获取模块获取的当前系统时间与所请求回放的录制节目的失效时间相比对,若当前系统时间未达到所请求回放的录制节目的失效时间,则通知所述随机数加密模块对所述第一随机数进行对称加密。
其中,所述机顶盒还包括:检测模块,用于检测存储设备中是否包含所请求回放的录制节目的元数据文件、录制校验文件及TS流文件,若检测结果为是,则通知所述读取模块进行文件的读取。
实施本发明实施例,具有如下有益效果:
本发明实施例在节目录制时,采用预置的第二密钥对元数据文件进行加密,采用预置的第一密钥对第一随机数进行加密得到第三密钥,最后采用第三密钥对请求录制的节目的TS流进行加密;在节目录制时进行三次加密操作,可有力保护请求录制的节目的安全性;另外,对所请求录制的节目的TS流利用第一随机数加密后得到的第二随机数作为密钥进行加密,随机数的随机性可保证每次节目录制时的密钥均不相同,从而加大了破解难度,更有效地保证请求录制的节目的安全性;
本发明实施例对录制节目进行回放时,由当前机顶盒采用预置的第一密钥和第二密钥进行相应的加解密操作来实现对录制节目的回放,由于第一密钥和第二密钥均由当前机顶盒的ID依据预设的规则形成,若当前机顶盒并非节目录制时的机顶盒,则二者的ID不同,当前机顶盒无法获得正确的密钥来进行回放操作,此处即可实现对当前机顶盒的权限验证,从而防止录制节目被随意播放,保护了录制节目的版权,保证了节目的安全性。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明的机顶盒的第一实施例的结构示意图;所述机顶盒包括:
元数据生成模块101,用于当接收到用户的节目录制请求时,生成所请求录制的节目的元数据文件,所述元数据文件包括:M字节长度的第一随机数。
用户可通过按压机顶盒遥控器上的PVR功能键或节目录制功能键,向机顶盒发送节目录制请求。所述元数据生成模块101在接收到用户的节目录制请求时,生成所请求录制的节目的元数据文件,其中,该元数据文件包括:M字节长度的第一随机数R。需要说明的是,所述元数据生成模块101可包括随机数生成器,该随机数生成器实时生成多个M字节长度的随机数,当接收到用户的节目录制请求时,所述元数据生成模块101则从中获取一个M字节长度的随机数作为第一随机数R。
具体实现中,所述元数据生成模块101还包括:所请求录制的节目的失效时间Time_over。在节目录制时,可设定所请求录制的节目的有效时长,比如:设置有效时长为X小时,即所请求录制的节目在X小时内有效,超过X小时,该节目过期,无法在任何一个机顶盒或其他媒体设备中播放;所请求录制的节目的失效时间Time_over即为录制时刻加上有效时长X小时得到。具体地,所述机顶盒从服务器下发的节目码流中获取当前时间戳Time_cur,根据预设的有效时长X小时,计算得到所请求录制的节目的失效时间Time_over为:Time_over=Time_cur+X;当当前系统时间到达Time_over时间时,所请求录制的节目过期,无法再被任何一个机顶盒或其他媒体设备播放,用户无法再观看该请求录制的节目。所述元数据生成模块101将第一随机数R以及Time_over一并封装,形成所请求录制的节目的元数据文件info.dat。
随机数加密模块102,用于采用预置的第一密钥对所述元数据生成模块101生成的元数据文件中包括的第一随机数进行对称加密,获得M字节长度的第二随机数。
所述随机数加密模块102可基于对称加密算法,比如:AES(Advanced Encryption Standard,高级加密标准)算法、DES(Data Encryption Stardard,数据加密标准)算法等等,采用预置的第一密钥K_a对所述第一随机数据R进行加密,其中,K_a为当前机顶盒的ID根据预设的第一规则a进行数据填充后生成,加密后得到M字节长度的第二随机数K_r。
元数据加密模块103,用于采用预置的第二密钥对所述元数据生成模块101生成的元数据文件进行哈希HASH加密,获得所请求录制的节目的录制校验文件。
所述元数据加密模块103可基于HASH加密算法,比如:MD5(Message -Digest Algorithm 5,信息-摘要算法)、SHA-1(Secure Hash Algorithm 1,安全散列算法)等等,采用预置的第二密钥K_b对所述元数据文件info.dat进行加密,获得所请求录制的节目的录制校验文件info.hash。
TS流加密模块104,用于将所述随机数加密模块102获得的第二随机数作为第三密钥,对所请求录制的节目的TS流进行对称加密,获得TS流文件。
所述TS流加密模块104可基于对称加密算法,比如:AES算法、DES算法等等,采用第二随机数K_r作为密钥对所请求录制的节目的TS流进行加密,获得TS流文件program.ts。需要说明的是,由于第一随机数R的随机性,每次节目录制时获得的第二随机数据K_r均不相同,从而保证每次节目录制时所请求节目的TS流所基于的密钥K_r均不相同,加大了破解难度,更有效地保证所请求录制的节目的安全性。
录制模块105,用于将所述元数据生成模块101生成的元数据文件、所述元数据加密模块103获得的录制校验文件及所述TS流加密模块104获得的TS流文件写入存储设备中。
所述存储设备可以为用户对所请求录制的节目的目的存储设备,包括:移动硬盘、U盘等,在用户请求节目录制时,所述存储设备与所述机顶盒相连接。所述录制模块105将所请求录制的节目的元数据文件info.dat、录制校验文件info.hash以及TS流文件program.ts写入存储设备中,即完成了对用户的节目录制请求的响应,完成了节目的录制过程。
本发明实施例在节目录制时,能够防止对录制的节目的随意拷贝,对录制的节目的版权实现了有效地保护。
为了更清楚地说明本发明,下面将对上述的元数据生成模块101进行详细介绍。
请参见图2,为图1所示的元数据生成模块的第一实施例的结构示意图;本实施例中,所述元数据生成模块101生成的元数据文件info.dat仅包括:M字节长度的第一随机数R。所述元数据生成模块101包括:
随机数生成单元11,用于当接收到用户的节目录制请求时,生成一个M字节长度的第一随机数。
如前述,用户可通过按压机顶盒遥控器上的PVR功能键或节目录制功能键,向机顶盒发送节目录制请求。所述随机数生成单元11可包括随机数生成器,该随机数生成器实时生成多个M字节长度的随机数,当接收到用户的节目录制请求时,所述随机数生成单元11则从中获取一个M字节长度的随机数作为第一随机数R。
元数据生成单元12,用于将所述随机数生成单元11生成的第一随机数作为所请求录制的节目的元数据文件。
所述元数据生成单元12将所述随机数生成单元11获得的第一随机数R作为所请求录制的节目的元数据文件info.dat。
请参见图3,为图1所示的元数据生成模块的第二实施例的结构示意图;本实施例中,所述元数据生成模块101生成的元数据文件info.dat包括:M字节长度的第一随机数R及所请求录制的节目的失效时间Time_over。所述元数据生成模块101包括:
随机数生成单元13,用于当接收到用户的节目录制请求时,生成一个M字节长度的第一随机数。
本实施例的所述随机数生成单元13与上一实施例的随机数生成单元11可以为同一单元,其生成第一随机数R的过程可参照上一实施例所述,在此不赘述。
时间戳获取单元14,用于从服务器下发的节目流中获取当前时间戳。
在节目录制时,可设定所请求录制的节目的有效时长,比如:设置有效时长为X小时,即所请求录制的节目在X小时内有效,超过X小时,该节目过期,无法在任何一个机顶盒或其他媒体设备中播放;所请求录制的节目的失效时间Time_over即为录制时刻加上有效时长X小时得到。具体地,所述时间戳获取单元14从服务器下发的节目码流中获取当前时间戳Time_cur,该当前时间戳Time_cur则为录制时刻,即为所请求录制的节目的失效时间Time_over的起算时间。
失效时间计算单元15,用于根据所述时间戳获取单元14获取的当前时间戳,及预设的有效时长,计算得到所请求录制的节目的失效时间。
所述时间戳获取单元14获取的当前时间戳Time_cur,根据预设的有效时长X小时,所述失效时间计算单元15计算得到所请求录制的节目的失效时间为:Time_over=Time_cur+X。当当前系统时间到达Time_over时间时,所请求录制的节目过期,无法再被任何一个机顶盒或其他媒体设备播放,用户也无法再观看该请求录制的节目。
元数据生成单元16,用于对所述随机数生成单元13生成的第一随机数和所述失效时间计算单元15计算得到的所请求录制的节目的失效时间进行封装,形成所请求录制的节目的元数据文件。
所述元数据生成单元16将第一随机数R以及Time_over一并封装,形成所请求录制的节目的元数据文件info.dat。需要说明的是,本实施例的所述元数据生成16与上一实施例的元数据生成单元12可以为两个独立的单元,也可以合并为同一单元。
请参见图4,为本发明的机顶盒的第二实施例的结构示意图;与图1所示实施例相同,所述机顶盒包括:元数据生成模块101、随机数加密模块102、元数据加密模块103、TS流加密模块104及录制模块105。本实施例中,所述机顶盒还包括:
预置模块106,用于预先设置第一密钥和第二密钥。具体实现中,所述第一密钥K_a为当前机顶盒的ID根据预设的第一规则a进行数据填充后生成,所述第二密钥K_b为当前机顶盒的ID根据预设的第二规则b进行数据填充后生成。
请一并参见图5,为图4所示的预置模块的实施例的结构示意图;所述预置模块106包括:
获取单元61,用于获取当前机顶盒的ID,所述ID为N字节长度。
每一个机顶盒唯一对应一个ID号,该ID号用于对机顶盒进行唯一标识;具体地,该ID号在机顶盒出厂时,即被固化于机顶盒的存储器中。在节目录制时,进行所请求节目录制的机顶盒即为当前机顶盒。所述获取单元61从当前机顶盒的存储器中,获取当前机顶盒的ID号。需要说明的是,ID号为N字节长度,其N的具体取值可根据实际需要或具体规范确定。
第一预置单元62,用于根据预设的第一规则对当前机顶盒的ID进行数据填充,生成M字节长度的第一密钥。
所述第一预置单元62根据预设的第一规则a对当前机顶盒的ID进行数据填充,生成M字节长度的第一密钥K_a,其中,所述M的值大于N的值,M的取值可根据实际需要进行确定。需要说明的是,第一规则a可由录制的当前机顶盒与回放机顶盒相互协商确定,或者由节目运营商根据实际需要进行确定。比如:规则a可设为“在ID之前填充数据|00 11 22 33|,则所述第一预置单元62生成的第一密钥K_a为:00 11 22 33 ID。当规则a为其他情况时可类似分析,在此不赘述。
第二预置单元63,用于根据预设的第二规则对当前机顶盒的ID进行数据填充,生成M字节长度的第二密钥。
所述第二预置单元63根据预设的第二规则a对当前机顶盒的ID进行数据填充,生成M字节长度的第二密钥K_b,其中,所述M的值大于N的值,M的取值可根据实际需要进行确定。需要说明的是,第二规则b可由录制的当前机顶盒与回放机顶盒相互协商确定,或者由节目运营商根据实际需要进行确定。比如:规则b可设为“在ID之后填充数据|44 55 66 77|,则所述第二预置单元63生成的第二密钥K_b为:ID 44 55 66 77。当规则b为其他情况时可类似分析,在此不赘述。
需要说明的是,本发明实施例中在节目录制时,将所请求录制的节目通过预置的第一密钥K_a和第二密钥K_b与当前机顶盒相互绑定,与当前机顶盒相绑定的节目仅能在当前机顶盒中进行回放,如果将录制的节目拷贝到另一台机顶盒、或电脑、便携式媒体播放器中,由于每个机顶盒的ID、当前机顶盒与电脑、便携式媒体播放器之间的ID均不相同,采用相同的规则所获得的K_a和K_b也均不相同,拷贝后的节目将无法被解密,从而无法实现播放,有效地防止录制的节目的随意拷贝,有力地保护了录制的节目的版权。
本发明实施例在节目录制时,能够防止对录制的节目的随意拷贝,对录制的节目的版权实现了有效地保护。
请参见图6,为本发明的机顶盒的第三实施例的结构示意图;所述机顶盒包括:
读取模块201,用于当接收到用户的录制节目回放请求时,从存储设备中读取所请求回放的录制节目的元数据文件、录制校验文件及TS流文件。
用户可通过按压机顶盒遥控器上的录制回放功能键,向机顶盒发送录制节目回放请求,其中,所请求回放的录制节目为经图1或图4所示实施例的机顶盒进行录制的节目。所述读取模块201当接收到用户的录制节目回放请求时,从存储设备中读取所请求回放的录制节目的元数据文件、录制校验文件及TS流文件。可以理解的是,在对所请求回放的录制节目进行回放时,进行回放的机顶盒为当前机顶盒。
元数据加密模块202,用于采用预置的第二密钥对所述读取模块201读取的元数据文件进行HASH加密,获得所请求回放的录制节目的回放校验文件。
对录制节目进行回放的机顶盒对第二密钥K_b的预置过程与图5所示实施例的节目录制时的机顶盒的预置模块106的预置过程相同,在此不赘述。需要说明的是,若对录制节目进行回放的当前机顶盒与节目录制时的机顶盒为同一机顶盒,则二者预置的第二密钥K_b相同,否则,二者预置的第二密钥K_b不同。所述元数据加密模块202可基于HASH加密算法,比如:MD5、SHA-1等等,采用预置的第二密钥K_b对所述读取模块201读取的元数据文件info.dat进行加密,获得所请求回放的录制节目的回放校验文件info_to_verify.hash。本实施例的所述元数据加密模块202与图1所示实施例的所述元数据加密模块103所采用的加密算法及加密过程相同,在此不赘述。可以理解的是,若对录制节目进行回放的当前机顶盒与节目录制时的机顶盒为同一机顶盒,则二者预置的第二密钥K_b相同,加密后获得的回放校验文件info_to_verify.hash与录制校验文件info.hash也必定完全一致;否则,加密后获得的回放校验文件info_to_verify.hash与录制校验文件info.hash必定不完全一致。
匹配模块203,用于将所述元数据加密模块202获得的回放检验文件与所述读取模块读取的录制校验文件进行匹配。
所述匹配模块203将所述元数据加密模块202获得的回放检验文件info_to_verify.hash与所述读取模块201读取的录制校验文件info.hash进行匹配,其匹配的具体过程为:判断info_to_verify.hash与info.hash是否完全一致,若二者完全一致,则匹配成功;若二者不完全一致,则匹配失败,此时对录制节目进行回放的当前机顶盒认为所请求回放的录制节目的元数据文件info.dat已被恶意篡改,禁止对所请求回放的录制节目进行回放,停止执行回放的后续步骤。
解析模块204,用于当所述匹配模块203匹配成功时,解析所述读取模块201读取的元数据文件,获得M字节长度的第一随机数。
如前述,若所述元数据文件info.dat仅包括:M字节长度的第一随机数R,所述解析模块204则从info.dat文件中提取第一随机数据R;若所述元数据文件info.dat包括:M字节长度的第一随机数R和所请求回放的录制节目的失效时间Time_over,所述解析模块204则对info.dat文件进行解封装,从中分离出第一随机数R及Time_over。
随机数加密模块205,用于采用预置的第一密钥对所述解析模块204获得的第一随机数进行对称加密,获得M字节长度的第二随机数。
对录制节目进行回放的当前机顶盒对第一密钥K_a的预置过程与图5所示实施例的节目录制时的机顶盒的预置模块106的预置过程相同,在此不赘述。需要说明的是,若对录制节目进行回放的当前机顶盒与节目录制时的机顶盒为同一机顶盒,则二者预置的第一密钥K_a相同,否则,二者预置的第二密钥K_a不同。所述随机数加密模块205可基于对称加密算法,比如:AES算法、DES算法等等,采用预置的第一密钥K_a对所述第一随机数R进行加密,加密后得到M字节长度的第二随机数K_r。本实施例的所述随机数加密模块205与图1所示实施例的所述随机数加密模块102所采用的加密算法及加密过程相同,在此不赘述。可以理解的是,若对录制节目进行回放的当前机顶盒与节目录制时的机顶盒为同一机顶盒,则二者预置的第一密钥K_a相同,加密后获得的第二随机数K_r也必定相同;否则,加密后获得的第二随机数K_r必定不同。
TS流解密模块206,用于将所述随机数加密模块205获得的第二随机数作为第三密钥,对所述读取模块201读取的TS流文件进行解密,获得所请求回放的录制节目的TS流。
所述TS流解密模块206采用第二随机数K_r作为密钥,对TS流文件进行解密,获得所请求回放的录制节目的TS流。所述TS流解密模块206对所请求回放的录制节目的TS流文件的解密过程与图1所示实施例中在节目录制时,所述TS流加密模块104对所请求录制的节目的TS流进行加密的过程互为相逆。可以理解的是,若对录制节目进行回放的当前机顶盒与节目录制时的机顶盒为同一机顶盒,则二者的第二随机数K_r相同,所述TS流解密模块206可成功解密获得TS流;否则,解密失败,无法获得所请求回放的录制节目的TS流。
回放模块207,用于播放所述TS流解密模块206解密后的TS流。具体实现中,所述回放模块207向用户播放解密后的TS流,用户即可观看所请求回放的录制节目。
需要说明的是,每一个机顶盒唯一对应一个ID,经过相同的第一规则a和第二规则b后,每一个机顶盒均唯一对应一个K_a和K_b。若本实施例中对录制节目进行回放的当前机顶盒与节目录制时的机顶盒为同一机顶盒,则二者的K_a和K_b均相同,回放过程中获得的回放检验文件info_to_verify.hash与节目录制过程中获得的录制校验文件info.hash完全一致;回放过程中使用的K_r与节目录制时使用的K_r完全相同,当前机顶盒可成功回放对所请求回放的录制节目,使用户可观看自己所请求回放的录制节目。若本实施例中对录制节目进行回放的当前机顶盒与节目录制时的机顶盒并非同一机顶盒,则二者的K_a和K_b均相同,回放过程中获得的回放检验文件info_to_verify.hash与节目录制过程中获得的录制校验文件info.hash不完全一致;回放过程中使用的K_r与节目录制时使用的K_r也不相同,当前机顶盒对所请求回放的录制节目的回放失败,用户无法观看自己所请求回放的录制节目。
可以理解的是,上述仅为举例,当采用电脑或便携式媒体播放器等其他媒体设备对所请求回放的录制节目进行回放时,其回放过程可类似分析,在此不赘述。
本发明实施例对录制节目进行回放时,对当前机顶盒的权限验证,从而防止录制节目被随意播放,保护了录制节目的版权,保证了节目的安全性。
请参见图7,为本发明的机顶盒的第四实施例的结构示意图;与图6所示实施例相同,所述机顶盒包括:读取模块201、元数据加密模块202、匹配模块203、解析模块204、随机数加密模块205、TS流解密模块206及回放模块207。本实施例中,所述机顶盒还包括:
时间获取模块208,用于获取当前系统时间。
如前述,由于节目录制时可设置录制的节目的有效时长X小时,因此,所请求回放的录制节目可能存在失效时间Time_over,所述时间获取模块208用于获取当前机顶盒的当前系统时间T。
比对模块209,用于将所述时间获取模块208获取的当前系统时间与所请求回放的录制节目的失效时间相比对,若当前系统时间未达到所请求回放的录制节目的失效时间,则通知所述随机数加密模块205对所述第一随机数进行对称加密。
所述比对模块209将当前系统T与所请求回放的录制节目的失效时间Time_over相比对,若T已到达Time_over,则认为所请求回放的录制节目已过期,禁止回放;若T未到达Time_over,则认为所请求回放的录制节目未过期,可以进行回放,所述比对模块209则通知随机数加密模块205进行后续操作。
进一步参见图7,所述机顶盒还包括:
检测模块210,用于检测存储设备中是否包含所请求回放的录制节目的元数据文件、录制校验文件及TS流文件,若检测结果为是,则通知所述读取模块201进行文件的读取。
所述检测模块210在所述读取模块201对文件进行读取之前,检测存储设备中所请求回放的录制节目是否完整,即检测存储设备中是否包含所请求回放的录制节目的元数据文件、录制校验文件及TS流文件,若三个文件中任意一个或多个缺失,则认为所请求回放的录制节目的完整性被破坏,禁止回放;仅当三个文件均完整存在时,才通知所述读取模块201进行文件的读取操作。本实施例在对录制节目读取之前进行完整性检测,可防止录制节目被随意拷贝,保证录制节目的安全性。
本发明实施例对录制节目进行回放时,对当前机顶盒的权限验证,从而防止录制节目被随意播放,保护了录制节目的版权,保证了节目的安全性。
为了更清楚地说明本发明,下面将对本发明的节目录制方法进行详细介绍。
请参见图8,为本发明的节目录制方法的第一实施例的流程图;所述方法包括:
S101,当接收到用户的节目录制请求时,机顶盒生成所请求录制的节目的元数据文件,所述元数据文件包括:M字节长度的第一随机数。
用户可通过按压机顶盒遥控器上的PVR功能键或节目录制功能键,向机顶盒发送节目录制请求。所述S101在接收到用户的节目录制请求时,生成所请求录制的节目的元数据文件info.dat。
请一并参见图9,为图8所示的步骤S101的第一实施例的具体流程图;本实施例中,元数据文件info.dat仅包括:M字节长度的第一随机数R。步骤S101包括:
S11,当接收到用户的节目录制请求时,机顶盒生成一个M字节长度的第一随机数。
所述S11可采用随机数生成器,该随机数生成器实时生成多个M字节长度的随机数,当接收到用户的节目录制请求时,所述S11则从中获取一个M字节长度的随机数作为第一随机数R。
S12,所述机顶盒将所述M字节长度的第一随机数作为所请求录制的节目的元数据文件。
所述机顶盒执行步骤S12时,将所述S11获得的第一随机数R作为所请求录制的节目的元数据文件info.dat。
请一并参见图10,为图8所示的步骤S101的第二实施例的具体流程图;本实施例中,元数据文件info.dat包括:M字节长度的第一随机数R及所请求录制的节目的失效时间Time_over。所述S101包括:
S13,当接收到用户的节目录制请求时,机顶盒生成一个M字节长度的第一随机数。
本实施例的所述S13与上一实施例的S13步骤相同,在此不赘述。
S14,所述机顶盒从服务器下发的节目流中获取当前时间戳。
在节目录制时,可设定所请求录制的节目的有效时长,比如:设置有效时长为X小时,即所请求录制的节目在X小时内有效,超过X小时,该节目过期,无法在任何一个机顶盒或其他媒体设备中播放;所请求录制的节目的失效时间Time_over即为录制时刻加上有效时长X小时得到。具体地,所述S14从服务器下发的节目码流中获取当前时间戳Time_cur,该当前时间戳Time_cur则为录制时刻,即为所请求录制的节目的失效时间Time_over的起算时间。
S15,所述机顶盒根据所述当前时间戳及预设的有效时长,计算得到所请求录制的节目的失效时间。
所述S14获取的当前时间戳Time_cur,根据预设的有效时长X小时,所述S15计算得到所请求录制的节目的失效时间为:Time_over=Time_cur+X。当当前系统时间到达Time_over时间时,所请求录制的节目过期,无法再被任何一个机顶盒或其他媒体设备播放,用户也无法再观看该请求录制的节目。
S16,所述机顶盒对所述第一随机数和所请求录制的节目的失效时间进行封装,形成所请求录制的节目的元数据文件。
所述S16将第一随机数R以及Time_over一并封装,形成所请求录制的节目的元数据文件info.dat。
S102,所述机顶盒采用预置的第一密钥对所述第一随机数进行对称加密,获得M字节长度的第二随机数。
所述S102可基于对称加密算法,比如:AES算法、DES算法等等,采用预置的第一密钥K_a对所述第一随机数据R进行加密,其中,K_a为当前机顶盒的ID根据预设的第一规则a进行数据填充后生成,加密后得到M字节长度的第二随机数K_r。
S103,所述机顶盒采用预置的第二密钥对所述元数据文件进行哈希HASH加密,获得所请求录制的节目的录制校验文件。
所述S103可基于HASH加密算法,比如:MD5、SHA-1等等,采用预置的第二密钥K_b对所述元数据文件info.dat进行加密,获得所请求录制的节目的录制校验文件info.hash。
S104,所述机顶盒将所述第二随机数作为第三密钥,对所请求录制的节目的传输流TS流进行对称加密,获得TS流文件。
所述S104可基于对称加密算法,比如:AES算法、DES算法等等,采用第二随机数K_r作为密钥对所请求录制的节目的TS流进行加密,获得TS流文件program.ts。需要说明的是,由于第一随机数R的随机性,每次节目录制时获得的第二随机数据K_r均不相同,从而保证每次节目录制时所请求节目的TS流所基于的密钥K_r均不相同,加大了破解难度,更有效地保证所请求录制的节目的安全性。
S105,所述机顶盒将所述元数据文件、录制校验文件及TS流文件写入存储设备中。
所述存储设备可以为用户请求录制的存储设备,包括:移动硬盘、U盘等,在用户请求节目录制时,所述存储设备与所述机顶盒相连接。所述S105将所请求录制的节目的元数据文件info.dat、录制校验文件info.hash以及TS流文件program.ts写入存储设备中,即完成了对用户的节目录制请求的响应,完成了节目的录制过程。
本发明实施例在节目录制时,能够防止对录制的节目的随意拷贝,对录制的节目的版权实现了有效地保护。
请参见图11,为本发明的节目录制方法的第二实施例的流程图;所述方法包括:
S201,机顶盒预先设置第一密钥和第二密钥。
请一并参见图12,为图11所示的步骤S201的具体流程图;所述S201包括:
S21,机顶盒获取当前机顶盒的ID,所述ID为N字节长度。
每一个机顶盒唯一对应一个ID号,该ID号用于对机顶盒进行唯一标识;具体地,该ID号在机顶盒出厂时,即被固化于机顶盒的存储器中。在节目录制时,进行所请求节目录制的机顶盒即为当前机顶盒。当前机顶盒执行所述S21,从当前机顶盒的存储器中,获取当前机顶盒的ID号。需要说明的是,ID号为N字节长度,其N的具体取值可根据实际需要或具体规范确定。
S22,所述机顶盒根据预设的第一规则对当前机顶盒的ID进行数据填充,生成M字节长度的第一密钥。
所述S22根据预设的第一规则a对当前机顶盒的ID进行数据填充,生成M字节长度的第一密钥K_a,其中,所述M的值大于N的值,M的取值可根据实际需要进行确定。需要说明的是,第一规则a可由录制的当前机顶盒与回放机顶盒相互协商确定,或者由节目运营商根据实际需要进行确定。比如:规则a可设为“在ID之前填充数据|00 11 22 33|,则所述S22生成的第一密钥K_a为:00 11 22 33 ID。当规则a为其他情况时可类似分析,在此不赘述。
S23,所述机顶盒根据预设的第二规则对当前机顶盒的ID进行数据填充,生成M字节长度的第二密钥;
所述S23根据预设的第二规则a对当前机顶盒的ID进行数据填充,生成M字节长度的第二密钥K_b,其中,所述M的值大于N的值,M的取值可根据实际需要进行确定。需要说明的是,第二规则b可由录制的当前机顶盒与回放机顶盒相互协商确定,或者由节目运营商根据实际需要进行确定。比如:规则b可设为“在ID之后填充数据|44 55 66 77|,则所述S23生成的第二密钥K_b为:ID 44 55 66 77。当规则b为其他情况时可类似分析,在此不赘述。
S202,当接收到用户的节目录制请求时,机顶盒生成所请求录制的节目的元数据文件,所述元数据文件包括:M字节长度的第一随机数。
S203,所述机顶盒采用预置的第一密钥对所述第一随机数进行对称加密,获得M字节长度的第二随机数。
S204,所述机顶盒采用预置的第二密钥对所述元数据文件进行哈希HASH加密,获得所请求录制的节目的录制校验文件。
S205,所述机顶盒将所述第二随机数作为第三密钥,对所请求录制的节目的传输流TS流进行对称加密,获得TS流文件。
S206,所述机顶盒将所述元数据文件、录制校验文件及TS流文件写入存储设备中。
本实施例中,所述S202-S206与图10所示实施例的S101-S105步骤相同,在此不赘述。
本发明实施例在节目录制时,能够防止对录制的节目的随意拷贝,对录制的节目的版权实现了有效地保护。
为了更清楚地说明本发明,下面将对本发明的录制节目的回放方法进行详细介绍。
请参见图13,为本发明的录制节目的回放方法的第一实施例的流程图;所述方法包括:
S301,当接收到用户的录制节目回放请求时,机顶盒从存储设备中读取所请求回放的录制节目的元数据文件、录制校验文件及TS流文件。
用户可通过按压机顶盒遥控器上的录制回放功能键,向机顶盒发送录制节目回放请求,其中,所请求回放的录制节目为经图10或图11所示实施例的方法所录制的节目。所述S301当接收到用户的录制节目回放请求时,从存储设备中读取所请求回放的录制节目的元数据文件、录制校验文件及TS流文件。可以理解的是,在对所请求回放的录制节目进行回放时,进行回放的机顶盒为当前机顶盒。
S302,所述机顶盒采用预置的第二密钥对所述元数据文件进行HASH加密,获得所请求回放的录制节目的回放校验文件。
对录制节目进行回放的机顶盒对第二密钥K_b的预置过程与图11所示实施例的所述S201的预置过程相同,在此不赘述。需要说明的是,若对录制节目进行回放的当前机顶盒与节目录制时的机顶盒为同一机顶盒,则二者预置的第二密钥K_b相同,否则,二者预置的第二密钥K_b不同。所述S302可基于HASH加密算法,比如:MD5、SHA-1等等,采用预置的第二密钥K_b对所述读取的元数据文件info.dat进行加密,获得所请求回放的录制节目的回放校验文件info_to_verify.hash。本实施例的所述S302与图10所示实施例的所述S103所采用的加密算法及加密过程相同,在此不赘述。可以理解的是,若对录制节目进行回放的当前机顶盒与节目录制时的机顶盒为同一机顶盒,则二者预置的第二密钥K_b相同,加密后获得的回放校验文件info_to_verify.hash与录制校验文件info.hash也必定完全一致;否则,加密后获得的回放校验文件info_to_verify.hash与录制校验文件info.hash必定不完全一致。
S303,所述机顶盒将所述回放检验文件与读取的所述录制校验文件进行匹配。
所述S303将所述S302获得的回放检验文件info_to_verify.hash与所述读取的录制校验文件info.hash进行匹配,其匹配的具体过程为:判断info_to_verify.hash与info.hash是否完全一致,若二者完全一致,则匹配成功;若二者不完全一致,则匹配失败,此时对录制节目进行回放的当前机顶盒认为所请求回放的录制节目的元数据文件info.dat已被恶意篡改,禁止对所请求回放的录制节目进行回放,停止执行回放的后续步骤。
S304,判断是否匹配成功,若匹配成功,转入S305;否则,结束。
S305,所述机顶盒解析所述元数据文件,获得M字节长度的第一随机数。
如前述,所述元数据文件info.dat包括:M字节长度的第一随机数R,所述S305则从info.dat文件中提取第一随机数据R。
S306,所述机顶盒采用预置的第一密钥对所述第一随机数进行对称加密,获得M字节长度的第二随机数。
对录制节目进行回放的当前机顶盒对第一密钥K_a的预置过程与图11所示实施例所述S201的预置过程相同,在此不赘述。需要说明的是,若对录制节目进行回放的当前机顶盒与节目录制时的机顶盒为同一机顶盒,则二者预置的第一密钥K_a相同,否则,二者预置的第二密钥K_a不同。所述S306可基于对称加密算法,比如:AES算法、DES算法等等,采用预置的第一密钥K_a对所述第一随机数R进行加密,加密后得到M字节长度的第二随机数K_r。本实施例的所述S306与图10所示实施例的所述S102所采用的加密算法及加密过程相同,在此不赘述。可以理解的是,若对录制节目进行回放的当前机顶盒与节目录制时的机顶盒为同一机顶盒,则二者预置的第一密钥K_a相同,加密后获得的第二随机数K_r也必定相同;否则,加密后获得的第二随机数K_r必定不同。
S307,所述机顶盒将所述第二随机数作为第三密钥,对所述TS流文件进行对称解密,获得所请求回放的录制节目的TS流。
所述S307采用第二随机数K_r作为密钥,对TS流文件进行解密,获得所请求回放的录制节目的TS流。所述S307对所请求回放的录制节目的TS流文件的解密过程与图10所示实施例中在节目录制时,所述S104对所请求录制的节目的TS流进行加密的过程互为相逆。可以理解的是,若对录制节目进行回放的当前机顶盒与节目录制时的机顶盒为同一机顶盒,则二者的第二随机数K_r相同,所述S307可成功解密获得TS流;否则,解密失败,无法获得所请求回放的录制节目的TS流。
S308,所述机顶盒播放所请求回放的录制节目的TS流。
具体实现中,所述S308向用户播放解密后的TS流,用户即可观看所请求回放的录制节目。
需要说明的是,每一个机顶盒唯一对应一个ID,经过相同的第一规则a和第二规则b后,每一个机顶盒均唯一对应一个K_a和K_b。若本实施例中对录制节目进行回放的当前机顶盒与节目录制时的机顶盒为同一机顶盒,则二者的K_a和K_b均相同,回放过程中获得的回放检验文件info_to_verify.hash与节目录制过程中获得的录制校验文件info.hash完全一致;回放过程中使用的K_r与节目录制时使用的K_r完全相同,当前机顶盒可成功回放对所请求回放的录制节目,使用户可观看自己所请求回放的录制节目。若本实施例中对录制节目进行回放的当前机顶盒与节目录制时的机顶盒并非同一机顶盒,则二者的K_a和K_b均相同,回放过程中获得的回放检验文件info_to_verify.hash与节目录制过程中获得的录制校验文件info.hash不完全一致;回放过程中使用的K_r与节目录制时使用的K_r也不相同,当前机顶盒对所请求回放的录制节目的回放失败,用户无法观看自己所请求回放的录制节目。
本发明实施例对录制节目进行回放时,对当前机顶盒的权限验证,从而防止录制节目被随意播放,保护了录制节目的版权,保证了节目的安全性。
请参见图14,为本发明的录制节目的回放方法的第二实施例的流程图。所述方法包括:
S401,机顶盒预先设置第一密钥和第二密钥。
本实施例中,所述S401与图11所示实施例的S201步骤相同,在此不赘述。
S402,当接收到用户的录制节目回放请求时,机顶盒检测存储设备中是否包含所请求回放的录制节目的元数据文件、录制校验文件及TS流文件;若检测结果为是,转入S403;否则,结束。
所述S402检测存储设备中所请求回放的录制节目是否完整,即检测存储设备中是否包含所请求回放的录制节目的元数据文件、录制校验文件及TS流文件,若三个文件中任意一个或多个缺失,则认为所请求回放的录制节目的完整性被破坏,禁止回放;仅当三个文件均完整存在(即检测结果为是)时,转入S403。本步骤对完整性的检测,可防止录制节目被随意拷贝,保证录制节目的安全性。
S403,所述机顶盒从存储设备中读取所请求回放的录制节目的元数据文件、录制校验文件及TS流文件。
S404,所述机顶盒采用预置的第二密钥对所述元数据文件进行HASH加密,获得所请求回放的录制节目的回放校验文件。
S405,所述机顶盒将所述回放检验文件与读取的所述录制校验文件进行匹配。
S406,判断是否匹配成功,若判断结果为是,转入S407;否则,结束。
本实施例中,所述S402-S406与图13所示实施例的S301-S304步骤相同,在此不赘述。
S407,所述机顶盒解析所述元数据文件,获得M字节长度的第一随机数及所请求回放的录制节目的失效时间。
所述元数据文件info.dat包括:M字节长度的第一随机数R和所请求回放的录制节目的失效时间Time_over,所述S407则对info.dat文件进行解封装,从中分离出第一随机数R及Time_over。
S408,所述机顶盒获取当前系统时间。
如前述,由于节目录制时可设置录制的节目的有效时长X小时,因此,所请求回放的录制节目可能存在失效时间Time_over,所述S408则获取当前机顶盒的当前系统时间T。
S409,所述机顶盒将当前系统时间与所请求回放的录制节目的失效时间相比对,判断当前系统时间是否达到所请求回放的录制节目的失效时间,若判断结果为否,转入S410;否则,结束。
所述S409将当前系统T与所请求回放的录制节目的失效时间Time_over相比对,若T已到达Time_over,则认为所请求回放的录制节目已过期,禁止回放,流程结束;若T未到达Time_over,则认为所请求回放的录制节目未过期,可以进行回放,转入S410。
S410,所述机顶盒采用预置的第一密钥对所述第一随机数进行对称加密,获得M字节长度的第二随机数。
S411,所述机顶盒将所述第二随机数作为第三密钥,对所述TS流文件进行对称解密,获得所请求回放的录制节目的TS流。
S412,所述机顶盒播放所请求回放的录制节目的TS流。
本实施例中,所述S410-S412与图13所示实施例的S305-S307的步骤相同,在此不赘述。
本发明实施例对录制节目进行回放时,对当前机顶盒的权限验证,从而防止录制节目被随意播放,保护了录制节目的版权,保证了节目的安全性。
通过上述实施例的描述,本发明实施例在节目录制时,采用预置的第二密钥对元数据文件进行加密,采用预置的第一密钥对第一随机数进行加密得到第三密钥,最后采用第三密钥对请求录制的节目的TS流进行加密;在节目录制时进行三次加密操作,可有力保护请求录制的节目的安全性;另外,对所请求录制的节目的TS流利用第一随机数加密后得到的第二随机数作为密钥进行加密,随机数的随机性可保证每次节目录制时的密钥均不相同,从而加大了破解难度,更有效地保证请求录制的节目的安全性;另外,本发明实施例对录制节目进行回放时,由当前机顶盒采用预置的第一密钥和第二密钥进行相应的加解密操作来实现对录制节目的回放,由于第一密钥和第二密钥均由当前机顶盒的ID依据预设的规则形成,若当前机顶盒并非节目录制时的机顶盒,则二者的ID不同,当前机顶盒无法获得正确的密钥来进行回放操作,此处即可实现对当前机顶盒的权限验证,从而防止录制节目被随意播放,保护了录制节目的版权,保证了节目的安全性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。