数字电视软件混合校验加密方法与流程

文档序号:14175735阅读:494来源:国知局

本发明属于数字电视软件加密、校验领域,具体涉及数字电视软件混合校验加密方法。



背景技术:

长期以来,为了加强数字电视操作系统的安全性,各数字电视运营商,都会要求在数字电视操作系统运行之前,对其主程数据进行数据完整性验证。而保证数据完全性和完整性的一般做法是,将主程数据以加密方式存储于非易失存储器中,在芯片启动后,将主程数据加载到内存之前,通过算法解密数据,通过校验算法验证数据完整性。而这解密数据,校验数据,势必花时间,从而导致数字电视开机过程延长,影响用户体验。

因此,各运营商,在对安全级别有严格要求的同时,对开机速度也同样有严格的要求。通过实践证明,解密数据和校验数据的花销时间刚好和主程数据的大小成反比关系。而很多时候,在软件设计之初功能较少,主程数据小,可以满足安全性和开机时间的要求。但后续持续增加新的功能,主程数据变大,解密数据,校验数据耗时增加,就不能满足开机时间的要求了。于是不得不更改设计,采用各种方式缩小主程序或者更改软件启动模块,换用安全级别较低、更高效的校验算法。但这样做法是,产生很多额外的工作量,严重影响开发效率,且软件运行的稳定性风险性更高。



技术实现要素:

本发明所要解决的技术问题是:提出一种数字电视软件混合校验加密方法,解决传统技术中电视软件不能兼顾校验速度和安全性的问题。

本发明解决上述技术问题采用的技术方案是:

数字电视软件混合校验加密方法,包括以下步骤:

a.在数字电视前端,确定加密、校验算法后,对电视软件数据进行分块,根据确定的加密、校验算法对每个分块生成相应描述头信息,不同分块自适应采用不同的校验、加密算法;

b.利用打包工具按照每个分块的描述头信息对相应分块进行加密、校验后,将完整的电视软件数据进行打包下发;

c.在数字电视终端加载电视软件数据时,首先获得每个分块的描述头信息,然后根据描述头信息对相应数据块进行解密、校验。

作为进一步优化,所述描述头信息包括:对应分块的位置、加密方式、校验方式、摘要、密钥。

作为进一步优化,所述描述头信息与对应进行校验、加密后的数据块分别输出。

作为进一步优化,所述描述头信息单独加密,在步骤c中,在获得每个分块的描述头信息后,对描述头信息进行相应解密,然后根据描述头信息对相应数据块进行解密、校验。

作为进一步优化,步骤a中,所述确定校验、加密算法的具体方法为:

在打包工具中输入待处理的数据bin文件、硬件配置信息、经验系数、较验、加密算法,系统根据这些信息通过预置的数学建模公式测算校验、解密耗时,供打包者自定义选择整个软件数据的校验、加密方案的混合组成方式;如果限定了校验、解密耗时阈值,则系统可以自动调整、生成安全级别高低搭配的校验、加密方案。

作为进一步优化,所述硬件配置信息包括:cpu频率、ddr频率、flash读写速率。

本发明的有益效果是:

1)在前端修改加密、校验方式不需要更改解密端代码,只需要加密端更改参数,重新打包即可,兼容性更强;

2)在打包工具中输入文件、平台信息、校验/加密方式后,系统即可自动计算加密耗时,方便修改、调整加密方式以便实现效率、安全兼顾;

3)可以指定校验时间阈值,系统自动计算选择合适的高端、低端加密/校验算法混合比例,好处在于当升级数据大小改变时,能够自适应调整到合适的校验方式,保持校验耗时稳定不变,从而避免开机时间随软件修改波动,让开机时间一直保持比较科学、符合使用习惯,从而提升客户体验。

4)由于加密方式是高端、低端算法的组合;因此如果想要完全破解加密/校验算法,则必须能够破解高端加密/校验算法,这样比破解单一的低端加密/校验算法困难的多;由于数据的高端、低端加密/校验算法是按比例平均分配到各个数据块中的,只要保护好信息头,单独破解低端算法分块只能得到或篡改一些割裂的数据块,实际意义不大。

具体实施方式

本发明旨在提出一种数字电视软件混合校验加密方法,解决传统技术中电视软件不能兼顾校验速度和安全性的问题。

在具体实现上,为了尽可能避免数字电视产品软件的频繁改动,兼顾速度和安全两方面的要求,本发明软件设计方面可以做以下两方面改进:

a、软件和打包工具做兼容性设计;将软件资料分块,可以支持根据不同的头信息描述,不同分块能自适应采用不同的校验、加密方法。同一种软件技术状态可以实现所有常见的加密、校验方式的组合。

