读写逐块存储的用户数据的装置和方法

文档序号:6428864阅读:155来源:国知局
专利名称:读写逐块存储的用户数据的装置和方法
技术领域
本发明涉及用于读取在存储介质上以加密方式逐块存储的用户数据的装置,数据的存储被划分成块。本发明进一步涉及在存储介质上以加密方式逐块写用户数据的装置、对应的读或写用户数据的方法、介质和计算机程序产品。本发明具体涉及在可记录存储介质—特别是用于存储视频数据或声频数据之类的任何种类的数据的CD或DVD之类的光学记录介质—上的信息的保护。
如果例如视频数据、声频数据、软件或应用数据等用户数据是以加密方式存储在存储介质上的,则常常要求被授权的应用(application)无需从诸如因特网等分开的位置检索解密密钥(decryption key),如果允许的话,就能从记录介质读取并使用所述用户数据。因此,解密密钥必须被存储在上面存储着加密的用户数据的介质上。为了防止例如由未授权的应用对解密密钥的未授权的访问,一般将解密密钥在存储介质上隐藏起来,使得未授权的应用不能读取解密密钥。在存储介质上隐藏解密密钥的已知方法有内容加扰系统(CSS-Content Scrambling System)和可记录介质的内容保护(CPRM-Content Protection for Recordable Media)。
总的来说,将存储介质的存储划分成块(或扇区),将文件的内容存储在一个或多个这样的块中。读或写命令一般只规定逻辑块地址,而不规定要被读或写的文件的名。由于一般来说每个文件—而不是每个块—都有其自己的加密密钥或解密密钥,一个例如从一个PC应用接收一个读或写命令的用于读或写用户数据的装置,并不能确定用哪个密钥数据来解密或加密,这是因为该装置不从该读或写命令中接收该文件的名。
一个可能的解决方案是将相同的密钥数据用于在存储介质上存储的所有用户数据。然而,如果要求对不同的文件用不同的密钥—在多数应用中都需要这样,则这种解决方案并不可取。
在DVD视频中,每个块有其自己的、存储在扇区首标(sectorheader)中的密钥。然而,所述解决方案要求大量存储容量来存储密钥,因此这种存储器不能用于用户数据。
另一个可能的解决方案是用分开的命令来通知读或写装置哪个密钥数据要在未来的读或写命令中使用。然而,这个解决方案总的来说也是不可取的,因为可能有若干个应用同时向读或写装置发送命令,每个应用采用不同密钥读和/或写不同文件。如果采用这种解决方案,仅单一的应用能访问读或写装置,其它应用则要被排除在外,除非它们采用相同密钥读相同文件。
因此本发明的一个目的是提供用于读用户数据的装置以及写用户数据的装置,以及相应的读或写用户数据的方法,它们不仅克服上述问题,还提供对特别是密钥数据的高度保护,使其不受通过侵入PC应用程序的盗取。
该目的是通过提供如权利要求1所要求的读取装置而实现的,该装置包含命令接口,用于接收和解释读命令,所述读命令包括规定哪些用户数据要被读取的用户数据信息;读取装置,用于从所述存储介质的一个块读取用户数据和相关的加密指示项,所述加密指示项指示所述用户数据是否被加密,所述读取装置进一步适合于读取相关的密钥数据标识符,该标识符规定在所述加密指示项指示所述用户数据被加密的情况下要用哪个密钥数据解密所述用户数据;解密装置,用于用所述密钥数据解密所述用户数据;和输出装置,用于输出所述解密的用户数据。
该目的是进一步通过提供如权利要求7所要求的写用户数据装置而实现的,该装置包含命令接口,用于接收和解释写命令,所述写命令包括规定哪些用户数据要被写的用户数据信息和相关的加密指示项,所述加密指示项指示是否要以加密的形式写所述用户数据;加密装置,用于用密钥数据加密所述用户数据;和写装置,用于写所述用户数据、所述加密指示项以及如果所述用户数据被加密时的一个规定哪些密钥数据被用于加密所述用户数据的密钥数据标识符。
该目的是进一步通过如权利要求8和权利要求12中所要求的相应的方法实现的。权利要求13中要求按照本发明的介质。权利要求14中要求一种计算机程序产品,该程序产品包含计算机程序代码装置,用于当所述计算机程序在计算机上运行时使计算机执行如权利要求8和权利要求12中所要求的方法的步骤。
本发明所依据的思想是将额外的信息与相关的用户数据一起存储,允许用于读取所述用户数据的装置识别所述用户数据是否是加密的以及哪些密钥数据被用于加密所述用户数据。这个额外信息允许用于读的装置在输出所述用户数据之前检索相关的正确的密钥数据用于解密所述用户数据。类似地,用于写用户数据的装置除了存储用户数据,还存储指示所述用户数据是否被加密的加密指示项以及—如果需要的话—密钥数据标识符。由于密钥数据本身是最终接收用户数据的PC应用所不知道的,所述密钥数据被安全地得到保护,不受黑客的盗取。此外,还可以由读取装置在将用户数据发往PC应用之前对用户数据实施再加密,由此进一步保护用户数据在传送期间不受有害的访问。
按照最佳实施例,密钥数据标识符被存储在存储着用所述密钥数据标识符规定的密钥数据加密的用户数据的块的首标(header)或子首标(sub-header)中。最好在其中存储着加密的用户数据的每个块或扇区中都这样做。此外,还将所述加密指示项包含在每个块的首标或子首标中。
这样,即使读取装置不知道允许其识别要被用来解密文件的内容的对应的密钥数据的文件名,读取装置在读取一个块时也立即知道哪些密钥数据要被用来解密存储在所述块中的用户数据。这是特别重要的,因为被读或写装置例如从PC应用接收的命令—特别是读、播放或写命令,并不规定文件名,而是仅仅规定对要被访问的块寻址的逻辑块地址以及要被读或写的数据的量。
按照另一个实施例,密钥数据标识符被存储在其中的用户数据要被读取的块的相邻位置,特别是主数据通道(channel)的子通道(sub-channel)中。密钥数据标识符因此可以采用数据调制(datamodulation)的方法被存储。
如果用于加密用户数据的加密方法包含初始化向量(IV-Initialization vector)-IV在块或扇区之间可能是不同的,则建议也在块的首标或子首标内存储这个初始化向量。在通过读取装置进行再加密的情况下,需要一个可推断的初始化向量,因为这个子段中的号码应当也可被任何不能访问首标或子首标的解密数据的任何应用所用。例如,块序列号—即在构成一个文件的一序列的块中的某块的位置的号码,可以被使用。初始化向量或者为初始化向量保留的空间也能被用来包含加密控制信息,例如关于部分加密的块的信息。被再加密的流也能用一个恒定的初始化向量,该初始化向量于是对所有数据块都是相同的。
按照另一个优选实施例,将密钥数据以加密的形式存储在将被读取装置读取的存储介质上,因为它们是被与用户数据存储在一起的密钥数据标识符规定的。此外,还提供解密装置,用于解密加密的密钥数据,使得它们能被用于解密被读取的解密的用户数据。
按照本发明另一个实施例,在解密从存储介质读取的用户数据之后,并在输出再加密形式的用户数据之前,在读取装置中进行再加密。为了使读取装置能再加密被解密的用户数据,在读命令中包括一条再加密密钥数据信息,它规定要用哪个再加密密钥数据进行再加密。
密钥数据标识符有利地不仅规定要被用来解密在存储介质上所访问的块中存储的用户数据的密钥数据,还进一步规定与存储在所访问的块中的用户数据相关联的附加信息,特别是权利信息,所述附加信息被存储在所述存储介质上的一个密钥箱(key locker)中。最好也将被规定的用户数据存储在存储介质上的该密钥箱中含有的一个查找表中。密钥数据标识符于是能被视为对所述存储不同块的不同密钥数据的查找表中的指针。
尤其对于可记录存储介质来说,按照本发明可以另外地提供密钥数据的扇区级存储与文件级加密的一个组合。本发明最好使用CD-ROMXA规范,使得能实现与这一规范的兼容。
现在将结合以下附图更详细地解释本发明

