用于检查和确定控制值的设备及方法

文档序号:6553082阅读:264来源:国知局
专利名称:用于检查和确定控制值的设备及方法
技术领域
本发明涉及一种利用控制值来检查数据集的设备及方法,以及一种用于确定诸如计算机文件之类的数据集的比较控制值的设备及方法。
背景技术
对于大多数多元化应用,例如在数字权限管理中,希望或必须在使用之前,检查文件或比特流的真实性或完整性。关于数据集的完整性的检查,这可以是关于例如在计算机的RAM或ROM中要检查的区域或大容量存储器中的文件。在检查过程中,在进一步处理数据之前,可发现对数据的操作或识别出存储或写入错误。
特别地,对于音频应用或视频应用,即使当数据处于压缩形式时,数据集都非常大。例如,典型的MP3编码的歌曲每一分钟播放时间产生1MB的数据集。
为利用诸如散列(hash)算法之类的算法来检查文件的完整性,通常对完整的文件和结果计算所述散列算法,接着将散列值与参考值进行比较。
接下来,描述利用加密散列方法来检查数据集的完整性。加密的散列值也被称为检验和。通过已定义的且唯一的方法,散列方法从不确定长度的输入值中计算出确定的输出值(所谓的散列)。例如,散列值为20字节的字符串。针对每个任意输入值,散列函数的各个字符确定唯一的关联输出值,但是无法从所述输出值反向计算输入值。
首先用散列算法来处理要计算散列值的完整数据集,以形成数据集的散列。对于随后的完整性检查,再次使用散列算法对要测试的数据集进行完整的处理。在参考回合期间,如果要测试的数据集提供了相同的散列,则可假定数据集没有变化。
散列函数的主要目的是检查并确保数字数据的完整性。散列函数的应用包括从校验和的计算到签名方法。即,所述散列既可直接用作校验和,或另外也可表示初始的数据集。为检查完整性,散列值直接用作校验和。
对于散列函数的需求基本上集中在以下三点。一方面,每个散列值应以同一频率产生。这意味着对于不同输入值,散列值的概率不会不同。此外,输入值的小变化会导致不同的散列值。此外,应该非常难以产生冲突(collision)。这意味着,对于给定的输入值,找到具有相同散列值的第二输入值应该尽可能的困难。满足所提到的三个需求的散列函数被称为加密散列函数。
最重要的加密散列函数是SHA-1、MD4、MD5以及RIPE-MD-160。当前最重要的加密散列函数SHA-1(SHA;SHA=安全散列算法)处理512比特长的块,并产生160比特长的散列值。对于SHA-1,所谓链变量的五个32比特的变量以及所谓的压缩函数起到重要的作用。
对于散列函数SHA-1,首先将输入值分成512比特长的块。然后,压缩函数得到五个链变量以及512比特的块,并将其在下一5个32比特的值上再现。然后,在每个有20个同等操作的四个回合内执行所述函数,其中在预定的运算操作之后将各个比特移位。最后,五个链变量的内容作为散列值输出。
例如,在规范“Open Mobil Alliance;OMA DRM SpecificationV2.0;Draft version 2.0-10thApril,2004”中描述了用于检查完整性的散列方法的使用。例如,在规范“Internet Streaming Media Alliance,Encryption and Authentication Specification,version 1.0,February,2004”中描述了另外的检查方法。
通常,数据集完整性的检查的目的并不在于其本身。相反地,仅在实际使用数据集之前执行完整性的检查。因此,在使用数据集时,检查完整性的费力是不利的,因为完整性的检查是与额外的复杂性相关联的,所述额外复杂性可引起数据集使用中的额外成本和延迟。
特别地,用于检查完整性的高时间成本以及所需资源的使用,尤其是用于执行检查和计算的算法性能是重要的缺点。所需的高费力性特别重要,因为在对是否存在数据集的完整性进行声明之前,始终必须首先检查整个数据集。特别地,这对超大数据集产生作用,并例如在音频和视频文件的情况下,会在播放音频或视频数据时的开始引起延迟。
另一个重要的缺点在于高能量消耗,这是由始终必须首先检查整个数据库而引起的。当可能只使用数据的一部分时,这也是必要的。因此,例如,在便携式播放器上播放短片段或对DRM保护的音频作品或视频作品进行进带或倒带的情况下,首先必须执行整个音频作品或视频作品的检查。特别地,在便携式装置的情况下,这引起电池寿命的降低。
另一个缺点在于只要部分数据存在,则没有有关数据集的声明也是可行的。这是一个缺点,因为在测试的负面结果的情况下,在大多数情况下可以或应该忽略实际处理。
另一个缺点是部分使用数据需要与完整使用数据同样的检查努力。开始延迟也只发生在播放音频/视频作品的短片段时,或在进行进带或倒带时,应该会发生在作品内。