b、打包工具做自动化设计,方便使用;可以根据平台性能、数据大小和选择的算法强度计算理论耗时;也可以根据客户能够接受的校验时间阈值和高安全、低安全两种校验方式自行分配高、低校验方式的比例,在满足效率的前提下尽量兼顾安全。

实施例:

在前端设计了一个打包工具,其支持两种模式的软件打包输出,模式1:自定义校验/加密参数,系统计算耗时;模式2:指定耗时阈值,系统自动生成校验/加密参数。在模式1下有校验方式1、加密方式1、校验方式2、加密方式2的选项卡可以从多种预制校验算法和加密算法中选择,并有方式1、方式2的百分比选项,从而便于自定义选择校验方式、加密方式的百分比组合,从而形成安全性高、低级别搭配的校验、加密方案。

在模式2下,还多了时间阈值设置的选项卡,便于根据时间阈值要求系统自动调整校验、加密的搭配方案。

首先,在工具中加载待处理bin文件获得文件总大小;加载硬件配置参数获得一些动作耗时的经验系数、cpu频率、ddr频率、flash读写速率等;

关于理论耗时的计算:

理论耗时=数据加载到ddr耗时+数据校验耗时+数据解密耗时;

数据加载到ddr耗时=f1(数据大小,flash读写速率,ddr频率,经验系数1);即数据加载到ddr耗时和数据大小呈正比关系;和flash读写速率呈反比关系;和ddr频率反比;同款硬件做几次试验很容易通过数学建模手段得到公式,不同硬件平台公式可能需要根据实测资料微调,体现为公式中的经验系数1;

数据校验耗时=f2(数据大小,cpu频率,ddr频率,校验算法1,校验算法1耗时系数,校验算法2,校验算法2耗时系数,校验算法1百分比,经验系数2);即耗时与大小正比,与频率反比,与[校验算法1*校验算法1耗时系数*校验算法1百分比+校验算法2*校验算法2耗时系数*(1-校验算法1百分比)]成正比;同款硬件做几次试验很容易通过数学建模手段得到公式,不同硬件平台公式可能需要根据实测资料微调,体现为公式中的经验系数2;

数据解密耗时=f3(数据大小,cpu频率,ddr频率,解密算法1,解密算法1耗时系数,解密算法2,解密算法2耗时系数,解密算法1百分比,经验系数3);即耗时与数据大小成正比,与cpu频率,ddr频率成反比,与[解密算法1*解密算法1耗时系数*解密算法1百分比+解密算法2*解密算法2耗时系数*(1-解密算法1百分比)]成正比;同款硬件做几次试验很容易通过数学建模手段得到公式,不同硬件平台公式可能需要根据实测资料微调,体现为公式中的经验系数3。

对于模式1,自定义校验和加密参数模式,容易通过理论耗时所述公式,直接计算出理论总耗时,并在接口上显示出来供打包者参考;如果时间合适则直接打包,否则可调整参数,继续计算理论值。

对模式2,指定耗时阈值的方式,先使用校验方式1+加密1,容易通过耗时公式算得最短校验时间=加载耗时+校验耗时(记为j_short)+解密耗时(记为m_short),再使用校验方式2+加密2得到最长校验时间=加载耗时+校验耗时(记为j_long)+解密耗时(记为m_long);

指定的阈值在最短校验时间和最长校验时间之间才有意义,否则应调整低耗时的校验方式1和加密1;需要节省的时间=最长校验时间-校验时间阈值;再用需节省的时间*省时校验占比可得校验需要省的时间;需节省的时间*(1-省时加密占比)可得加密需要的省时;再根据j_long、m_long可算得实际需要的校验、加密时间,按不短于最短加密校验时间的原则调整一次;由于校验时间和算法效率成正比例,容易算得出校验1、加密1的占比。

至此模式1、模式2都已经具备原始数据bin、校验方式1、校验方式2、校验1占比、加密方式1、加密方式2、加密1占比。具体打包输出的逻辑如下:

将bin文件平均分成100份,创建每一份数据的头信息并插入数据开头如下:

保证按加密方式1占的百分比、校验方式1占的百分比平均生成每个分块头的校验、加密方式;如果是rsa-hash或签名的校验方式,由于加密后的数据摘要长度偏长,可约定一个规则将所有该校验方式生成的摘要合成一个,计算摘要的摘要,再对其进行rsa加密。然后按头信息对实际数据先校验再加密,分别生成100个解密头信息映像和实际密文数据映像两个文件即可。

在数字电视终端,加载电视软件数据时,首先获得每个分块的描述头信息,然后根据描述头信息对相应数据块进行解密、校验。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1