图1表示按照本发明的再生装置的框图;图2表示CD-ROM XA的子首标;图3表示CD-ROM XA的另一个子首标;图4表示再生装置的第二实施例的框图;图5表示按照本发明的记录装置的框图;图6表示按照本发明的读操作;
图7表示按照本发明的带有再加密的写操作;以及图8表示按照本发明的不带有再加密的写操作。
图1表示按照本发明的再生装置1的第一个实施例。再生装置1可以在一个个人电脑上实现,该个人电脑包含驱动单元2,即读取装置;应用单元3,用于运行应用。如果用户想要再生在DVD-ROM之类的记录介质4上存储的用户数据,例如要重播以MPEG格式存储在DVD上的视频数据,则将介质4插入驱动器2,包括所述用户数据21和密钥数据22的数据20在此被读取装置5读取。应当注意,用户数据21和密钥数据22二者都是以加密的形式存储在介质4上的,另外,在将用户数据和密钥数据存储到记录介质上之前有不同的进行加密的方法,但是对于本发明来说,具体要用哪种加密方法是无关的。
介质4的存储器被划分成逻辑块,每个逻辑块可被一个逻辑块地址寻址。每一个其数据被存储在一个或多个这样的块中的文件—而不是每一个块,都与一个加密密钥相关联。因此,需要通知读取装置5要用哪个加密密钥来解密从介质4读取的用户数据21。
如果应用单元3请求驱动器2从介质4读某些用户数据21,即某个文件,命令单元24向命令接口6发送一个读命令19。读命令19可以按照SCSI多媒体命令-2(MMC-2)或SCSI-3块命令(SBC)被建立,从而包括指示从介质4的读的起点的逻辑块地址和要读取的数据量。这个信息25被转发到读取装置5,使其能读取包括用户数据21的被请求数据20。
在访问介质4上如逻辑块地址所指示的一个或多个块时,读取装置5不但读取所请求的用户数据21,并且还首先读出指示所述用户数据21是否被加密的加密指示项。加密指示项可以是块的首标或子首标的第一个字段,如果加密指示项指示所述用户数据是加密的,则从同一个块的首标或子首标读取规定用哪些密钥数据解密所述用户数据的密钥数据标识符。密钥数据本身可被以加密的形式存储在存储介质上,例如包含在一个密钥箱中的内容表(TOC)中,然后能被读取装置5利用所述密钥数据标识符访问。
被读的密钥数据22在被读后,被输入到密钥计算单元7,以计算解密单元8为解密从读取装置5提供的被读用户数据21而需要的解密密钥DK。解密密钥DK与已经被用于在将用户数据存储到介质4前加密用户数据的加密密钥相同,或者是一个与该加密密钥相对应的密钥。
解密后,被解密的用户数据被输出装置26传送到应用单元3。之后,该被请求的用户数据就能被再现(render)单元13为播放完全地再生与再现。
图2中表示按照本发明的一个子首标实施例。其中,该子首标的一个子分区(sub-division)在CD系统内用于使得能使用一种通用UDF(通用盘文件Universal Disc File)文件系统读取器。子首标的第一个字节的第一位被称作加密标志,例如被用作加密指示项。如果这个标志被置位,则扇区的内容是加密的,字节16的其余部分和整个字节17被用来存储标识加密密钥的Asset_ID(资产标识符),即被用作按照本发明的密钥数据标识符。
字节18的内容包括用于如CD-ROM XA规范中所描述的子模式(sub-mode)的不同数据。如果加密标志被设置为0,字节16和17中的所有的位都将被设置为0。字节19被保留,可用于存储其它数据。字节16到19的内容在字节20到23中重复,如CD-ROM XA规范中所规定的那样。这个子分区预期与知道CD-ROM XA的系统完全兼容。
图3中表示另一个子首标实施例。其中,与图2中的子首标相比只有字节20和21不同。这两个字节被用来存储一个两字节的初始向量(IV)。这种初始向量在加密大块的数据时被使用,以便通过采用所谓的密码块链(cipher block chaining)的加密模式而获得改善的安全性。其中,第一个没有在先的块的密码块被作为初始向量,它可以独立于数据而被选择。如果块序列号被用于一个初始向量,则用两个字节就足以在初始向量的值被再次转换到零之前用于多达128MB的文件。然而也采用2千字节以外的扇区大小。
这个子分区预期能与几乎每一个知道CD-ROM XA的系统兼容。字节16至19中的信息不再重复出现这个事实,在CD系统中不会带来问题。第一,同一个块请求中的所有扇区将具有相同的asset_ID(密钥数据标识符)。第二,块序列号将比同一个请求中的前一个或下一个扇区多1或少1。子首标的内容总是能被重构,子首标中的缺陷将不在文件的新的副本中存在。
可能有另外的使用子首标的变化。例如,除了字节20和21之外字节19可以被用于初始向量。更进一步,扇区的字节22和23也可以被用于初始向量。
在兼容CD-ROM XA的系统中,密钥数据的标识也可以是子首标中的文件号和通道(channel)号字段的组合,它们一般是扇区的子首标的字节16和17。初始向量可以在为编码信息保留的字节19中,如果一个字节不够,也可以采用文件号和通道字节的重复。
图4中表示另一个再生装置1的实施例。其中,在向应用单元2输出用户数据之前要在驱动单元2内用到再加密。如图1中所示的第一实施例中一样,在读命令19中包括一个关于要从介质4读取的用户数据的信息。然而,在用户数据21被在解密单元8中计算的解密密钥DK解密之后,现在是明文的用户数据被一个再加密单元10用一个有规律变化的再加密密钥RK再加密。为了知道要用哪个再加密密钥RK进行再加密,可以从一个证书授权机构(certificationauthority)15请求一个再加密密钥或者由驱动单元2按需生成一个再加密密钥。用户数据被再加密单元10再加密后,被输出单元26输出到应用单元3(16)。
因为再加密密钥RK也必须为应用单元所知以便解密其中的用户数据,所以在驱动单元2和应用单元3之间建立经过安全验证的通道17、18。建立的一种方法是授权在应用单元3上运行的应用其公共密钥是由一个证书授权机构15认证的。所述公共密钥然后被用来建立经过安全验证的通道17。密钥计算单元9然后可以核实该证书授权机构的签名。
在对该应用的最终认可之后,加密了的再加密密钥RK或任何有关再加密密钥RK的其它数据被从密钥计算单元9经安全验证的通道18传送到应用单元3的密钥计算单元11。密钥计算单元11于是能计算再加密密钥RK,使得解密单元12就能解密再加密的用户数据16。应当注意的是,传输线16、17和18包含在再生装置1的总线中。在解密单元12中解密用户数据之后,用户数据就能为重放而由再现单元13完全地再生并再现。
图5中表示按照本发明的再生装置30的第一实施例,该装置包含应用单元31和驱动单元32,即用于写用户数据的装置。其中应用单元31的输入装置33接收要在介质4上存储的用户数据,该用户数据41被传送到驱动单元32去加密并存储。此外,还从命令单元34向命令接口35传送一个规定要在介质4上的什么地方存储所述数据的命令。包括用于开始写加密的用户数据43的逻辑块地址在内的该位置信息45被转发到写装置38。
为了使得用于写的装置32能知道在介质4上存储用户数据之前要用哪些密钥数据来加密用户数据41,在写命令40中也包括一个密钥数据信息42。这个包括密钥数据标识符的密钥数据信息42被转发到读取装置39,以从介质4读取由所述密钥数据标识符所指示的密钥数据。被读取的密钥数据44然后被输入到生成用于在加密单元36中加密用户数据41的加密密钥RK的密钥生成单元37。
最终在介质4上写加密的用户数据时,除了指示所述用户被加密的加密指示项之外,密钥数据标识符42也被记录在其中存储有关用户数据的同一个块或扇区中。
代替介质4上读所需的密钥数据,也可以将其以加密的形式包含在写命令40中。这样密钥数据就可以被从命令接口35提供给生成用于加密所收到的用户数据41的加密密钥RK的密钥生成单元37。甚至可以将加密密钥RK以明文形式包含在写命令40中,直接被加密单元36用于加密。
现在参照图6解释按照本发明的安全地再现被保护的内容的方法。图中表示了一个在PC环境中的包含几个层的系统。第一层是应用层50,它保存关于文件、权利和资产(数据)的信息。第二层是文件系统层,包含虚拟文件系统51、文件系统驱动器(driver)52和设备驱动器(driver)53。虚拟文件系统(VFS)51必须被看作是不能改变的操作系统的整体部分。结果,任何来自应用50的对文件系统驱动器52的请求需要透明地通过虚拟文件系统51。这意味着在应用50与虚拟文件系统51之间的接口不能是专用于某种记录载体或标准的,虚拟文件系统51与文件系统驱动器52之间的接口也不能是这样的。第三层是含有数字权利管理(DRM)系统的驱动器(drive)层54。该层保存关于资产、权利和扇区的信息。
为了读取用户数据,应用50首先检索一个内容表并向DRM查询权利。然后,应用50锁定要读取的资产。驱动器54生成一个新的再加密密钥,用于用户数据的再加密,而应用50通过安全验证的通道(SAC)获得该新的加密密钥。当文件数据被应用50读取时,驱动器54需要一个用于解密的初始向量(IV)信息。因此,需要一个存储在介质55上的本地资产ID。所述本地资产ID和/或所述初始向量被存储在介质55上的一个子首标或隐藏通道中。解密后,应用50对资产解锁。
图7中表示包括一个再加密步骤的写用户数据的方法。首先,应用50锁定用于写的资产。因此,驱动器54通过SAC获得一个解密密钥并生成一个用于在盘55上存储的新密钥。应用50检索一个新的本地资产ID。之后,应用50打开用于写的文件并向文件系统驱动器52传送本地资产ID。应用进一步写文件数据,由此把加密信息追加到SCSI写命令上。最后,应用50关闭文件并对资产解锁。
图8中表示没有再加密的写用户数据的方法。主要步骤与图7中所示的方法相同,不过不进行再加密,因此避免了为了解密用户数据而生成和使用解密密钥。
本发明可以被应用于任何这样的情形通过把原始请求转换成一个对存储设备上的地址安排的请求的(软件)层即驱动器而方便对一个由一组存储单元(即扇区或块)组成的实体—例如文件—的访问,及其中所请求的对被访问实体的操作的特性或性质可被存储该实体的存储设备使用。这包括使用诸如光盘系统和硬盘驱动器等(在驱动器中)实现诸如数字权利管理或分配策略等高级特征的存储设备。
权利要求
1.用于读取在存储介质上逐块存储的用户数据的装置,数据的存储被划分成块,该装置包含命令接口,用于接收和解释读命令,所述读命令包括规定哪些用户数据要被读取的用户数据信息;读取装置,用于从所述存储介质的一个块读取用户数据和相关的加密指示项,所述加密指示项指示所述用户数据是否被加密,所述读取装置进一步适用于读取相关的密钥数据标识符,该标识符规定在所述加密指示项指示所述用户数据被加密的情况下要用哪些密钥数据来解密所述用户数据;解密装置,用于使用所述密钥数据解密所述用户数据;和输出装置,用于输出所述解密的用户数据。
2.按照权利要求1的装置,其中,所述密钥数据被以加密的形式存储在所述存储介质上,其中,所述读取装置适用于读取所述要被用于解密所述用户数据的密钥数据,和其中,所述解密装置进一步适用于解密所述加密的密钥数据。
3.按照权利要求1的装置,其中,所述读命令包括规定哪些再加密密钥数据要用于在输出所述解密的用户数据之前再加密所述解密的用户数据的再加密密钥数据信息,和其中,所述装置进一步包含用于在由所述输出装置输出所述解密的用户数据之前再加密所述解密的用户数据的再加密装置。
4.按照权利要求1的装置,其中,所述密钥数据标识符被存储在存储着用所述密钥数据标识符规定的密钥数据加密的用户数据的块的首标或子首标中。
5.按照权利要求1的装置,其中,所述密钥数据标识符被存储在其中的用户数据要被读取的块的相邻位置,特别是在主数据通道的子通道中。
6.按照权利要求1的装置,其中,在以加密的形式存储相关用户数据的块的首标或子首标中存储一个初始化向量。
7.按照权利要求1的装置,其中,所述密钥数据标识符进一步规定与存储在所访问的块中的用户数据相关联的附加信息,特别是权利信息,所述附加信息被存储在所述存储介质上的一个密钥箱中。
8.用于读取在存储介质上逐块存储的用户数据的方法,数据的存储被划分成块,该方法包含以下步骤命令接口,用于接收和解释读命令,所述读命令包括规定哪些用户数据要被读取的用户数据信息;读取装置,用于从所述存储介质的一个块读取用户数据和相关的加密指示项,所述加密指示项指示所述用户数据是否被加密,所述读取装置进一步适用于读取相关的密钥数据标识符,该标识符规定在所述加密指示项指示所述用户数据被加密的情况下要用哪些密钥数据解密所述用户数据;解密装置,用于使用所述密钥数据解密所述用户数据;和输出装置,用于输出所述解密的用户数据。
9.用于在存储介质上逐块写用户数据的装置,存储介质的存储被划分成块,该装置包含命令接口,用于接收和解释写命令,所述写命令包括规定哪些用户数据要被写的用户数据信息和相关的加密指示项,所述加密指示项指示是否要以加密的形式写所述用户数据;加密装置,用于使用密钥数据加密所述用户数据;和写装置,用于写所述用户数据、所述加密指示项以及如果所述用户数据被加密时的一个规定哪些密钥数据被用于加密所述用户数据的密钥数据标识符。
10.按照权利要求9的装置,其中,所述写命令包括要用于加密所述用户数据的密钥数据,所述密钥数据是以加密的形式被包含的,和其中,所述装置进一步包含用于解密所述加密的密钥数据的密钥解密装置。
11.按照权利要求9的装置,其中,所述密钥数据被以加密的形式存储在所述存储介质上,其中,所述写命令包括一个标识要被从所述存储介质读取的并要被用于加密所述用户数据的密钥数据的密钥数据标识符,其中,所述装置进一步包含读取装置,用于从所述存储介质读取所述被标识的密钥数据,和密钥解密装置,用于解密所述加密的密钥数据。
12.在存储介质上逐块写用户数据的方法,存储介质的存储被划分成块,该方法包含以下步骤接收和解释写命令,所述写命令包括规定哪些用户数据要被写的用户数据信息和相关的加密指示项,所述加密指示项指示是否要以加密的形式写所述用户数据,使用密钥数据加密所述用户数据,和写所述用户数据、所述加密指示项以及如果所述用户数据被加密时的一个规定哪些密钥数据被用于加密所述用户数据的密钥数据标识符。
13.存储介质,特别是逐块存储用户数据的光学可记录存储介质,所述用户数据被有选择地以加密或不加密的形式存储,另外,在每个块中,特别是在每个块的首标或子首标中,存储指示在所述块中存储的所述用户数据是否被加密的加密指示项和如果所述用户数据被加密时的一个规定哪些密钥数据被用于加密所述用户数据的密钥数据标识符。
14.计算机程序产品,包含计算机程序代码装置,用于在计算机上运行所述计算机程序时使计算机执行如权利要求8和权利要求12中所要求的方法的步骤。
全文摘要
本发明涉及读和写以加密的形式逐块存储在存储介质(4)上的用户数据(21)的装置,存储介质的存储被划分成块,涉及用于在存储介质(4)上以加密的形式逐块写用户数据(21)的装置以及对应的方法。由于用户数据是以加密的形式存储在存储介质(4)上的,该装置需要被通知用于在将用户数据写到存储介质之前加密用户数据的加密密钥或用于在输出用户数据之前解密被读的用户数据的解密密钥。因此本发明提出用于读取的装置包含命令接口(6),用于接收和解释读命令(19),所述读命令包括规定哪些用户数据要被读取的用户数据信息;读取装置,用于从所述存储介质的一个块读取用户数据和相关的加密指示项,所述加密指示项指示所述用户数据是否被加密,所述读取装置进一步适用于读取相关的密钥数据标识符,该标识符规定在所述加密指示项指示所述用户数据被加密的情况下要用哪些密钥数据(22)解密所述用户数据;解密装置(7,8,DK)用于使用所述密钥数据解密所述用户数据;和输出装置(26),用于所述解密的用户数据(16)。
文档编号G06F21/80GK1568513SQ02819991
公开日2005年1月19日 申请日期2002年9月12日 优先权日2001年10月12日
发明者W·F·J·方蒂恩, A·A·M·斯塔林格, A·斯尼特斯恩 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1