发明内容
本发明的目的是创建一种用于检查数据集的设备和方法,以及一种用于确定控制值的设备和方法,所述设备和方法能够在复杂度降低的同时加速控制操作。
通过根据权利要求1的用于检查数据集的设备、根据权利要求10的用于确定控制值的设备、根据权利要求15的用于检查数据集的方法、根据权利要求16的用于确定控制值的方法以及根据权利要求17的计算机程序,来解决上述目的。
本发明创建了用于检查数据集的设备,所述数据集具有多个部分集以及每个部分集的部分控制值,所述设备包括用于确定控制值的装置,形成用于根据所提供的部分集的部分控制值来确定公共控制值;以及比较装置,形成用于将公共控制值和提供给比较装置的比较控制值相比较。
此外,本发明创建了一种用于根据具有多个部分集的数据集来确定比较控制值的设备,所述设备包括用于确定每部分集的部分控制值;以及用于根据部分集的部分控制值来确定比较控制值。
本发明基于以下认识对于数据集的完整性的每片段检查或部分检查导致需要用以检查完整性或形成控制值的复杂度降低。
根据本发明的方法,未对整个数据集形成控制值,但是对数据集的部分集形成控制值。这些部分集的控制值存储在数据集中或者是独立的。此外,对部分控制值形成额外控制值。这是有利的,因为对于数据集完整性的检查,首先相对于额外控制值来检查部分控制值。随后,可通过与各个部分区域相关联的校验和来检查各个部分区域。
根据本发明的方法,针对每部分的完整性检查可能产生一系列好处。特别地,当只检查了数据集的第一部分而不是整个数据集时,数据的使用已经变成可能。例如,播放音频/视频作品因此能够几乎没有任何延迟地开始。此外,可选地,还能够只部分使用数据集,而不必检查整个数据集。例如,在音频/视频作品内的进带或倒带或在作品内的跳跃的情况下,每部分的检查是有利的。由于每部分检查,不需要的部分的检查可以忽略。这样,节省了时间和资源。
根据另一个示例性实施例,数据的实际使用可与完整性的检查并行地在部分中发生。因此,例如,仅必须从磁盘加载数据部分一次,以检查该部分的完整性并马上处理该部分。这造成了时间、资源以及能量的节约。
根据另一个示例性实施例,也可以推迟检查。这在文件的个人作品可接受在无检查情况下使用时是可能的。例如,使用音乐文件的第一作品或另一个作品,并且并行地检查该使用。这具有在执行过程中检查要检查的数据的优点。此外,仅必须从硬盘获取所使用的数据一次。如果检查成功,释放下一个作品用于处理。否则,所述处理在此作品刚执行完即停止。
此外,根据本发明的方法通过预检查数据集的部分(partialsection)的控制值,能够快速预检查数据集。例如,在这种方式下,可以对大量数据集进行快速浏览。然后,仅在检查控制值之后,利用控制值来进行数据集本身的实际检查。
根据另一个示例性实施例,可根据各个部分集的部分控制值来形成额外中间控制值。接着,根据中间控制值,形成公共控制值,所述中间控制值的数量小于部分控制值的数量。其优点在于通过将公共控制值与由中间控制值确定的控制值进行比较,可以对大量部分集进行快速预检查。只有在此之后,相对于对应的中间控制值来检查部分控制值。与必须从部分控制值中计算出公共控制值相比,根据中间件制值来确定公共控制值的复杂性充分小。
本发明的方法可有利地与DCF(DCF;DCF=DRM内容格式)格式结合用于。在“Open Mobile Allianc;DRM Cotent Format V2.0;Draft version 2.0-20thApril,2004”中描述了所述DCF格式,并将所述DCF格式用于MPEG-4数据格式的加密音频/视频数据。


参考附图,对本发明的优选的示例性实施例进行更详细的描述,其中图1是示出了根据本发明的示例性实施例,用于检查数据集的设备的方框图;以及图2是示出了根据本发明的另一个示例性实施例,用于确定控制值的设备的方框图。
具体实施例方式
在下面对本发明的优选示例性实施例的描述中,同样的或相似的附图标记用于各个图中所示的相似元件,并省略了对这些元件的重复描述。
图1示出了用于检查数据集的设备的示意图,所述设备包括用于确定控制值的装置102、比较装置103以及用于使用数据集的装置104。用于检查数据集的设备形成用于在使用之前,利用部分控制值和比较控制值来检查数据集。将所述部分控制值和比较控制值与数据集一起提供给用于检查数据集的设备。
用于确定控制值的装置102形成用于接收数据集112。数据集112细分为多个部分集(图中未示出)。针对数据集112的每个部分集,计算部分控制值114。此外,将部分控制值114提供给用于确定控制值的装置102。此外,根据部分控制值114形成比较值118,所述比较值118也被提供给用于检查数据集的设备。部分控制值114和比较控制值118以及数据集一起暂时存储在图2所示的用于根据数据集来确定控制值的设备中。
用于确定控制值的装置102形成用于根据部分控制值114来计算公共控制值116,并将其提供给比较装置103。此外,比较装置103形成用于接收比较控制值118。比较控制值118也是根据部分控制值114而形成的。使用相同的计算函数以形成比较控制值118和公共控制值116。比较装置103形成用于将公共控制值116和比较控制值118进行比较。根据这个示例性实施例,比较装置103形成用于给用于确定控制值的装置102提供比较信号120,作为公共控制值116和比较控制值118之间的比较结果的函数。比较信号120表示比较控制值118是否与公共控制值116匹配。在公共控制值116与比较控制值118匹配的情况下,可假定自从比较控制值118形成之后,根据其形成公共控制值116的部分控制值114就没有发生改变。
根据这个示例性实施例,如果比较信号120表示比较控制值118与公共控制值116匹配,则用于确定控制值的装置102形成用于根据数据集112的第一个部分集,计算第一个额外部分控制值122,并将提供其给比较装置103。比较装置103还形成用于接收部分控制值114。为了对额外部分控制值122的接收做出反应,比较装置103形成用于将额外部分控制值122与根据与额外部分控制值122相同的部分集所形成的对应部分控制值114进行比较。取决于部分控制值114与额外部分控制值122的比较,比较装置103形成用于给用于使用数据集的装置提供检查结果124。检查结果124表示部分控制值112是否与对应的额外部分控制值122匹配。根据与部分控制值114相同的算法,可根据对应的部分集而形成额外部分控制值122。因此,在部分控制值114与额外部分控制值122之间匹配的情况下,可假定自从对应的部分控制值114的计算之后,根据其计算额外部分控制值122的部分数据集未改变。
用于使用数据集的装置104形成用于如果检查结果24表示部分控制值114与额外部分控制值122之间的匹配,则使用在比较装置103中形成并比较的部分控制值122所针对的数据集112的部分集。
可选地,用于确定控制值的装置102可形成用于作为比较信号120的结果,并行地确定数据集112的部分集的额外部分控制值122,并将其提供给比较装置103。此外,在将公共控制值116和比较控制值118进行比较之前,用于确定控制值的装置102可形成用于已经形成额外部分控制值122。
可由数据集112独立地,将部分控制值114提供给用于确定控制值的装置102。可选地,部分控制值114可集成到数据集112中。类似地,可将比较控制值118与数据集112一起提供给用于检查数据集的设备。
如果仅在将数据集112的部分集提供给用于确定控制值的装置102之后,将部分控制值114提供给用于检查数据集的设备,则用于确定控制值的装置102可形成用于已经形成接收到的部分集的额外部分控制值122。在这种情况下,仅在已从用于确定控制值的装置102接收到部分控制值114的时候,确定公共控制值116。
用于使用数据集的装置104可形成用于在接收到检查结果124之前,使用数据集112或数据集112的部分集。在这种情况下,用于使用数据集的装置104可以形成用于在接收到表示部分控制值114和额外部分控制值122之间的不匹配或公共控制值116和比较控制值118之间的不匹配的检查结果124时,中断数据集的使用。
图2示出了根据本发明的示例性实施例,用于确定控制值的设备的示意图。
特别地,用于确定控制值的设备形成用于提供部分控制值114以及可用的比较控制值118,它们可由如图1所示的用于检查数据集的设备用于检查数据集的完整性。
用于确定控制值的设备包括用于确定部分控制值的装置206、用于确定比较控制值的装置207、以及用于集成的装置208。用于确定控制值的设备形成用于接收数据集112。所述数据集112包括多个部分集。用于确定部分控制值的装置206形成用于根据所接收的数据集112的部分集,形成部分控制值114,并将其提供给用于确定比较控制值的装置207。对于数据集112的每个部分集,将部分控制值114提供给用于确定比较控制值的装置207。由用于确定部分控制值的装置206根据预定的确定算法,根据部分集来确定部分控制值114。
在数据集112没有划分成部分集时,用于确定部分控制值的装置206可包括用于将数据集细分成多个部分集的装置(图中未示出)。
用于确定比较控制值的装置207形成用于根据预定的确定规则,根据部分控制值114而确定比较控制值118,并提供该比较控制值118。
部分控制值114和比较控制值118都存储起来或可用于后继处理。根据此示例性实施例,将部分控制值114提供给集成装置208。集成装置208形成用于接收数据集112,将可用数据集112集成到数据集112,并作为具有部分控制值的数据集112而提供数据集112。
根据示例性实施例,部分控制值114由集成装置208集成到数据集112,使得所述控制值在数据集112中根据均匀分布排列(如果可能的话)。可选地,可以在数据集112中,将部分控制值114一起排列在预定位置处。
当部分控制值114散布在数据集212中时,通过检查部分控制值,可以以高概率确定在数据集212的存储或传输期间是否发生错误。在数据集212的固定位置处存储部分控制值114的优点在于在数据集212的后继检查期间,可首先读取部分控制值,并且可将其与比较控制值118进行比较。
可选地,部分控制值114可独立于数据集212而存储。类似地,比较控制值118可集成到数据集112中或也可以独立存储。
根据示例性实施例,利用加密散列函数来确定控制值。根据此示例性实施例,利用散列算法、散列值或“进行中(on the fly)”检查,以MP3格式进行对诸如歌曲的大文件的每部分的完整性的检查。数据分成对应于部分集的部分,例如,在MPEG-4编码的音频数据的情况下,所述部分是例如块或访问单元。
用于确定控制值的设备中的散列通过对各个部分独立进行散列而产生。随后,将根据部分所确定的散列值与数据一起存储在表中。针对该散列值表形成新的散列,并用作实际的散列,即所谓的主散列。所述散列值对应于部分控制值,此外主散列对应于比较控制值。
执行划分,以划分成适当或所需大小的部分。在粒度和额外散列值所需的存储空间之间形成折衷。在对部分进行散列之后,将部分的散列值存储在一个或多个表中。然后,对具有部分散列值的表,形成散列值。然后,主散列可存储外部,并且作为随后进行的检查所相对的参考。
为检查用于检查数据集的设备中的散列,首先执行对具有主散列的散列表的预检查,即对具有部分散列值的表计算散列,并且将该散列与主散列进行比较。随后,使用来自表的散列值,执行对于各个部分的检查。最后,将表的部分散列值分别用于检查文件的各个部分。因此,在这个示例性实施例中,当主散列和针对部分散列值所计算的散列之间存在匹配时,进行对于该部分的检查。这样,尽管尚未检查其他部分时,也可使用已检查的部分。
根据另一个示例性实施例,形成了很多部分,使得具有部分散列值的表变得太大。在这种情况下,可分级使用一些散列表。这意味着第一个表包括接着用作从表的主散列的散列值。作为一种特定的情况,可确定连续的列表。这意味着表中最后的散列值是下一个表的主散列等。
根据另一个示例性实施例,描述了根据DCF(DCF;DCF=DRM内容格式)加密的对象的散列表以及主散列,所述对象通常包括MPEG-4数据格式的已编码的音频/视频数据。所述DCF对象细分成所需数量的部分、所谓的块(chunk)、每次都聚集起来的一个或多个访问单元。将具有该信息的块表插入到DCF对象中。每次都用散列算法SHA-1,对块计算散列。根据所有所计算的散列,形成一个表,并且将该表作为MPEG-4粒子(atom)插入DCF对象中。对散列值的表形成主散列,所述散列值作为参考值存储在DCF对象外部。
通过从DCF对象中读取具有散列值表的MPEG-4粒子,以执行完整性检查。最后,对表计算散列,并与主散列进行比较。如果匹配,可继续使用DCF对象,否则因为改变而拒绝DCF对象。如果继续使用DCF对象,则在DCF对象中寻找所需的块,接着对所述块进行处理,例如再现并同时检查所述块中的散列。同时检查相应块的散列可被称为“进行中(on the fly)”检查。如果所述块的散列值与来自散列表的相应值匹配,则可处理另一个块。否则,由于对DCF对象的修改,拒绝进一步的处理。
即使在前面的描述中描述了利用散列算法的控制值的计算,显而易见的是,根据本发明的方法并不局限于散列函数,而可形成任意形式的控制值或校验和。例如,可执行奇偶计算。此外,本发明的方法可用于所有的必需检查数据完整性的应用。例如,这样的应用可以是计算机系统或数字消息传输系统。例如,在计算机系统中,控制值可在存储数据时产生,并且与数据一同存储。在随后获取和使用数据中,也可获取并使用控制值来检查数据。在传输系统中,可在数据传输之前直接计算控制值,然后将所述控制值与数据一同传输,并在接收机中进行估计。这样,可保证数据已正确传输。
为检查每个部分的数字信息的完整性,将数据细分成部分集。所述部分集可相互独立或交迭。特别地,所述部分集可独立译码或可进行语法上的分析。用于检查数据集的设备可以是编码器的一部分,此外用于确定控制值的设备可以是译码器的一部分。
取决于环境,根据本发明的用于检查数据集的方法以及根据本发明的用于确定控制值的方法可在硬件或软件上实现。所述实现可在数字存储媒介上进行,特别地,在磁盘或具有电可读控制信号的CD上进行,所述数据存储媒介可与可编程计算机系统协作,以执行相应的方法。通常地,本发明因此还包括计算机程序产品中,所述计算机程序产品具有可存储在机器可读载体上的程序代码,当在计算机上执行计算机程序产品时,该程序代码执行根据本发明的方法。换句话说,本发明因此可作为具有程序代码的计算机程序来实现,所述程序代码用于当在计算机上执行计算机程序时执行所述方法。
权利要求
1.一种用于检查数据集的设备,所述数据集具有多个部分集以及每个部分集的部分控制值,所述设备包括用于确定控制值的装置(102),形成用于根据所提供的数据集(112)的部分集的部分控制值(114)来确定公共控制值(116);以及比较装置(103),形成用于将公共控制值(116)与提供给比较装置的比较控制值(118)进行比较。
2.如权利要求1所述的检查设备,其中,确定装置(102)还形成用于针对数据集(112)的部分集之一,确定额外部分控制值(122);以及其中,所述比较装置(103)还形成用于将所述额外部分控制值和相应的部分集的部分控制值(114)进行比较。
3.如权利要求2所述的检查设备,其中,所述比较装置(103)形成用于作为公共控制值(116)与比较控制值(118)的比较的函数,提供比较信号(120),以及其中,用于确定装置(102)还形成用于作为比较信号的函数,确定额外部分控制值(122)。
4.如权利要求2或3之一所述的检查设备,还包括用于使用部分集的数据的装置(104),所述装置(104)形成用于作为所提供的部分控制值(114)与额外部分控制值(122)的检查结果(124)的函数,使用部分集之一的数据。
5.如权利要求4所述的检查设备,其中,使用装置(104)形成用于作为检查结果(124)的结果,在检查结果(124)表示匹配时,使用部分集。
6.如权利要求4所述的检查设备,其中,使用装置(104)形成用于作为检查结果(124)的结果,在检查结果表示不匹配时,中断部分集的使用。
7.如权利要求1到6之一所述的检查设备,其中,数据集(112)还具有多个中间控制值,每个所述中间控制值是根据多个部分控制值(114)而形成的,以及其中,确定装置还形成用于根据多个所提供的中间控制值来确定公共控制值;确定装置还形成用于作为公共控制值与所提供的控制值的比较函数,根据多个部分控制值而确定多个额外的中间控制值。
8.如权利要求7所述的检查设备,其中,比较装置还形成用于将额外的中间控制值和所提供的中间控制值进行比较。
9.如权利要求1到8之一所述的检查设备,其中,控制值是散列值,并且确定装置(102)形成用于使用预定的散列算法来确定所述散列值。
10.用于根据具有多个部分集的数据集来确定比较控制值的装置,包括用于确定每个部分集的部分控制值(114)的装置(206);以及用于根据部分集的部分控制值(114)来确定比较控制值(118)的装置(207)。
11.如权利要求10的确定设备,还包括用于将数据集(112)划分成多个部分集的装置。
12.如权利要求10或11之一所述的确定设备,还包括用于将多个部分控制值(114)集成到数据集(112)、并用于提供包括控制值的数据集(212)的装置(208)。
13.如权利要求12所述的确定设备,其中,所述集成装置(208)形成用于将多个部分控制值(114)作为表集成到数据集(112),使得部分控制值(114)可从数据集(112)中一起读出。
14.如权利要求12所述的确定设备,其中,集成装置(208)形成用于将多个部分控制值(114)集成到数据集(112),使得所述部分控制值在数据集(112)均匀分布。
15.一种用于检查数据集的方法,其中所述数据集具有多个部分集以及针对每个部分集的部分控制值,所述方法包括以下步骤根据所提供的部分集的多个控制值(114)来确定公共控制值(116);以及将公共控制值(116)与所提供的比较控制值(118)进行比较。
16.一种用于根据具有多个部分集的数据集来确定比较控制值的方法,包括以下步骤确定每个部分集的部分控制值(114);以及根据所提供的部分集的部分控制值(114)来确定比较控制值(118)。
17.一个具有程序代码的计算机程序,当在计算机上执行所述计算机程序时,所述程序代码执行如权利要求15或16之一所述的方法。
全文摘要
本发明涉及一种用于检查数据集(112)的设备,其中,所述数据集(112)具有多个子集并且每个子集有一个部分控制值(114)。本发明的设备包括用于建立控制值的装置(102)以及比较装置(103)。用于建立控制值的装置(102)适用于根据子集的部分控制值(114)来建立公共控制值(116)。比较装置(103)适用于将公共控制值(116)与提供给比较装置(103)的比较值(118)进行比较。
文档编号G06F21/64GK101073086SQ200580039990
公开日2007年11月14日 申请日期2005年9月12日 优先权日2004年10月15日
发明者史蒂芬·克雷格洛, 约尔格·皮克尔, 拉夫·库勒萨, 帕特里克·艾希罗斯, 库尔特·迈克尔·克劳斯, 延斯·哈塞尔巴赫, 史蒂芬·普赫塔, 马克·盖尔, 哈拉尔德·波普 申请人:弗劳恩霍夫应用研究促进协会
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1