数据存储设备
技术领域
本发明涉及一种数据分发系统中的数据存储设备,实现了数字形式的内容数据的版权保护,特别地,本发明涉及一种数据存储设备,能够安全地输入和输出再现通过加密内容数据所准备的已加密内容数据所需的许可证(解密密钥和使用规则),能够存储许多许可证,能够安全地输入/输出需要保护的分类数据,并且能够安全地恢复分类数据的已中断输入/输出的输入/输出。
背景技术
由于近年来在诸如因特网等数字通信网中的发展,个人终端的用户能够容易地访问网络信息。
在这样的数字通信网中,以数字信号来传送信息。甚至个人用户能够拷贝通过前述的数字通信网传送来的音乐或电影数据,从而能够拷贝这样的数据,而不会使音频和/或图像质量发生恶化。
因此,如果当在数字通信网上传送诸如音乐数据或图像数据等受版权保护内容时,没有采用适当的措施来进行版权保护,则拥有者的版权可能会受到显著地侵犯。
然而,如果给版权保护提供了顶级的优先级,则可能会变得不能够在快速增长的数字通信网上发布内容数据。这削弱了版权拥有者的兴趣,版权拥有者实质上能够收取针对分发受版权保护的数据的预定版权使用费。
作为在上述数字通信网上分发的替代,可以通过存储数字数据的记录介质来进行分发。与后一种情况相关联,原则上,可以将在市场上的CD(光盘)上所记录的音乐数据任意地拷贝到磁光盘(例如,MD)上,只要使拷贝用于个人用途。然而,进行数字拷贝等的个人用户向版权拥有者间接地以数字记录设备或介质的价格支付预定量的费用,作为保证金。
考虑到从CD拷贝到MD的音乐数据是实质上不会引起拷贝恶化的数字数据的情况,对设备等进行配置来进行拷贝保护,以禁止将已拷贝的音乐数据从可记录的MD进一步拷贝到另一MD。
结合以上所述,由版权拥有者的公共传输权来限制在数字通信网上的诸如音乐数据和图像数据的内容数据的公共分发,因此,必须采取充分的措施来进行这种分发的版权保护。
在上述情况下,需要禁止一旦通过数字通信网发送到公众的诸如音乐数据或图像数据等内容数据的未授权的进一步拷贝。
已经提出了数据分发系统,用于在数字通信网上分发内容数据。在该数据分发系统中,分发服务器将内容数据分发给作为附加到诸如蜂窝电话的终端设备上的数据存储设备的存储卡。在该数据分发系统中,当请求分发已加密的内容数据时,将已经通过认证授权认证过的存储卡的公共加密密钥及其证书发送到分发服务器。在分发服务器确认接收到已认证的证书之后,将已加密的内容数据和用于解密已加密内容数据的内容密钥发送到存储卡。当分发已加密内容数据和内容密钥时,分发服务器和存储卡产生会话密钥,该密钥不同于针对其他分发处理所产生的密钥。利用这样产生的会话密钥,对公用密钥进行加密,并且在分发服务器和存储卡之间交换这些密钥。
最后,分发服务器将利用每一个存储卡所特定的公用密钥加密过的、并且利用会话密钥进一步加密的内容密钥、以及已加密的内容数据发送到存储卡。存储卡将所接收到的内容密钥和已加密的内容数据存储在存储卡中。在该操作中,将许可证存储在许可证存储部分中,这可以确保安全性。
当要再现在存储卡中记录的已加密内容数据时,用户将存储卡与配备有专用产生电路的再现终端相连,因此,可以再现已加密的内容数据并享用其。
在上述系统中,确定了使用规则,从而内容提供商或版权拥有者可以指示与已加密的内容数据的再现和拷贝相关联的使用方式。将这样确定的规则与内容密钥一起分发,从而每一个设备可以根据使用规则来进行处理。
使用规则定义了与存储卡之间的许可证拷贝/转移有关的规则、诸如对与从存储卡中的内容密钥的输出相关联的再现容许时间的限制的规则、以及与再现内容的处理有关的规则。
在上述数据分发系统中,例如,在分发服务器和存储卡之间,或在存储卡和再现终端之间传送已加密内容数据和许可证。“许可证”通常表示内容密钥、使用规则、用于识别许可证的许可证ID和已经描述过的内容的使用规则。将要传送这样的许可证,同时为了版权保护的目的,确保充分的安全性。
在设备之间传送许可证的操作中,当正在进行普通传输处理时,发送机和接收机分别相互识别所传送的许可证,从而可以毫无问题地在这些设备之间传送该许可证。然而,当在许可证的传输期间,在设备或通信路径的任一个中发生了诸如掉电等故障时,许可证可能会在传输期间丢失。
对于诸如在存储卡之间传送许可证的处理,对系统进行配置,从而防止诸如以下的情况:除了使用规则并未限制许可证的拷贝的情况之外,考虑到版权保护,当存储数据时,在发送机方和接收机方的两个存储卡可能会同时利用相同的许可证。因此,必须配置在发送机方的存储卡中所存储的许可证,以使其在许可证输出到接收机方的存储卡的同时变得不可用。在该配置中,暂时出现了任一个存储卡均未存储处于可用状态的许可证的状态。当在上述状态期间中断了传输处理时,丢失了正在传输的许可证。在从分发服务器接收许可证的操作中,许可证同样可能会丢失。因此,在中断了许可证传输的情况下,重要的是,确定在这样中断的传输的期间是否丢失了许可证,并且如果丢失了许可证,则以最佳的方式来进行丢失的许可证的恢复或重发。为了确定许可证的丢失,必须在存储卡中有效地存储用于指定所中断的传输处理的日志信息和该许可证。还需要存储卡具有确定其是否已经存储了所讨论的许可证的功能。
可以可靠地考虑近年来已经得到了显著发展的信息传输技术将会进一步发展,并且这样的发展将引起通信技术的进一步进步以及信息量的增加。出于这样的原因,在上述数据分发系统领域中,需要可以存储多种和大量内容数据的大容量的数据存储设备。
大容量的数据存储设备需要能够存储大量许可证的数据存储部分。当在上述数据分发系统中中断了许可证传输时,确定是否存储了由这样中断的传输所传送的许可证,并且针对此确定,对可以存储大量许可证的许可证存储部分进行搜索和检索。然而,这会花费较长的时间来进行这样的检索处理,并且该时间随着可存储的许可证数量的增加而增加。
根据传统系统,为了进行许可证确定,必须逐一地对许可证存储部分进行检索处理,并且检索处理所需的时间可能会引起在前述情况下的问题。
发明内容
由此,已经开发了本发明来克服上述问题,并且本发明的目的是提出一种数据存储设备,能够快速地确定在能够存储大量许可证的许可证存储部分中的当前所要传送的许可证的存储状态,并且特别地,能够在许可证传输中断的情况下,同时实现许可证的保护和快速重新处理。
此外,本发明的目的是提出一种数据存储设备,不仅能够应用于许可证,而且还可以应用于需要与许可证类似的保护的一般分类数据。
根据本发明,提出了一种数据存储设备,根据预定的输入/输出过程来进行分类数据的输入/输出,以便保护所述分类数据,并且存储所述分类数据,包括:接口部分,用于外部交换数据;第一存储部分,用于存储所述分类数据;以及第二存储部分,用于存储与根据所述预定输入/输出过程来输入/输出所述分类数据有关的日志信息、以及表示在所述第一存储部分中要输入/输出的所述分类数据的存储位置的地址。
优选地,所述数据存储设备还包括控制部分,用于控制所述分类数据的输入/输出。所述日志信息包括:标识码,用于识别要输入/输出的所述分类数据;以及第一状态信息,表示在所述第一存储部分中要输入/输出的所述分类数据的存储状态。所述控制部分根据所述预定输入/输出过程进行操作,以便通过所述接口部分接收要输入/输出的所述标识码和所述分类数据的所述地址,并且将所述标识码和地址存储在所述第二存储部分中,以及响应通过所述接口部分外部施加的请求进行操作,以根据在所述第二存储部分中所存储的所述标识码和所述地址,确定在所述第一存储部分中的所述分类数据的存储状态,并且根据所述存储状态来更新所述第一状态信息。
优选地,所述日志信息还包括第二状态信息,用于记录与要输入/输出的所述分类数据的输入/输出有关的所述预定输入/输出过程的进行状态;以及所述控制部分根据所述预定输入/输出过程来更新所述第二状态信息。
优选地,所述日志信息还包括过程指定信息,用于指定所述预定输入/输出过程;以及所述控制部分响应每一次新获得所述过程指定信息,更新所述过程指定信息。
优选地,所述数据存储设备还包括:
密码通信部分,根据所述预定输入/输出过程进行操作,以便建立通过所述接口部分到所述分类数据的提供者或接收机的密码通信路径,并且通过所述已建立的密码通信路径来接收或发送所述分类数据。在包括在所述预定输入/输出过程中的、用于接收和存储所述分类数据的输入过程中,所述密码通信部分根据所述输入过程接收所述分类数据;以及所述控制部分通过所述接口部分接收所述地址,将所述接收到的地址存储在所述第二存储部分中,并且将由所述密码通信部分接收到的所述分类数据存储在由所述接收到的地址所指定的所述第一存储部分上的存储部分中。
优选地,在所述输入过程中,所述密码通信部分产生第一会话密钥,以及所述控制部分响应由所述密码通信部分每一次产生所述第一会话密钥,利用所述第一会话密钥来更新所述过程指定信息。
优选地,所述数据存储设备还包括:签名部分,用于产生通过将电子签名附加到所述日志信息或所述日志信息的一部分上所准备的已签名日志信息。在所述预定输入/输出过程中所包括的、用于当所述输入过程中断时恢复所述输入过程的重新输入过程中,所述控制部分更新在所述第二存储部分的所述日志信息中所包括的所述第一状态信息,从所述第二存储部分中获得所述日志信息,并且将所述日志信息施加到所述签名部分,所述签名部分接收包括所述已更新的第一状态信息的所述日志信息,以产生所述已签名日志信息,以及,所述密码通信部分根据所述重新输入过程,通过所述已建立的密码通信路径,传送由所述签名部分所产生的所述已签名日志信息。
优选地,在所述预定输入/输出过程中所包括的、用于外部输出所述第一存储部分中所存储的所述分类数据的输出过程中,所述控制部分通过所述接口部分接收所述地址,将所述接收到的地址存储在所述第二存储部分中,从由所述接收到的地址所指定的所述第一存储部分上的存储位置上获得所述分类数据,并且将所述分类数据施加到所述密码通信部分;以及所述密码通信部分根据所述输出过程,传送从所述控制部分中接收到的所述分类数据。
优选地,在所述输出过程中,所述密码通信部分接收外部产生的第二会话密钥;以及所述控制部分响应由所述密码通信部分每一次接收所述第二会话密钥,利用所述接收到的第二会话密钥来更新所述过程指定信息。
优选地,所述数据存储设备还包括日志认证部分,用于验证和认证外部施加的已签名日志信息,以及,在所述预定输入/输出过程中所包括的、用于当所述输出过程中断时恢复所述输出过程的重新输出过程中,所述密码通信部分根据所述重新输出过程,接收并将所述已签名日志信息施加到所述日志认证部分中。所述日志认证部分验证从所述密码通信部分中接收到的所述已签名日志信息。当认证了所述接收到的已签名日志信息时,所述控制部分根据在所述第二存储部分中所存储的所述日志信息以及所述接收到的已签名日志信息,确定所述输出过程是否被中断。当确定所述输出过程已中断时,所述控制部分确定由所述第二存储部分中所存储的所述地址所指定的第一存储部分上的存储位置是否能够被恢复到所述输出过程中断之前的存储状态。当确定能够进行恢复时,所述控制部分将所述存储位置恢复到在所述输出过程中断之前所达到的存储状态,并且恢复所述被中断的输出过程。
优选地,所述分类数据包括所述分类数据所特定的所述标识码;以及,所述控制部分通过根据在由所述地址所指定的所述第一存储部分上的存储位置中所存储的所述分类数据中包括的所述标识码来指定所述分类数据,确定在所述第一存储部分中的所述分类数据的存储状态。
优选地,在所述预定输入/输出过程中所包括的、用于通过所述接口部分接收所述分类数据并将所述分类数据存储在所述第一存储部分中的输入过程中,当在所述接收到的分类数据中所包括的标识码和所述日志信息中所包括的标识码之间发生了不匹配时,所述控制部分中断所述输入过程,而不将所述分类数据存储在所述第一存储部分中。
优选地,在所述预定输入/输出过程中所包括的、用于通过所述接口部分输出在所述第一存储部分中所存储的所述分类数据的输出过程中,当在由所述地址指定的所述第一存储部分上的存储部分中所存储的所述分类数据中所包括的标识码与所述日志信息中所包括的标识码不匹配时,所述控制部分中断所述输出过程,而不输出所述分类数据。
优选地,所述数据存储设备还包括签名部分,用于产生针对所述日志信息的已签名数据,以及通过将所述已产生的已签名数据附加到所述日志信息上,产生已签名日志信息。在当所述输入过程中断时,为了恢复通过所述接口部分接收所述分类数据的输入过程、并将所述分类数据存储在所述第一存储部分而进行的重新输入过程中,所述控制部分通过所述接口部分输出由所述签名部分所产生的所述已签名日志信息。
优选地,所述数据存储部分还包括日志认证部分,用于验证和认证通过将针对所述接收机的附加日志信息的已签名数据附加到所述附加日志信息上而准备的附加已签名日志信息,并且通过所述接口部分从所述接收机接收所述分类数据。在当所述输出过程中断时,为了恢复通过所述接口部分输出在所述第一存储部分中所存储的所述分类数据的输出过程而进行的重新输出过程中,所述日志认证部分验证在所述中断输出过程中从所述分类数据的接收机中接收到的所述附加已签名日志信息的正确性。当未认证所述附加已签名日志信息时,或当认证了所述附加已签名日志信息,并且根据所述附加已签名日志信息和在所述第二存储部分中所存储的所述日志信息,确定了所述输出过程并未中断时,所述控制部分中断所述重新输出过程。
优选地,所述分类数据是用于解密和使用已加密内容数据的解密密钥;以及所述数据存储设备还包括第三存储部分,用于存储所述已加密内容数据。
附图说明
图1是示出了数据分发系统的概念的示意图。
图2示出了图1所示的数据分发系统中所传送的数据、信息等的特性。
图3示出了用于图1所示的数据分发系统中的许可证的数据、信息等的特性。
图4是示出了图1所示的许可证提供设备的结构的示意方框图。
图5是示出了图1所示的终端设备的结构的示意方框图。
图6是示出了附加到图1所示的终端设备上的硬盘的结构的示意方框图。
图7示出了在图6所示的硬盘中的安全数据存储部分的存储器结构。
图8是示出了在图1所示的数据分发系统中的分发处理的第一流程图。
图9是示出了在图1所示的数据分发系统中的分发处理的第二流程图。
图10是示出了在图1所示的数据分发系统中,在分发处理期间的重写处理的第一流程图。
图11是示出了在图1所示的数据分发系统中,在分发处理期间的重写处理的第二流程图。
图12是示出了在图1所示的数据分发系统中,在分发处理期间的重写处理的第三流程图。
图13是示出了进行拷贝/转移处理的系统结构的概念的示意图。
图14是示出了图13所示的系统中的拷贝或转移处理的第一流程图。
图15是示出了图13所示的系统中的拷贝或转移处理的第二流程图。
图16是示出了在图13所示的系统中,在拷贝或转移处理期间的重写处理的第一流程图。
图17是示出了在图13所示的系统中,在拷贝或转移处理期间的重写处理的第二流程图。
图18是示出了在图13所示的系统中,在拷贝或转移处理期间的重写处理的第三流程图。
图19是示出了作用于图5所示的终端设备的再现许可处理的流程图。
具体实施方式
现在将参考附图来描述本发明的实施例。在附图中,相同或相似的部件或部分具有相同参考数字,并且不再重复对其的描述。
图1是示出了数据分发系统的整个结构的概念的示意图,其中,根据本发明的数据存储设备获得已加密的内容数据和用于解密已加密内容数据的许可证。
将通过数据分发系统的示例来给出以下描述,其中,终端设备10接收在数字广播网上分发的图片数据,并且将数据存储在硬盘20中,所述硬盘20是附加到终端设备10上的数据存储设备。在该系统中,终端设备10与双向网络30相连,并且从许可证提供设备40中接收用于对网络30上的已加密图片数据进行解密的许可证,以便将其存储在硬盘20上。终端设备10通过专用于这样的再现的内部再现电路(未示出)来再现已加密的图片数据。然而,如将从以下描述中显而易见,本发明并不局限于这样的情况。本发明可应用于其他受版权保护的材料,即内容数据的分发,例如,图像数据、音乐数据、教育数据、阅读或朗诵数据或书籍数据、或诸如游戏等程序。同样,数据存储设备并不局限于硬盘,并且可以应用于诸如存储卡等其他数据存储设备。
参考图1,终端设备10通过天线11,接收在数字广播网上分发的已加密图片数据,并且将其存储在硬盘20上。该图片数据此后也被称为“内容数据”。许可证提供设备40用于管理和分发包括用于解密已加密内容数据的内容密钥的许可证,该许可证提供设备40通过确定附加到进行分发许可证的访问的终端设备10上的硬盘20是否具有正确的证书数据,即,硬盘20是否为具有许可证管理功能的正确的数据存储设备,进行认证处理。只有当硬盘20是正确的数据存储设备时,许可证提供设备40才将按照仅允许由硬盘20解密的预定加密方式进行加密的许可证发送到终端设备10。当终端设备10通过与网络30相连的调制解调器接收到已加密许可证时,终端设备10向附加在其上的硬盘20发送已加密的许可证。
例如,图1中的硬盘20可从终端设备10上拆卸。附加在终端设备10上的硬盘20接收由终端设备10所接收到的已加密许可证,对为保护版权而加密的许可证进行解密,并且将许可证存储在硬盘20上。为了再现与许可证相对应的已解密内容数据,向终端设备10提供包括在许可证中的内容密钥和已加密内容数据。
终端设备10的用户可以再现内容数据,可以利用终端设备10中的内容密钥对该内容数据进行解密。
根据上述结构,已接收并存储已加密内容数据的终端设备10的用户可以接收许可证,因此,只有当终端设备10使用具有许可证管理功能并且包括正确证书数据的硬盘20时,才可以再现该内容数据。
在上述数据分发系统中,已加密内容数据的提供者是数字广播公司等的广播服务器。然而,提供者可以是管理内容的许可证的许可证提供设备40,可以是除了许可证提供设备40之外的通过诸如因特网的数字通信网连接的分发服务器,或者可以是来自另一用户的拷贝。因此,已加密内容数据自身可以从任何部分发布,并且可以由任何部分接收。总而言之,可以对内容数据的版权进行保护,只要严格控制允许对已加密内容数据进行解密的许可证。
根据本发明的实施例,当进行处理以在硬盘20、终端设备10和许可证提供设备40之间传送许可证时,再现已加密内容数据所需的许可证的提供者对接收机或目的地进行验证和检查处理,从而防止将许可证输出到未授权设备。此外,该系统可以防止由于许可证传送处理的中断而引起的许可证的丢失,并且可以防止许可证的双重存在。现在将描述该系统的结构。
图2示出了用于图1所示的数据分发系统的传输的数据、信息等的特性。
数据Dc是内容数据,在该实施例中,是图片数据。将数据Dc加密为允许利用内容密钥Kc进行解密的形式,从而产生已加密内容数据E(Kc,Dc),并且通过数字广播网将其分发给终端设备10的用户。
在以下描述中,表达E(X,Y)表示将数据Y加密为允许利用解密密钥X进行解密的形式。与数据Dc一起,网络分发作为诸如与内容数据的版权或服务器访问相关的明文信息的附加信息Di。
通过终端设备10,在许可证提供设备40和硬盘20之间传送作为用于指定许可证的分发和指定每一个许可证的管理代码的许可证ID(LID)。许可证包括作为识别数据Dc和内容密钥Kc的代码的数据ID(DID),以及控制信息AC,所述控制信息涉及对在数据存储设备中处理许可证以及再现的限制,更具体地,涉及根据用户侧的指定所确定的许可证数量、功能限制等。
在以下描述中,内容密钥Kc和控制信息AC、以及ID(DID和LID)将统称为许可证LIC。DID是分配给一对数据Dc和内容密钥Kc的标识信息,因此,DID是用于识别已加密数据E(Kc,Dc)的标识信息。除了许可证LIC之外,DID也包括在附加信息Di中,总是按照允许对其进行参考的方式,将所述附加信息Di与已加密数据E(Kc,Dc)一起进行处理。
图3示出了在图1所示的数据分发系统中使用的用于认证的数据、信息等的特性。
在诸如硬盘20的数据存储设备以及终端设备10中设置的再现电路配备有其所特定的类(class)公用密钥KPcmy和KPcpy。可以分别利用数据存储设备所特定的类专用密钥Kcmy和再现电路所特定的类专用密钥Kcpy对类公用密钥KPcmy和KPcpy进行解密。这些类公用密钥和类专用密钥具有取决于再现电路和数据设备的类型的数值。这些类公用密钥和类专用密钥由被称为“类”的单元所共享。字符“y”表示用于识别类的标识符。类取决于制造商、产品种类、生产批量等。
采用Cmy作为数据存储设备的类证书。采用Cpy作为再现电路的类证书。这些类证书具有取决于数据存储设备和再现电路的类的信息。
在出货时,数据存储设备按照Kpcmy//Icmy//E(Ka,H(KPcmy//Icmy)的形式来存储其类证书Cmy。在出货时,再现电路按照KPcpy//Icpy//E(Ka,H(KPcpy//Icpy))的形式存储其类证书Cpy。“X//Y”的表达表示在X和Y之间的连接,并且H(X)表示由散列函数所计算出的数据X的散列值。主密钥Ka是用于准备这些类证书的专用加密密钥。主密钥Ka由整个数据分发系统所共享,并且由认证授权(未示出)安全地管理和操作。类信息Icmy和Icpy是包含与每一个类中的设备和类公用密钥相关的信息的信息数据。
E(Ka,H(KPcmy//Icmy))和E(Ka,H(KPcpy//Icpy))是通过分别将电子标签附加到KPcmy//Icmy和KPcpy//Icpy上而准备的已签名数据。
认证授权是准备签名数据的公共第三组织,并且产生签名数据E(Ka,H(KPcmy//Icmy))和E(Ka,H(KPcpy//Icpy))。
证书密钥KPa用于验证类证书,并且是与主密钥Ka成对的公用密钥。
作为向数据存储设备安全并可靠地发送许可证LIC的密钥,该系统采用了与每一个介质即每一个数据存储设备相对应地管理的个别公用密钥KPomz,以及允许对利用个别公用密钥KPomz加密的数据进行解密的个别专用密钥Komz。在这些表达中的字符“z”是用于单独地识别数据存储设备的标识符。
每一次当进行数据传输时,数据分发系统使用由许可证提供设备40、数据存储设备(硬盘20)和终端设备10所产生的会话密钥Ks1x和Ks2x。
会话密钥Ks1x和Ks2x是针对每一个“会话”,即,许可证提供设备40、终端设备的数据存储设备(硬盘20)和再现电路之间的通信单元,或者对其进行访问的单元而产生的对称密钥。所述“会话”包括用于将许可证从许可证提供设备40分发到数据存储设备(硬盘20)的“分发会话”,用于在数据存储设备之间拷贝或转移许可证的“拷贝/转移会话”、以及从数据存储设备(硬盘20)向终端设备10的再现电路输出许可证的“再现许可会话”。
会话密钥Ks1x和Ks2x具有每一个会话所特定的数值,从而由许可证提供设备40、数据存储设备(硬盘20)和终端设备10中的再现电路来管理这些密钥。更具体地,当要传送许可证时,由许可证的发送者方针对每一个会话产生会话密钥Ks1x,并且由许可证的接收机方针对每一个会话产生会话密钥Ks2x。字符“x”是识别会话中的一系列处理的标识符。在每一个会话中,在设备之间相互传送这些会话密钥。每一个设备接收由其他设备所产生的会话密钥,并且利用所接收到的会话密钥来进行加密。然后,该设备发送包括内容密钥的许可证LIC或许可证LIC的一部分,从而可以改善会话中的安全程度。
图4是示出了图1所示的许可证提供设备40的结构的示意方框图。
许可证提供设备40包括:内容数据库(DB)402,保存了要管理的许可证;日志数据库404,存储了在用于分发许可证的分发会话中的所有通信记录;数据处理部分410,通过总线BS1,向和从内容数据库402和日志数据库404传送数据,并对数据施加预定的处理;以及通信设备450,用于通过网络30在终端设备10和数据处理部分410之间传送数据。
数据处理部分410包括:分发控制部分412,用于根据总线BS1上的数据来控制数据处理部分410的操作;会话密钥产生部分404,用于在分发控制部分412的控制下,在分发会话中产生会话密钥Ks1x;以及KPa保存部分416,用于保存认证密钥KPa。数据处理部分410还包括认证部分418,用于通过通信设备450和总线BS1接收数据存储设备的类证书Cmy,利用从KPa保存部分416中接收到的认证密钥KPa,对作为类证书Cmy的第二半的签名数据E(Ka,H(KPcmy//Icmy))进行解密处理,对作为类证书Cmy的第一半的KPcmy//Icmy的散列值进行计算,并且通过比较和检查上述解密处理和计算的结果来验证类证书Cmy。数据处理部分410还包括加密处理部分420,用于利用从类证书Cmy中提取出的类公用密钥KPcmy对由会话密钥产生部分414所产生的会话密钥Ks1x进行加密;以及解密处理部分422,用于对利用会话密钥Ks1x加密的数据进行解密。
数据处理部分410还包括加密处理部分424,用于利用从解密处理部分422中所施加的数据存储设备的个别公用密钥KPomz,对从分发控制部分412中所施加的许可证LIC进行加密;以及解密处理部分426,用于利用由数据存储设备所产生的、并且从解密处理部分422中所施加的会话密钥Ks2x对加密处理部分424的输出进行进一步加密。
此外,在利用会话密钥Ks1x进行加密之后,提供个别公用密钥KPomz和会话密钥Ks2x。解密处理部分422对其进行解密,已获得个别公用密钥KPomz和会话密钥Ks2x。
图5是示出了图1所示的终端设备10的结构的示意方框图。
终端设备10包括:天线102,接收通过数字广播网发送的信号;接收部分104,进行操作以接收来自天线102的信号并将其转换为基带信号,或者进行操作以调制要从天线102发送的数据,并将其施加到天线102;调制解调器106,用于使终端设备10与网络30相连;总线BS2,用于在终端设备10中的各个部分之间传送数据;控制器108,用于通过总线BS2来控制终端设备10的操作;硬盘接口部分110,用于硬盘20和总线BS2之间的数据传输;以及再现电路150,用于根据已加密的内容数据和在硬盘20上存储的许可证来再现内容数据。
再现电路150包括认证数据保存部分1502,用于保存已经描述的类证书Cpy。假定再现电路150的类y等于三个(y=3)。
再现电路150还包括Kcp保存部分1504,用于保存作为该类所特定的解密密钥的类专用密钥Kcp3;解密处理部分1506,用于利用类专用密钥Kcp3来进行解密;会话密钥产生部分1508,用于根据例如再现许可会话中的随机数来产生会话密钥Ks2x;加密处理部分1510,用于利用由硬盘20所产生的会话密钥Ks1x对由会话密钥产生部分1508所产生的会话密钥Ks2x进行加密;解密处理部分1512,利用会话密钥Ks2x对由会话密钥Ks2x加密的内容密钥Kc进行解密;解密处理部分1514,用于从总线BS2中接收已加密的内容数据E(Kc,Dc),并且利用从解密处理部分1512中发送的内容密钥Kc对其进行解密,以便向再现部分1516提供数据Dc;再现部分1516,用于接收和再现从解密处理部分1514中提供的内容数据Dc;D/A转换器1518,用于将再现部分1516的输出从数字信号转换为模拟信号;以及终端1520,用于将D/A转换器1518的输出提供给外部输出设备(未示出),例如显示监视器。
为了提高安全性,优选地,再现电路150由单芯片结构的半导体器件形成。此外,优选地,再现电路150由反篡改模块形成,其可以有效地防止可能在外部执行的分析。
下面将参考流程图来详细描述在终端设备10的各个组件的相应会话中的操作。
图6是示出了图1所示的硬盘20的结构的示意方框图。
如已经描述的那样,将类公用密钥KPcmy和类专用密钥Kcmy用于硬盘,并且还将类证书Cmy用于硬盘。在硬盘20中,假定自然数y等于1(y=1)。用于识别硬盘20的自然数z等于2(z=2)。
参考图6,硬盘20包括密码通信部分268、安全数据存储部分250、常规数据存储部分270、终端210、ATA(AT附加)接口部分212和控制器214。
终端210使硬盘20与终端设备10的硬盘接口部分110物理上和电学上相连。ATA接口部分212通过终端设备10和终端210的硬盘接口部分110来传送信号。总线BS3充当硬盘20中的数据传输路径。
密码通信部分268包括认证数据保存部分202,用于保存认证数据Kpcm1//Icm1//E(Ka,H(KPcm1//Icm1),作为类证书Cm1;Kcm保存部分204,用于保存类专用密钥Kcm1;Kom保存部分206,用于保存个别专用密钥Kom2;以及KPom保存部分208,用于保存允许利用个别专用密钥Kom2进行解密的个别公用密钥KPom2。
如上所述,由于提供了数据存储设备即硬盘驱动器的加密密钥,可以独立于针对其他硬盘驱动器的已分发内容数据和已加密内容密钥,对每一个硬盘驱动器的已分发内容数据和已加密内容密钥进行管理,如下面将会描述的那样。
密码通信部分268还包括解密处理部分216,用于利用从Kom保存部分206中提供的个别专用密钥Kom2来进行解密:认证部分220,用于从KPa保存部分218中接收认证密钥KPa,并且利用认证密钥KPa对提供到总线BS3上的数据进行解密,以便向控制器214提供解密结果;以及加密处理部分224,用于利用由选择器开关260选择性施加的会话密钥Ks1x或Ks2x,对通过选择器开关262选择性施加的数据进行加密,并且将其提供到总线BS3上。
密码通信部分268还包括会话密钥产生部分226,用于在每一个分发、拷贝/转移和再现许可会话中产生会话密钥Ks1x和Ks2x;加密处理部分222,用于利用由认证部分220所获得的类公用密钥KPcpy或KPcmy,对由会话密钥产生部分226所产生的会话密钥Ks1x进行加密;以及解密处理部分228,用于接收利用由会话密钥产生部分226所产生的会话密钥Ks1x或Ks2x加密的数据,并且利用会话密钥Ks1x或Ks2x对其进行解密。
密码通信部分268还包括解密处理部分230,用于接收利用类公用密钥KPcm1加密的数据,并利用类专用密钥Kcm1对其进行解密;以及加密处理部分232,当要将许可证LIC从硬盘20转移或拷贝到硬盘21上时,利用从目的地中的硬盘21中接收到的个别公用密钥KPomz(z≠2)对许可证LIC进行加密。
安全数据存储部分250存储作为由硬盘20所处理的会话处理记录的许可证LIC和日志。将许可证LIC存储在安全数据存储部分250的许可证存储器250A中,并且将日志存储在安全数据存储部分250的日志存储器250B中。安全数据存储部分250是存储区域,其由诸如半导体存储器形成,并且不允许从外部和直接对其进行访问。
图7示出了在安全数据存储部分250中的存储结构。
参考图7,许可证存储器250A可以存储多个许可证LIC(内容密钥Kc、控制信息AC、许可证ID(LID)和数据ID(DID)),对应于硬盘20可以存储多个内容数据的事实。
在硬盘20中,根据在安全数据存储部分250中的存储地址来管理在许可证存储器250A中所存储的许可证LIC。之后,该存储地址将被称为“LBA”或“逻辑块地址”。由逻辑块地址来指定在每一个会话中所存储或输出的所有许可证LIC。
安全数据存储部分250配备有有效性标志存储器250C。有效性标记存储器250C与用于指定在许可证存储器250A上的存储位置的逻辑块地址相对应地设置,并且分别存储表示由相应逻辑块地址所指定的位置处所存储的许可证的有效/无效的标记。
当在有效性标记存储器250C中的标记是“有效”时,可以使用由与该标记相对应的逻辑块地址所指定的许可证存储器250A上的存储位置中所存储的许可证LIC,从而用户可以再现与该许可证LIC相对应的内容数据,或者对该许可证LIC进行转移或拷贝。
当在有效性标记存储器250C中的标记是“无效”时,不能使用由与该标记相对应的逻辑块地址所指定的许可证存储器250A上的存储位置中所存储的许可证LIC,从而硬盘20的控制器214拒绝由该逻辑块地址所指定的许可证LIC。该状态等价于其中删除了许可证LIC的状态。因此,用户不能够再现与许可证LIC相对应的内容数据。当重新存储了该许可证时,在有效性标记存储器250C中的该标记变为有效,而当转移了许可证时,其变为无效。
日志存储器250B包括许可证ID区域2501,用于存储指定了要在会话中处理的许可证LIC的许可证ID(LID);Ks2x区域2502,用于存储由会话中的许可证LIC的接收机侧上的数据存储设备所产生的会话密钥Ks2x;ST1区域2503,用于存储表示在当前会话中的处理状态的状态ST1;ST2区域2504,用于存储表示与在许可证ID区域2501中所存储的许可证ID相对应的许可证的存储状态的状态ST2;KPcmx区域2505,其中,当输出用于转移/拷贝的许可证时,在发送机侧的数据存储设备上存储了接收机侧的数据存储设备的类公用密钥KPcmx;以及LBA区域2506,用于存储为输出或存储会话中的许可证LIC而表示的逻辑块地址。根据一系列会话的进行,对在上述相应区域中的数据进行更新或查阅。状态ST1表示四个状态“等待接收”、“已接收”、“等待发送”和“已发送”之一,而状态ST2表示三个状态“数据存在”、“没有数据”和“已转移”之一。
当由于在会话中出现的意外故障而中断了会话时,根据日志存储器250B的LID区域2501中所存储的许可证ID、以及在LBA区域2506中所存储的逻辑块地址,确定在中断的会话中正在传送的许可证LIC的存储状态,并且根据该确定的结果来更新状态ST2。在中断的会话中的许可证的发送机侧接收在许可证接收机侧的日志存储器250B中所存储的许可证LIC、会话密钥Ks2x和状态ST1和ST2,并且检查在发送机侧上所记录的日志的内容和所接收到的许可证LIC、会话密钥Ks2x和状态ST1和ST2。由此,确定了是否允许许可证的重新传输。
存储会话密钥Ks2x,用于指定每一个会话,并且共享会话密钥Ks2x的事实表示共享了要传送的许可证的指定及其处理。
例如,当特别是在具有能够存储大量许可证的许可证存储器250A的硬盘20中发生了特定会话中的处理中断时,必须确定许可证存储器250A中的许可证的存储状态(必须确定许可证的存在)。在这种情况下,上述结构允许容易地执行这样的确定和状态ST2的更新。
当进行确定以便重新传输时,许可证的接收者侧将在日志存储器250B中所存储的许可证ID(LID)、会话密钥Ks2x和状态ST1和ST2提供给许可证的接收机侧,并且这些许可证ID(LID)、会话密钥Ks2x和状态ST1和ST2将被统称为输出日志。在日志存储器250B中所存储的、并且仅在硬盘20中对其进行查阅的接收者侧上的类公用密钥KPcmx和逻辑块地址将被统称为内部日志。
当输出该输出日志时,根据在日志存储器250B中所存储的许可证ID(LID)以及其逻辑块地址,将许可证存储器250A中的许可证的存储状态存储在状态ST2中,由此,使输出日志具体化。
将参考示出了各个会话的流程图来描述具体细节。
再次参考图6,常规数据存储部分270存储已加密内容数据。常规数据存储部分270包括盘类磁记录介质2701,用于存储数据;电动机2702,用于旋转磁记录介质2701;伺服控制器2703,用于控制电动机2702;搜索控制部分2704,用于控制在磁记录介质2701上的磁头位置;以及记录/再现处理部分2705,用于指示磁头记录或再现数据。常规数据存储部分270具有与已知硬盘实质上相同的结构,并且不再对其进行详细描述。
控制器214还控制硬盘20中的操作,例如,通过ATA接口部分212的数据的外部传输;与基于控制信息AC的许可证输出有关的确定;以及安全存储部分250的安全数据的管理。
在反篡改模块区域中形成了控制器214、密码通信部分268和安全数据存储部分250。
现在将描述图1所示的数据分发系统的各个会话中的操作。
[分发]
首先,将描述在图1所示的数据分发系统中,将许可证从许可证提供设备40分发到附加到终端设备10上的硬盘20的操作。
图8和9是分别示出了图1所示的数据分发系统的处理(分发会话)的第一和第二流程图。更具体地,这些流程图表示了以下处理,其中,终端设备10的用户通过用户的终端设备10请求已加密内容数据的许可证分发,由此,由许可证提供设备40将许可证分发到附加到终端设备10上的硬盘20。
在开始图8中的处理之前,终端设备10的用户通过调制解调器106,使终端设备10与网络30相连,由此,使终端设备10通过网络30与许可证提供设备40相连。以下描述基于已经进行了上述操作的前提。
参考图8,当终端设备10的用户10请求分发所需内容数据的许可证时,终端设备10的控制器108通过硬盘接口部分110向硬盘20提供对类证书的输出请求(步骤S1)。当硬盘20的控制器214通过终端210和ATA接口部分212接受了对类证书的输出请求时(步骤S2),该控制器通过总线BS3从认证数据保存部分202中读取类证书Cm1=Kpcm1//Icm1//E(Ka,H(KPcm1//Icm1),并且通过ATA接口部分212和终端210将类证书Cm1提供给终端设备10(步骤S3)。
当终端设备10的控制器108通过硬盘接口部分110和总线BS2接受了从硬盘20发送来的类证书Cm1时(步骤S4),该控制器通过调制解调器106和网络30将这样接受的类证书Cm1发送到许可证提供设备40(步骤S5)。
当许可证提供设备40从终端设备10中接收到类证书Cm1时(步骤S6),其验证所接收到的类证书Cm1是否正确(步骤S7)。按照如下方式来进行验证处理。
当许可证接收设备40接受了类证书Cm1=Kpcm1//Icm1//E(Ka,H(KPcm1//Icm1),认证部分418利用认证密钥KPa,对在从硬盘20中所提供的类证书Cm1中所包括的签名数据E(Ka,H(KPcm1//Icm1)进行解密。此外,认证部分318计算在类证书Cm1中所包括的KPcm1//Icm1的散列值,并且将其与利用认证密钥KPa解密后的H(KPcm1//Icm1)的值进行比较。当分发控制部分412根据由认证部分418的解密结果,确定了进行了前述解密,并且其与所出现的散列值相匹配,则认证部分418认证了证书。
当在步骤S7中认证类证书Cm1时,分发控制部分412批准了类证书Cm1,并且接受类公用密钥KPcm1(步骤S8)。然后,在步骤S9中执行接下来的处理。当未认证类证书时,分发控制部分412不批准类证书Cm1,并且向终端设备10提供错误通知,而不接受类证书Cm1(图9中的步骤S44)。当终端设备10接受了错误通知时(图9中的步骤S45),分发会话结束。
作为认证结果,当在许可证提供设备40中确定了从配备有具有正确类证书的硬盘中进行访问时,在步骤S8中接受类公用密钥KPcm1,并且分发控制部分412产生许可证ID(LID)(步骤S9)并且进一步产生了控制信息AC(步骤S10)。会话密钥产生部分414产生了用于分发的会话密钥Ks1a(步骤S11)。加密处理部分420利用与硬盘20相对应的、并且由认证部分418所获得的类公用密钥KPcm1对会话密钥Ks1a进行加密,由此,产生了已加密数据E(KPcm1/Ks1a)(步骤S12)。
分发控制部分412将许可证ID(LID)和已加密会话密钥Ks1a处理为一个数据串LID//E(KPcm1//Ks1a),并且通过总线BS1和通信设备450向外部提供其(步骤S13)。
当终端设备10通过网络30接收到LID//E(KPcm1//Ks1a)时(步骤S14),该终端设备10将所接收到的LID//E(KPcm1//Ks1a)提供给硬盘20(步骤S15)。硬盘20的控制器214通过终端210和ATA接口部分212接受LID//E(KPcm1//Ks1a)(步骤S16)。控制器214通过BS1向解密处理部分230提供所接受的E(KPcm1//Ks1a)。解密处理部分230利用在Kcm保存部分204中所保存的硬盘20所特定的类专用密钥Kcm1来进行解密处理,以便获得会话密钥Ks1a,并且接受会话密钥Ks1a(步骤S17)。
当硬盘20的控制器214确认接受了由许可证提供设备40所产生的会话密钥Ks1a时,该控制器214通过ATA接口部分212和终端210向终端设备10通知该接受。当终端设备10的控制器108通过硬盘接口部分110和总线BS2接受了关于硬盘20接受了会话密钥Ks1a的通知时,其提供通知,该通知通过总线BS2和硬盘接口部分110向硬盘20请求产生要由硬盘20在分发中产生的会话密钥(步骤S18)。当硬盘20的控制器214通过终端210和ATA控制器212接受了对会话密钥产生的请求通知时,控制器214指示会话密钥产生部分226产生要在由硬盘20所进行的分发操作中所产生的会话密钥Ks2a。会话密钥产生部分226产生会话密钥Ks2a(步骤S19)。
会话密钥产生部分226将由此产生的会话密钥Ks2a通过总线BS3提供给控制器214,并且接收到会话密钥Ks2a的控制器214将在步骤S16中所接受的会话密钥Ks2a和许可证ID(LID)存储在安全数据存储部分250的日志存储器250B中,并且将状态ST1设置为“等待接收”(步骤S20)。
随后,加密处理部分224利用通过选择器开关260的触点Pb从解密处理部分230中施加的会话密钥Ks1a,对通过连续地选择选择器开关262的触点Pd和Pf而施加的会话密钥Ks2a和个别公用密钥KPom2所产生的一个数据串进行加密,从而产生E(Ks1a,Ks2a//KPom2)(步骤S21)。加密处理部分224将E(Ks1a,Ks2a//KPom2)提供到总线BS3上,并且将作为由接受数据和许可证ID(LID)所产生的一个数据串的数据LID//E(Ks1a,Ks2a//KPom2))通过ATA接口部分212和终端210提供给终端设备10(步骤S22)。
当终端设备10从硬盘20中接受数据LID//E(Ks1a,Ks2a//KPom2))时(步骤S23),该终端设备10通过网络30将所接受的数据提供给许可证提供设备40(步骤S24)。
当许可证提供设备40接收到数据LID//E(Ks1a,Ks2a//KPom2))时(步骤S25),解密处理部分422利用会话密钥Ks1a来执行处理,并且接受由硬盘20所产生的会话密钥Ks2a和硬盘20的个别公用密钥KPom2(步骤S26)。
分发控制部分412获得与来自内容数据库402中的许可证ID(LID)相对应的数据ID(DID)和内容数据Kc(步骤S27),并且产生作为由数据ID(LID)和这样获得的内容密钥Kc以及许可证ID(LID)和控制信息AC所形成的一个数据串的许可证LIC=Kc//AC//DID//LID。
分发控制部分412将这样产生的许可证LIC提供给加密处理部分424。加密处理部分424利用由解密处理部分422所获得的硬盘20的个别公用密钥KPom2对许可证LIC进行加密,由此,产生了已加密数据E(KPom2,LIC)(步骤S28)。加密处理部分426利用从解密处理部分422中接收到的会话密钥Ks2a,对从加密处理部分424中接收到的已加密数据E(KPom2,LIC)进行加密,以产生已加密数据E(Ks2a,E(KPom2,LIC))(步骤S29)。
参考图9,分发控制部分412通过总线BS1和通信设备450外部提供已加密数据E(Ks2a,E(KPom2,LIC))(步骤S30)。当终端设备10通过网络30接受了已加密数据E(Ks2a,E(KPom2,LIC))时(步骤S31),其将这样接受的已加密数据提供给硬盘20(步骤S32)。
硬盘20的控制器214通过终端210和ATA接口部分212接受已加密数据E(Ks2a,E(KPom2,LIC))(步骤S33),并且将其提供到总线BS3上。解密处理部分228利用从会话密钥产生部分226中提供的会话密钥Ks2a,对提供到总线BS3上的数据E(Ks2a,E(KPom2,LIC))进行解密,并且硬盘20接受通过利用个别公用密钥KPom2来加密加密许可证LIC所准备的已加密许可证E(KPom2,LIC)(步骤S34)。解密处理部分228将已加密许可证E(KPom2,LIC)提供到总线BS3上。
根据控制器214的指示,解密处理部分216利用个别专用密钥Kom,对已加密许可证E(KPom2,LIC)进行解密,以接受许可证LIC(步骤S35)。
当硬盘20的控制器214确认了许可证LIC的接受时,其通过ATA接口部分212和终端210向终端设备10通知该接受。当终端设为10的控制器108通过硬盘接口部分110和总线BS2接受了硬盘20接受了许可证LIC的通知时,控制器108通过硬盘接口部分110向硬盘20提供在其上将接收到的许可证LIC存储在硬盘20的安全数据存储部分250中的逻辑块地址(步骤S36)。硬盘20的控制器214通过终端210和ATA接口部分212接受许可证LIC的目的地的逻辑块地址(步骤S37),并且将所接受的逻辑块地址存储在日志存储器250B中(步骤S38)。
控制器214将在所接受的许可证LIC中所包括的许可证ID(LID)与在步骤S16中所接受的许可证LID(LID)进行比较,并且确定这些许可证ID是否相互匹配(步骤S39)。当确认为相匹配时,控制器214确定所接受的许可证LIC是正确的,并且将从终端设备10中接收到的逻辑块地址处的所接受的许可证LIC存储在安全数据存储部分250中(步骤S40)。
当控制器214存储了在指定逻辑块地址处的许可证LIC时,该控制器214将与有效性标记存储器250C中的该逻辑块地址相对应的标记设置为“有效”(步骤S41)。控制器214还将日志存储器250B中的状态ST1设置为“已接收”(步骤S42),并且向终端设备10通知在分发会话中的一系列处理结束的事实。
当终端设备10接受了从硬盘20提供的处理结束的通知时,在数据分发系统中的分发会话正常结束。
当控制器214在步骤S39中确定了发生了LID的不匹配,以及所接受的LIC不正确时,该控制器214向终端设备10提供错误通知(步骤S43),并且由终端设备10接收该错误通知(步骤S45),从而处理结束。
在图8和9所示的分发处理中,许可证提供设备40按照还未描述的方式记录了处理的历史。然而,与此相关,如图4所示,许可证提供设备40配备有日志数据库404,其中存储了在分发会话中的各种处理的处理历史。除了其他信息之外,日志信息404存储了与许可证的发送相关的记帐信息。
在图8和9所示的分发处理的一系列步骤中,在步骤S25和S44的处理期间可能会发生故障,从而可能会中断处理。在这种情况下,可以进行重写处理。例如,由于各种原因,诸如在处理期间终端设备10的掉电、在许可证提供设备40侧的故障、或者在终端设备10和许可证提供设备40之间的通信中的故障,可能会发生中断。当在从步骤S22的结束到步骤S44的时间段期间可能会发生处理中断时,其中,存储了除了在日志存储器250B中所存储的状态ST2之外的输出日志的所有内容,可以通过执行重写处理向硬盘20提供许可证。由于配置了前述的处理来根据终端设备10的确定来进行重写处理,因此,当除了在从步骤S22到步骤S24中的处理之外,在从步骤S25到步骤S44的处理器件发生了中断时,要进行重写处理,其间终端设备10可以确定处理的进程。当在除了上述步骤之外的其他步骤中发生了中断时,确定许可证提供设备40还未提供许可证,并且根据图8和9的流程图来进行从初始步骤开始的处理。
同样,如果能够指定其中发生了处理中断的步骤,则从步骤S25到步骤S30在许可证提供设备40中所进行的处理,在其之前许可证提供设备40输出了许可证,并不被作为重写处理的目标情况来处理,由此,将其处理为其中要根据图8和9的流程图来进行从初始步骤开始的处理的情况。
图10到12是示出了当在图8和9所示的分发处理中从步骤S25到S44的处理期间发生了故障时,所执行的重写处理的第一到第三流程图。
参考图10,当终端设备10确定了在从步骤S25到步骤S44的处理期间发生了故障时,该终端设备10通过网络30向许可证提供设备40提供了对重写许可证LIC的请求(步骤S101)。当分发控制部分412通过通信设备450和总线BS1接受了该重写请求时(步骤S102),其指示会话密钥产生部分414产生会话密钥。接收到该指示的会话密钥产生部分414产生用于重写处理的会话密钥Ks1b(步骤103)。分发控制部分412从用于存储该会话中向和从硬盘20传送的日志的日志数据库402中,获得与硬盘20相对应的公用密钥KPcm1(步骤S104),并且将其提供给加密处理部分420。接收到类公用密钥KPcm1的加密处理部分420利用会话密钥Ks1b对类公用密钥KPcm1进行加密以产生E(KPcm1,Ks1b)(步骤S105)。分发控制部分412通过总线BS1和通信设备450外部提供E(KPcm1,Ks1b)(步骤S106)。
当终端设备10通过网络30接受了E(KPcm1,Ks 1b)时(步骤S107),该终端设备10将所接受的E(KPcm1,Ks1b)提供给硬盘20(步骤S108)。硬盘20的控制器214通过终端210和ATA接口部分212接受E(KPcm1,Ks1b)(步骤S109)。控制器214通过总线BS3向解密处理部分230提供已接受的E(KPcm1,Ks1b)。解密处理部分230利用由Kcm保存部分204所保存的、并且硬盘20所特定的类专用密钥Kcm1来对其进行解密,已提供会话密钥Ks1b,从而接受会话密钥Ks1b(步骤S110)。
当硬盘20的控制器214确认了由许可证提供设备40所产生的会话密钥Ks1b的接受时,控制器214通过ATA接口部分212和终端210向终端设备10提供接受通知。当终端设备10的控制器108通过硬盘接口部分110和总线BS2接受了硬盘20接受了会话密钥Ks1b的通知时,该控制器108通过硬盘接口部分110向硬盘20提供对安全数据存储部分250中所存储的日志存储器250B的输出请求(步骤S111)。
当硬盘20的控制器214通过终端210和ATA控制器212接受了日志存储器250B的输出请求通知时(步骤S112),控制器214确定在日志存储器250B中所存储的逻辑块地址处所存储的许可证LIC的许可证ID(LID)是否与日志存储器250B中所存储的许可证ID(LID)相匹配(步骤S113)。
当控制器214确定了两个许可证ID(LID)彼此相匹配时,进行分发处理,直到从许可证提供设备40接收到许可证LIC为止,并且识别硬盘20已经接受了许可证LIC。由此,控制器214检查与由日志存储器250B中所存储的逻辑块地址所指定的地址处所存储的许可证相对应的有效性标记存储器250C中所存储的标记,并且确定许可证的有效性(步骤S114)。
当控制器214确定了该许可证有效时,控制器214将日志存储器250B中的状态ST2改变为“数据存在”,然后进行接下来的处理(步骤S118)。当控制器214在步骤S114中确定了许可证无效时,其将日志存储器250B中的状态ST2改变为“已转移”,然后在步骤S118中进行新的处理。
在步骤S113,当控制器214确定了所比较的许可证ID(LID)并不彼此相匹配时,其将日志存储器250B中的状态ST2改变为“没有数据”(步骤S117)。
按照该方式,使用日志存储器250B中所存储的逻辑块地址,并且可以根据逻辑块地址直接确定在该逻辑块地址处所存储的许可证LIC的许可证ID(LID)。由此,即使当许可证存储器250A已经存储了大量许可证时,也能够确定特定许可证ID(LIC)的存在/不存在,而无需逐一检索这些许可证。
当进行处理以改变状态ST2时,控制器214从日志存储器250B中获得了许可证ID(LID)、状态ST1和ST2、以及会话密钥Ks2c(步骤S118)。在这种情况下,将会话密钥Ks2a存储在日志存储器250B中,但是出于描述的原因,示出了从日志存储器250B中所获得的会话密钥Ks2c。控制器214通过总线BS3将这样获得的会话密钥Ks2c提供给加密处理部分224。
加密处理部分224利用通过选择器开关260的触点从解密处理部分230中所施加的会话密钥Ks1b,对从总线BS3中所获得的会话密钥Ks2c进行加密,并且产生了E(Ks1b,Ks2c)(步骤S119)。加密处理部分224将这样产生的E(Ks1b,Ks2c)提供到总线BS3上。控制器214根据E(Ks1b,Ks2c)和在步骤S118中所获得的数据,产生一个数据串LID//E(Ks1b,Ks2c)//ST1//ST2,并且利用散列函数来产生散列值H(LID//E(Ks1b,Ks2c)//ST1//ST2)(步骤S120)。控制器214通过总线BS3向加密处理部分224提供散列值H(LID//E(Ks1b,Ks2c)//ST1//ST2)。
加密处理部分224利用通过选择器开关260的触点Pb从解密处理部分230中所施加的会话密钥Ks1b,对从总线BS3中所获得的散列值H(LID//E(Ks1b,Ks2c)//ST1//ST2)进行加密,以产生E(Ks1b,H(LID//E(Ks1b,Ks2c)//ST1//ST2))(步骤S121)。加密处理部分224将这样产生的E(Ks1b,H(LID//E(Ks1b,Ks2c)//ST1//ST2))提供给总线BS3。数据串LID//E(Ks1b,H(LID//E(Ks1b,Ks2c)//ST1//ST2))被称为“接收日志”,并且E(Ks1b,H(LID//E(Ks1b,Ks2c)//ST1//ST2)是通过利用会话密钥Ks1b将电子符号作用于接收日志所准备的已签名数据。利用会话密钥Ks1b来加密在日志存储器250B中所存储的会话密钥Ks2c的目的是消除由于会话密钥Ks2c的泄漏而造成的许可证的“流出”的可能性。
当控制器214接受了从总线BS3中所发送的签名数据时,其利用在步骤S118中所获得的接收日志来产生已签名接受日志LID//E(Ks1b,Ks2c)//ST1//ST2//E(Ks1b,H(LID//E(Ks1b,Ks2c)//ST1//ST2)),并且通过ATA接口部分212和终端210将其提供给终端设备10(步骤S122)。
当终端设备10接受了从硬盘20发送的已签名接收日志LID//E(Ks1b,Ks2c)//ST1//ST2//E(Ks1b,H(LID//E(Ks1b,Ks2c)//ST1//ST2))(步骤S123),其通过网络30将所接受的数据提供给许可证提供设备40(步骤S124)。许可证提供设备40通过网络30接收已签名接收日志LID//E(Ks1b,Ks2c)//ST1//ST2//E(Ks1b,H(LID//E(Ks1b,Ks2c)//ST1//ST2))(步骤S125)。
参考图11,许可证提供设备40对这样接收到的已签名接收日志LID//E(Ks1b,Ks2c)//ST1//ST2//E(Ks1b,H(LID//E(Ks1b,Ks2c)//ST1//ST2))进行验证(步骤S126)。按照如下方式来进行验证处理。
当分发控制部分412接受了该已签名接收日志时,其将该已签名接收日志的第二半,即,签名数据E(Ks1b,H(LID//E(Ks1b,Ks2c)//ST1//ST2)提供给解密处理部分422。解密处理部分422利用在步骤103中所产生的会话密钥Ks1b对签名数据E(Ks1b,H(LID//E(Ks1b,Ks2c)//ST1//ST2)进行解密。分发控制部分412计算该已签名接收日志的第一半,即接收日志LID//E(Ks1b,Ks2c)//ST1//ST2的散列值,并且将其与由解密处理部分422已解密的值H(LID//E(Ks1b,Ks2c)//ST1//ST2进行比较。当分发控制部分412根据解密处理部分422的解密结果确定了可以进行解密,并且这些值相匹配时,许可证提供设备40认证了从硬盘20中所接收到的数据串包括正确的数据。
当在步骤S126中认证了从硬盘20接收到的已签名接收日志时,分发控制部分412根据所接受的许可证ID(LID)来搜索日志数据库404(步骤S127)。当分发控制部分412确定了所接受的许可证ID(LID)存储在日志数据库404中,并且其确实为提供给硬盘20的许可证时,该分发控制部分412检查所接受的状态ST1和ST2的内容(步骤S128)。
当状态ST1为“等待接收”,并且状态ST2为“没有数据”时,分发控制部分412确定由于特定故障,硬盘20还未接受要发送到硬盘20的许可证LIC。由此,分发控制部分412将在所接收到的数据串中所包括的已加密数据E(Ks1b,Ks2c)提供给解密处理部分422,并且解密处理部分422利用会话密钥Ks1b对其进行解密以接受会话密钥Ks2c。将已解密会话密钥Ks2c通过总线BS1提供给分发控制部分412,并且由分发控制部分412接受(步骤S129)。
分发控制部分412将当发生故障时正在处理的会话密钥Ks2a与当前所接受的会话密钥Ks2c进行比较(步骤S130)。当分发控制部分412确定了会话密钥Ks2a与会话密钥Ks2c相匹配时,该分发控制部分412提供了用于将许可证LIC重写到终端设备10的许可通知(步骤S133)。
与以上所述相反,在步骤S126中可能未认证从硬盘20接收到的数据串。此外,在步骤S127中,从硬盘20中接收到的许可证ID(LID)可能并未存储在日志数据库404中,因此,不能够将其确定为提供给硬盘20的许可证的ID。在步骤S128,可以确定在硬盘20中接受了许可证LIC。在步骤S130,可以确定会话密钥Ks2a和Ks2c彼此不相匹配。在这些情况下,分发控制部分412通过总线BS1和通信设备450发出错误通知(步骤S131)。当终端设备10通过网络30接受了错误通知时(步骤S132),该处理结束。因此,许可证提供设备40拒绝许可证的重写,并且处理结束。
当在步骤S134,终端设备10的控制器108接受了在步骤S133由许可证提供设备40所发出的许可通知时,该控制器108通过总线BS2和硬盘接口部分110向硬盘20发出对产生要由硬盘20的分发操作产生的会话密钥的请求通知(步骤S135)。
当硬盘20根据从许可证提供设备40所提供的重写处理许可通知,接受了从终端设备10发出的对产生会话密钥的请求通知时,除了作为图8和9所示的从步骤S19到处理结束的一系列处理中的会话密钥Ks2a的替代,新产生和使用该会话密钥Ks2b之外,执行类似的处理。因此,不将描述在步骤S135之后的一系列处理。
当在图10到12的流程图中所示的许可证分发期间的重写处理中发生了中断时,进行如下处理。当在步骤S101-S131、S133和S142-S160任一个中发生了中断时,可以根据图10到12的流程图来进行重写处理。当在步骤S134-S141的任一个中发生了中断时,则从初始步骤开始重新开始图8和图9中的流程图所示的许可证分发处理,从而可以恢复该处理。
如上所述,确认了附加到终端设备10上的硬盘20保存了正确的类证书Cm1。在该确认之后,利用与包括其的类证书Cm1一起发送的类公用密钥KPcm1,相互传送分别由许可证提供设备40和硬盘20所产生的加密密钥(会话密钥)。每一侧均利用所接收到的加密密钥来执行加密,并且将已加密数据发送到相对侧,从而实际上在相对侧之间传送已加密数据的处理中进行相互认证。由此,能够禁止向硬盘未授权地分发许可证,并且可以提高数据分发系统的安全性。
此外,即使当中断了许可证分发处理,也将在作为接收机侧上的数据存储设备的硬盘20上的接收日志发送到许可证提供设备40,从而可以安全地进行许可证的重发,而不会进行许可证的双重分发。
当指示了用于将许可证存储在硬盘20上的逻辑块地址时,将该逻辑块地址存储为日志的一部分。由此,当在分发会话期间发生了故障时,可以根据在日志存储器250B中所存储的逻辑块地址,直接检查在许可证存储器250A中、要在相同会话期间记录的许可证LIC的存储状态,而无需搜索能够存储大量许可证的许可证存储器250A中的数据,并且可以快速地产生接收日志。因此,在分发处理中可以快速地进行重写处理。
在以上描述中,已签名接收日志是LID//E(Ks1b,Ks2c)//ST1//ST2//E(Ks1b,H(LID//E(Ks1b,Ks2c)//ST1//ST2))。为了更为快速地进行验证,已签名接收日志可以是LID//ST1//ST2//H(Ks1b,LID//Ks2c)//ST1//ST2))。在这种情况下,也通过验证已签名接收日志来识别Ks1b和Ks2c的共享。此外,可以取消在签名时的两种加密处理和在验证时的两种解密处理,从而验证处理可以变得快速。
[转移/拷贝]
图13是示出了进行拷贝/转移处理的系统结构的概念的示意图。参考图13,可以将两个数据存储设备,即,两个硬盘(HD)20和21附加到终端设备10上,并且能够通过终端设备10来进行从硬盘20到硬盘21的拷贝和转移。
由于硬盘21是不同于硬盘20的数据存储设备,其保存与硬盘20不同的个别公用密钥KPom5和个别专用密钥Kom5。在这种情况下,硬盘21的标识符在等于5(z=5),并且因此不同于等于2的硬盘20的z。在以下的描述中,硬盘21的类等于硬盘20的类,并且因而等于一个(y=1)。因此,每一个硬盘20和21保存了类证书Cm1=KPcm1//Icm1//E(Ka,KPcm1//Icm1)和类专用密钥Kcm1。然而,如果硬盘21的类不同于一个,即,硬盘20的类,则类证书和类专用密钥不同于硬盘21的情况,与个别公用密钥和个别专用密钥类似。
图14和15是分别示出了图13所示的允许证书拷贝/转移的系统的处理(拷贝/转移会话)的第一和第二流程图。在所示的处理中,终端设备10的用户从终端设备10中请求已加密数据的许可证的拷贝或转移,从而通过终端设备10将许可证从附加到终端设备10上的硬盘20拷贝或转移到硬盘21上。
参考图14,当终端设备10的用户请求针对所需内容数据进行许可证拷贝和转移时,终端设备10的控制器108通过总线BS2和硬盘接口部分110向硬盘21发出对类证书的输出请求(步骤S201)。当硬盘21的控制器214通过终端210和ATA接口部分212接受了对类证书的输出请求时(步骤S202),该控制器214从认证数据保存部分202中读取类证书Cm1=KPcm1//Icm1//E(Ka,H(KPcm1//Icm1)),并且通过ATA接口部分212和终端210向终端设备10提供类证书Cm1(步骤S203)。
当终端设备10从硬盘21接收到类证书Cm1时(步骤S204),其向硬盘20发送类证书Cm1(步骤S205)。
当硬盘20从终端设备10接收到硬盘21的类证书Cm1时(步骤S206),该硬盘20验证所接受的硬盘21的类证书Cm1是否为正确的类证书(步骤S207)。进行如下的验证处理。
当硬盘20接受了硬盘21的类证书Cm1=KPcm1//Icm1//E(Ka,H(KPcm1//Icm1))时,硬盘20认证部分220利用认证密钥Kpa,对在硬盘21的类证书Cm1中所包括的签名数据E(Ka,H(KPcm1//Icm1))进行解密。此外,认证部分220计算在类证书Cm1中所包括的KPcm1//Icm1的散列值,并且将该散列值与由认证部分220所解密的值H(KPcm1//Icm1)进行比较。当硬盘20的控制器214根据认证部分220的解密结果确定了可以进行解密,并且这些值相匹配时,其确定所接受的硬盘21的类证书Cm1是正确的证书。
当在步骤S207确定了硬盘21的类证书Cm1是正确的证书时,硬盘20的控制器214批准硬盘21的类证书Cm1,接受在硬盘21是的类证书Cm1中所包括的硬盘21的类公用密钥KPcm1,并且将硬盘21的类证书Cm1存储在硬盘20的安全数据存储部分250的日志存储器250B中(步骤S208)。然后,在步骤S209中进行接下来的处理。当其不是硬盘21的正确类证书时,控制器214向终端设备10发出错误通知,而不批准和接受硬盘21的类证书Cm1(图15中的步骤S252)。当终端设备10接受了错误通知时(图15中的S253),该分发会话结束。
当硬盘20根据步骤S207中的验证结果确定了硬盘21具有正确的类证书时,在步骤S208中接受硬盘21的类证书Cm1,从而在硬盘20中的会话密钥产生部分226产生了会话密钥Ks1a(步骤S209)。加密处理部分222利用由认证部分220所获得的硬盘21的类公用密钥KPcm1,对会话密钥Ks1a进行加密,以产生已加密数据E(KPcm1//Ks1a)(步骤S210)。
控制器214通过ATA接口部分212和终端210,将许可证ID(LID)和已加密会话密钥Ks1a作为一个数据串LID//E(KPcm1//Ks1a)提供给终端设备10(步骤S211)。
硬盘20的控制器214已经通过预先查阅管理文件,获得了许可证ID(LID)。该管理文件是存储了用于管理在硬盘20上存储的已加密内容数据和许可证之间的关系的管理数据的数据文件,并且存储在常规数据存储部分270中。响应已加密内容数据的记录或删除、以及许可证的写、转移和删除,对管理文件的内容进行更新。
当终端设备10接受了LID//E(KPcm1//Ks1a)时(步骤S212),该终端设备10通过终端210和ATA接口部分212,向硬盘21提供所接受的LID//E(KPcm1//Ks1a)(步骤S214)。然后,控制器214通过总线BS3将E(KPcm1//Ks1a)提供给解密处理部分230。解密处理部分230利用由Kcm保存部分204所保存的、并且硬盘21所特定的类专用密钥Kcm1,对其进行解密,以获得并接受会话密钥Ks1a(步骤S215)。
当硬盘21的控制器214确认接受了由硬盘20所产生的会话密钥Ks1a时,该控制器2 14通过ATA接口部分212和终端210向终端设备10通知该接受。当终端设备10接受了硬盘21接受了会话密钥Ks1a的通知时,终端设备10向硬盘21发出对要在拷贝/转移操作中由硬盘21产生的会话密钥的产生请求通知(步骤S216)。当硬盘21的控制器214通过终端210和ATA控制器212接受了对会话密钥的产生请求的通知时,其指示会话密钥产生部分226产生要在许可证拷贝/转移操作中产生的会话密钥。会话密钥产生部分226产生会话密钥Ks2a(步骤S217)。
会话密钥产生部分226通过总线BS3向控制器214提供由此产生的会话密钥Ks2a,并且接收到会话密钥Ks2a的控制器214将在步骤S214中所接受的许可证ID(LID)和会话密钥Ks2a存储在硬盘21的安全数据存储部分250的日志存储器250B中,并且将状态ST1设置为“等待接收”(步骤S218)。
随后,硬盘21的加密处理部分224利用通过选择器开关260的触点Pb从解密处理部分230所施加的会话密钥Ks1a,对通过连续地在触点Pd和Pf之间切换选择器开关所施加的、由会话密钥Ks2a和个别公用密钥Kpom5所形成的一个数据串进行加密,由此,产生了E(Ks1a,Ks2a//KPom5)(步骤S219)。加密处理部分224将E(Ks1a,Ks2a//KPom5)提供到总线BS3上。控制器214接受提供到总线BS3上的已加密数据E(Ks1a,Ks2a//KPom5),并通过ATA接口部分212和终端210,将由所接受的已加密数据和许可证ID(LID)所产生的一串数据LID//E(Ks1a,Ks2a//KPom5)提供给终端设备10。
当终端设备10从硬盘21接受了LID//E(Ks1a,Ks2a//KPom5)时(步骤S221),其向硬盘20输出所接受的数据(步骤S222)。
当硬盘20接受了数据LID//E(Ks1a,Ks2a//KPom5)时(步骤S223),解密处理部分228利用会话密钥Ks1a来进行解密处理,以接受由硬盘21所产生的会话数据Ks2a、以及硬盘21的个别公用密钥KPom5(步骤S224)。解密处理部分228通过总线BS3向控制器214提供已解密会话密钥Ks2a,并且控制器214将在步骤S223中接受的许可证ID(LID)和会话密钥Ks2a存储在硬盘20的安全数据存储部分250的日志存储器250B中,并且将状态ST1设置为“等待发送”(步骤S225)。
当在步骤S225中的处理结束时,硬盘20的控制器214通过ATA接口部分212和终端210向终端设备10通知该结束。当终端设备10的控制器108通过硬盘接口部分110和总线BS2接受了从硬盘20发送来的通知时,其通过总线BS2和硬盘接口部分110,向硬盘20提供在其上存储了要从硬盘20发送到硬盘21的许可证LIC的、硬盘20的安全数据存储部分250中的逻辑块地址(步骤S226)。当硬盘20的控制器214通过终端210和ATA接口部分212接受了要发送的许可证LIC的目的地的逻辑块地址时(步骤S227),该控制器214将所接受的逻辑块地址存储在安全数据存储部分250的日志存储器250B中(步骤S228)。
控制器214确定与存储在所接受的逻辑块地址处的许可证LIC相对应的有效性标记存储器250C中的标记是“有效”还是“无效”(步骤S229)。当有效性标记是“有效”时,控制器214根据所接受的逻辑块地址,获得要存储在所接受的逻辑块地址处的许可证LIC(步骤S230)。
参考图15,当控制器214获得了目标许可证LIC时,其将包括在许可证LIC中的许可证ID(LID)与在步骤S223中所接受的许可证ID(LID)进行比较,并且检查这些ID是否彼此匹配(步骤S231)。当控制器214确认了该匹配时,其确定在所获得的许可证LIC中所包括的控制信息AC,并且检查是否对使用施加限制(步骤S232)。
当控制器214确定了控制信息AC并且未禁止许可证LIC的使用时,该控制器214将所获得的许可证LIC施加到加密处理部分232。加密处理部分232利用由解密处理部分228所获得的硬盘21的个别公用密钥KPom5对许可证LIC进行加密,以产生已加密数据E(KPom5,LIC)(步骤S233)。加密处理部分232通过选择器开关Pc,将已加密数据E(KPom5,LIC)提供给加密处理部分224,并且加密处理部分224利用从解密处理部分228中所接收到的会话密钥Ks2a,对从加密处理部分232中接收到的已加密数据进行加密,以产生已加密数据E(Ks2a,E(KPom5,LIC))(步骤S234)。
根据在目标许可证中所包括的控制信息AC,然后,控制器214确定从硬盘20到硬盘21的许可证LIC的发送是“转移”还是“拷贝”(步骤S235)。当控制器214确定了其是“转移”时,该控制器214将与目标许可证LIC相对应的有效性标记存储器250C中的标记设置为“无效”(步骤S236)。当控制器214确定了其为“拷贝”时,可以将当前许可证留在硬盘20上,从而其开始在步骤S237中的接下来的步骤,而无需改变有效性标记存储器25)C中的标记。
当有效性标记存储器250C中的处理结束时,控制器214将日志存储器250B中的状态ST1改变为“已发送”(步骤S237),并且通过ATA接口部分212和终端210向终端设备10发送已加密数据E(Ks2a,E(KPom5,LIC))(步骤S238)。
在一些情况下,即,当与在步骤S229中所接受的逻辑块地址相对应的有效性标记存储器250C中的标记是“无效”时,当在步骤S231中并未发生许可证ID(LID)的匹配时,或者当在所获得的许可证LIC中所包括的控制信息AC禁止使用在步骤S232中所获得的许可证LIC时,控制器214向终端设备10发出错误通知(步骤S252)。当终端设备10接受了错误通知时(步骤S253),则处理结束。
当终端设备10接受了在步骤S238从硬盘20中提供的已加密数据E(Ks2a,E(KPom5,LIC))时(步骤S239),该终端设备10将这样接受的已加密数据提供给硬盘21(步骤S240)。当硬盘21的控制器214通过终端210和ATA接口部分212接受了已加密数据E(Ks2a,E(KPom5,LIC))时(步骤S241),控制器214将其提供到总线BS3上。解密处理部分228利用从会话密钥产生部分226中所提供的会话密钥Ks2a,对提供到总线BS3上的数据E(Ks2a,E(KPom5,LIC))进行解密,并且硬盘21接受通过利用个别公用密钥KPom5对许可证LIC进行加密所准备的已加密许可证E(KPom5,LIC)(步骤S242)。解密处理部分228将已加密的许可证E(KPom5,LIC)提供到总线BS3上。
根据控制器214的指示,利用个别专用密钥Kom5对已加密许可证E(KPom5,LIC)进行解密,并硬盘21接受了许可证LIC(步骤S243)。
当控制器214确认许可证LIC的接受时,其通过ATA接口部分212和终端210向终端设备10通知该接受。当终端设备10的控制器108通过硬盘接口部分110和总线BS2,接收硬盘21接受了许可证LIC的通知,该控制器108通过硬盘接口部分110,向硬盘21提供在其上要将接收到的许可证LIC存储在硬盘21的安全数据存储部分250中的逻辑块地址(步骤S244)。当硬盘21的控制器214通过终端210和ATA接口部分212接受了许可证LIC的目的地的逻辑块地址时(步骤S245),该控制器214将所接受的逻辑块地址存储在日志存储器250B中(步骤S246)。
控制器214将在所接受的许可证LIC中所包括的许可证ID(LID)与在步骤S214中接受的许可证ID(LID)进行比较,并且确定这些ID是否彼此相匹配(步骤S247)。当这些ID彼此相匹配时,控制器214确定了接受的许可证LIC是正确的,并且将所接受的LIC存储在安全数据存储部分250中的、从终端设备10接收到的逻辑块地址处(步骤S248)。
当控制器214将许可证LIC存储在指定逻辑块地址处时,该控制器214将在许可证标记存储器250C中与该逻辑块地址相对应的标记设置为“有效(步骤S249)。控制器214将日志存储器250B中的状态ST1设置为“已接收”(步骤S250),并且通过ATA接口部分212和终端210,向终端设备10通知关于在拷贝/转移会话中的一系列处理结束的事实。
当终端设备10接受了从硬盘21发送的处理结束通知时,在硬盘20和21之间的拷贝/转移会话正常结束。
当在步骤S247中,在这些ID之间发生了不匹配时,控制器214确定了所接受的许可证LIC是不正确的,并且通过ATA接口部分212和终端210向终端设备10发出错误通知(步骤S251)。当终端设备10接受了该错误通知时(步骤S253),拷贝/转移会话结束。
与分发会话类似,当由于在从步骤S227到S252的处理期间的故障,在图14和15所示的拷贝/转移会话的一系列处理中发生了中断时,要进行重写处理。
在图14和15所示的拷贝/转移会话中,当出于以下理由,在从步骤S227到步骤S235的处理期间发生了中断时,要进行重写处理。从步骤S227到步骤S235的一系列处理是内部处理,并且不能够从步骤S227到步骤S238的步骤中指定终端设备10的处理发生了故障的步骤。因此,假定执行步骤S236以使许可证在所有的情况下均无效,因此,要按如上所述来进行重写处理。
出于以下理由,针对从步骤S236到步骤S247的处理,要进行重写处理。在转移处理中,在步骤S236,使硬盘20上的许可证无效,并且该许可证将在从步骤S236到步骤S247的上述时间段内无效。此外,在上述的时间段内,在硬盘21上不存在有效许可证。因此,如果在上述时间段内中断了该处理,则目标许可证丢失。在拷贝处理的情况下,由于在步骤S236中,并未使许可证无效,则可以与转移处理的情况类似地进行重写处理,或者可以从初始步骤重新开始拷贝处理。然而,在转移处理的情况下,只有重写处理可以恢复许可证。
出于以下理由,针对从步骤S248到步骤S250的处理进行重写处理。在步骤S248中写入许可证之后进行步骤S249和S250,因此,在这些步骤之前,主要处理已经完成。然而,终端设备10不能够确定步骤S248的结束,因此假定步骤S248还未结束,并且对其进行配置以进行针对步骤S248到步骤S250的重写处理。当在步骤S248结束之后进行重写处理时,将在重写处理中拒绝重写。
出于以下理由,针对步骤S251中的处理,也进行重写处理。在步骤S51中的处理主要仅在极其特殊的情况下中断,但是不能够确定关于在步骤S251中处理已中断的事实。因此,配置该系统以进行针对步骤S251的重写处理。
当在终端设备10中确定了会话是如上所述的许可证拷贝时,或者当能够在步骤S227-S235和步骤S249-S251中指定处理已中断的步骤时,不一定需要该重写处理,而仅需要再次执行图14和15所示的拷贝/转移会话。
图16到18分别是第一到第三流程图。这些流程图示出了当在图14和15所示的拷贝/转移会话的处理流程中从步骤S227到步骤S252的处理期间发生了故障时,所进行的重写处理。
参考图16,当终端设备10确定了在从步骤S227到步骤S252的处理期间发生了故障时,该终端设备10向硬盘20发出对重发许可证LIC的请求(步骤S301)。当硬盘20的控制器214通过终端210和ATA接口部分212接受了该重发请求时,其确定在安全数据存储部分250的日志存储器250B中所存储的状态ST1的状态(步骤S302)。当控制器214确定了状态ST1既不是“等待发送”又不是“已发送”时,即,当其在拷贝/转移会话中未处于许可证LIC的发送机侧时,处理移动到图18中的步骤S371。
当状态ST1是“等待发送”或“已发送”时,硬盘20的控制器214指示会话密钥产生部分226产生会话密钥,并且会话密钥产生部分226产生会话密钥Ks1b(步骤S303)。当产生了会话密钥Ks1b时,在步骤S304中,控制器214获得了在中断之前所接受的、并且已经存储在日志存储器250B中的硬盘21的公用密钥KPcm1。加密处理部分222利用硬盘21的类专用密钥KPcm1对会话密钥Ks 1b进行加密,以产生已加密数据E(KPcm1,Ks1b)(步骤S305)。控制器214通过ATA接口部分212和终端210,将这样产生的已加密数据(KPcm1,Ks1b)提供给终端设备10(步骤S306)。
终端设备10接受已加密数据(KPcm1,Ks1b)(步骤S307),并且将其提供给硬盘21。硬盘21的控制器214通过终端210和ATA接口部分212接受已加密数据(KPcm1,Ks1b)(步骤S309),并且通过总线BS3将其提供给解密处理部分230。解密处理部分230利用硬盘21所特定的、并且由Kcm保存部分204所保存的类专用密钥Kcm1进行解密,以获得并接受会话密钥Ks1b(步骤S310)。
当硬盘21的控制器214确认接受了由硬盘20所产生的会话密钥Ks1b,该控制器214通过ATA接口部分212和终端210向终端设备10通知该接受。当终端设备10的控制器108通过硬盘接口部分110和总线BS2接受了从硬盘21发送来的该通知时,其通过总线BS2和硬盘接口部分110,向硬盘21发送用于请求向硬盘20输出在硬盘21中的日志存储器250B中所存储的日志的请求(步骤S311)。当硬盘21的控制器214通过终端210和ATA控制器212接受了对日志的输出请求时(步骤S312),其确定存储在日志存储器250B中所存储的逻辑块地址处的许可证LIC的许可证ID(LID)是否与在日志存储器250B中所存储的许可证ID(LID)相匹配(步骤S313)。
当这些许可证ID(LID)彼此相匹配时,控制器214还检查与存储在日志存储器250B中所存储的逻辑块地址处的许可证LIC相对应的、有效性标记存储器250C中的标记,并且确定许可证LIC是有效还是无效(步骤S314)。当在有效性标记存储器250C中的标记是“有效”时,控制器214将日志存储器250B中的状态ST2改变为“数据存在”(步骤S315),并且在步骤S318中开始接下来的步骤。当在有效性标记存储器250C中的标记为“无效”时,控制器214将日志存储器250B中的状态ST2改变为“已发送”(步骤S316),并且在步骤S318中开始接下来的步骤。
当在步骤S313中,这些许可证ID(LID)不匹配时,控制器214将日志存储器250B中的状态ST2改变为“没有数据”(步骤S317)。
在拷贝/转移会话中,如上所述,同样使用了在日志存储器250B中所存储的逻辑块地址,并且可以根据逻辑块地址,直接确认由逻辑块地址所指定的许可证存储器250A的存储位置中所存储的许可证的许可证ID(LID)。因此,即使当许可证存储器250A已经存储了大量许可证,也可以指定许可证ID(LID),或者可以确定其存在/不存在,而无需逐一检索这些许可证。
当状态ST2改变时,控制器214从日志存储器250B中获得了许可证ID(LID)、状态ST1和ST2、以及会话密钥Ks2c(步骤S318)。在这种情况下,将会话密钥Ks2a存储在日志存储器250B中,但是出于描述的原因,示出了从日志存储器250B中所获得的会话密钥Ks2c。控制器214通过总线BS3,将这样获得的会话密钥Ks2c提供给加密处理部分224。
加密处理部分224利用通过选择器开关260的触点Pb从解密处理部分230中施加的会话密钥Ks1b,对会话密钥Ks2c进行加密,并且产生了E(Ks1b,Ks2c)(步骤S319)。加密处理部分224将这样产生的E(Ks1b,Ks2c)提供到总线BS3上。控制器214接受总线BS3上的E(Ks1b,Ks2c),根据E(Ks1b,Ks2c)和在步骤S318中所获得的数据,产生一个接收日志LID//E(Ks1b,Ks2c)//ST1//ST2,并且产生散列值H(LID//E(Ks1b,Ks2c)//ST1//ST2)(步骤S320)。控制器214通过总线BS3将散列值H(LID//E(Ks1b,Ks2c)//ST1//ST2)提供给加密处理部分224。
加密处理部分224利用通过选择器开关260的触点Pb从解密处理部分230中施加的会话密钥Ks1b,对从总线BS3中获得的散列值H(LID//E(Ks1b,Ks2c)//ST1//ST2)进行加密,以产生签名数据E(Ks1b,H(LID//E(Ks1b,Ks2c)//ST1//ST2))(步骤S321)。加密处理部分224将这样产生的E(Ks 1b,H(LID//E(Ks1b,Ks2c)//ST1//ST2))提供给总线BS3。
当控制器214从总线BS3中获得了该签名数据时,其利用在步骤S318中所获得的接收日志,产生已签名接受日志LID//E(Ks1b,Ks2c)//ST1//ST2//E(Ks1b,H(LID//E(Ks1b,Ks2c)//ST1//ST2)),并且通过ATA接口部分212和终端210,将其提供给终端设备10(步骤S322)。
当终端设备10从硬盘21接受了已签名接收日志LID//E(Ks1b,Ks2c)//ST1//ST2//E(Ks1b,H(LID//E(Ks1b,Ks2c)//ST1//ST2))时(步骤S323),其将所接受的数据提供给硬盘20(步骤S324)。
当硬盘20接受了已签名接收日志LID//E(Ks1b,Ks2c)//ST1//ST2//E(Ks1b,H(LID//E(Ks1b,Ks2c)//ST1//ST2))时(步骤S325),该硬盘20验证所接受的数据(步骤S326)。按照如下方式来进行验证操作。
当硬盘20的控制器214接受了该已签名接收日志时,其将已签名接收日志的第二半,即,签名数据E(Ks1b,H(LID//E(Ks1b,Ks2c)//ST1//ST2))提供给解密处理部分228。解密处理部分228利用在步骤S303中所产生的会话密钥Ks1b,对签名数据E(Ks1b,H(LID//E(Ks1b,Ks2c)//ST1//ST2))进行解密。硬盘20的控制器214计算已签名接收日志的第一半,即,接收日志LID//E(Ks1b,Ks2c)//ST1//ST2的散列值,并且将其与由解密处理部分228已解密的值H(LID//E(Ks1b,Ks2c)//ST1//ST2)进行比较。当硬盘20的控制器214根据解密处理部分228的解密结果,确定了可以进行解密,并且这些值相匹配时,硬盘20的控制器214认证了从硬盘21接收到的数据串包括正确的数据。
当在步骤S326中验证了已签名接收日志,并且在硬盘20中认证了其数据时,硬盘20的控制器214将在步骤S325中接受的数据中所包括的许可证ID(LID)与日志存储器250B中所存储的许可证ID(LID)进行比较(S327)。
当这些许可证ID(LID)彼此相匹配时,控制器214将在接收到的数据串中所包括的已加密数据E(Ks1b,Ks2c)提供给解密处理部分228,并且解密处理部分228利用会话密钥Ks1b对其进行解密以接受会话密钥Ks2c(步骤S328)。将通过解密获得的会话密钥Ks2c通过总线BS3提供给控制器214。然后,控制器214将当发生故障时正在使用的会话密钥Ks2a与当前所接受的会话密钥Ks2c进行比较,并且对其进行检查(步骤S329)。当控制器214确定了在会话密钥Ks2a和Ks2c之间发生了匹配时,其检查所接受的状态ST1和ST2的内容(步骤S330)。
当接收到的状态ST1为“等待接收”,并且状态ST2是“没有数据”时,硬盘20的控制器214确定由于特定的故障,硬盘21并未接受被发送到硬盘21的许可证LIC。由此,硬盘20的控制器214还确定在日志存储器250B中所存储的逻辑块地址处所存储的许可证LIC的许可证ID(LID)是否与日志存储器250B中所存储的许可证ID(LID)相匹配(步骤S331)。当这些许可证ID(LID)彼此相匹配时,硬盘20的控制器214检查与日志存储器250B中所存储的逻辑块地址相对应的有效性标记存储器250C中的标记,并且确定许可证LIC是否有效(步骤S332)。当有效性标记存储器250C中的标记为“无效”时,控制器214将有效性标记存储器250C中的标记改变为“有效”(步骤S333)。当有效性标记存储器250C中的标记为“有效”时,控制器214开始在步骤S334中接下来的步骤。控制器214获得在日志存储器250B中所存储的逻辑块地址,并且通过ATA接口部分212和终端210,将其提供给终端设备10(步骤S334)。
当终端设备10的控制器108通过硬盘接口部分110和总线BS2,从硬盘20接收到在其上要存储目标许可证LIC的逻辑块地址时(步骤S335),控制器108通过总线BS2和硬盘接口部分110,向硬盘21发出关于产生要在拷贝/转移操作期间在硬盘21上产生的会话密钥的请求通知(步骤S336)。
当硬盘21从终端设备10接受了针对会话密钥的产生请求通知时,除了新产生会话密钥Ks2b,并且使用其来替代会话密钥Ks2a之外,与图14和15所示的从步骤S217到结束的一系列处理类似地进行处理。因此,将不再描述在步骤S336之后的一系列处理。
然而,处理可能在步骤S335之后结束,以将许可证留在硬盘20上。在这种情况下,可以根据图14和15的流程图来再次转移许可证。
与在根据图16-18的流程图的许可证的转移或写入期间的重写处理的中断相关,当在步骤S301-S344和步骤S347-S371的任一个中中断了该处理时,可以再次根据图16-18的流程图来进行重写处理。当在步骤S324-S346的任一个中中断了该处理时,可以通过根据图14和15的流程图从其初始步骤开始处理,可以进行用于转移或拷贝许可证的处理,由此,可以恢复该处理。
按照该方式,与附加到终端设备10上的多个硬盘之间的许可证的拷贝或转移相关,通过从硬盘21接收到的类证书Cm1,即转移或拷贝的目的地是有效的,来进行处理,并且由各个硬盘产生加密密钥(会话密钥),并且在各个硬盘之间传送该加密密钥,在各个硬盘之间,利用与包含其的类证书Cm1一起发送的类专用密钥KPcm1来进行许可证的拷贝或转移。每一个硬盘利用这样接收到的加密密钥来进行加密,并且将已加密数据发送到相反侧。由此,能够禁止将许可证未授权地拷贝和转移到硬盘。此外,实际上,可以在传送已加密数据的处理中进行相互认证。由此,能够保护许可证免于目的地的欺骗,并且可以提高系统的安全性。
此外,当在许可证的拷贝/转移会话中发生了中断时,与分发会话中的情况类似地进行处理,因此,进行如下处理。将硬盘21,即接收机侧的数据存储设备中的、要由拷贝/转移会话处理的许可证LIC的接收日志发送到硬盘20,即,发送机侧的数据存储设备,并且在硬盘20中进行处理,以便将硬盘20的日志存储器250B中所存储的内容与许可证存储器250A所存储的、并且由日志存储器250B中所存储的逻辑块地址所指定的许可证LIC进行比较。此外,查阅在有效性标记存储器250C中所存储的标记。由此,在所中断的拷贝/转移会话是转移许可证的处理的情况下,可以安全地进行重写处理,而不允许可能在两个数据存储设备即硬盘20和21中使用的许可证的双重存在。
除了上述情况之外,当在硬盘21即接收机侧的数据存储设备中指定了用于存储许可证的逻辑块地址时,将该逻辑块地址记录为日志的一部分。由此,在拷贝/转移会话期间发生了故障的情况下,可以直接检查要在该会话中在许可证存储器250A中存储的许可证LIC的存储状态,而无需搜索能够存储大量许可证的许可证存储器250A中的数据。这允许接收日志的快速产生。因此,与以上描述的处理类似,在拷贝/转移处理中,可以快速地进行重写处理。此外,在硬盘20中,即,在发送机侧的数据存储设备中,能够直接确定作为处理目标的许可证LIC的内容和状态(允许/禁止使用)。
如上所述,本发明提供了数据存储设备和处理方式和进程,能够进行快速的处理,同时避免了由于拷贝/转移会话的中断而造成的许可证LIC的丢失,并且还提供了数据存储设备和处理方式或进程,即使当要进行重写处理时,也能够实现安全处理和可靠的版权保护。
图14-18中的硬盘21的处理步骤S202、S203、S214、S215、S217-S220、S241-S243、S245-S251、S309、S310、S312-S322、S337-S340、S361-S363和S365-S371分别与图8-12中的硬盘20的处理步骤S2、S3、S16、S17、S19-S22、S33-S35、S37-S43、S109、S110、S112-S122、S136-S139、S150-S152和S154-S160相同。因此,用于转移或拷贝许可证的硬盘21的处理与用于分发许可证的硬盘20的处理相同。均在数据存储设备即硬盘20和21中进行这些种类的处理,作为将许可证写入数据存储设备的处理。
与分发处理类似,已签名接收日志可以是LID//ST1//ST2//H(Ks1b,LID//Ks2c//ST1//ST2))。
[再现许可]
再次参考图5,将充当数据存储设备的硬盘20附加到配备有用于再现内容数据的再现电路150的终端设备10上,并且硬盘20将内容数据的再现许可提供给终端设备10中的再现电路150。
图19是示出了处理(再现许可会话)处理的流程图,其中,终端设备10的用户从终端设备10发出了对已加密内容数据的再现请求,由此,附加到终端设备10上的硬盘20将再现许可提供给终端设备10中的再现电路150。
参考图19,当终端设备10的用户请求再现所需内容数据时,终端设备10的控制器108通过总线BS2,向再现电路150发出对类证书的输出请求(步骤S401)。当再现电路150中的认证数据保存部分1502从总线BS2中接收到对类证书的输出请求时(步骤S402),其将这样保存的类证书Cp3=KPcp3//Icp3//E(Ka,H(KPcp3//Icp3)提供到总线BS2上(步骤S403)。
控制器108接收从总线BS2发送来的类证书Cp3(步骤S404),并且通过总线BS2和硬盘接口部分110,将所接受的类证书Cp3提供给硬盘20。
硬盘20接收从终端设备10发送来的类证书Cp3(步骤S406),并且验证所接受的类证书Cp3是否正确(步骤S407)。按照已经结合在拷贝/转移会话中的步骤S207描述的相同的方式来进行验证处理,因此,不重复对其的描述。
当在步骤S407确定了类证书Cp3是正确的,控制器214批准类证书Cp3,并且接受在类证书Cp3中所包括的类专用密钥KPcp3(步骤S408)。然后,在步骤S409中进行接下来的处理。当类证书Cp3不正确时,控制器214不批准类证书Cp3,并且向终端设备10发出错误通知,而不接受类证书Cp3(步骤S435)。当终端设备10接受了错误通知时(步骤S436),再现许可会话结束。
当作为步骤S407中的验证结果,在硬盘20中确定了再现电路150具有正确的类证书,并且在步骤S408中接受了类公用密钥KPcp3时,硬盘20的会话密钥产生部分226产生会话密钥Ks1d(步骤S409)。加密处理部分222利用所接受的类公用密钥KPcp3对会话密钥Ks1d进行加密,以产生已加密数据E(KPcp3,Ks1d)(步骤S410)。
控制器214通过总线BS3从加密处理部分222中接收已加密数据E(KPcp3,Ks1d),并且通过ATA接口部分212和终端210将其提供给终端设备10(步骤S411)。
在终端设备10中,控制器108通过硬盘接口部分110和总线BS2接受已加密数据E(KPcp3,Ks1d)(步骤S412),并且控制器108将这样接受的已加密数据E(KPcp3,Ks1d)通过总线BS2提供给再现电路150(步骤S413)。再现电路150的解密处理部分1506从总线BS2中接受已加密数据E(KPcp3,Ks1d)(步骤S414),并且利用由Kcp保存部分1504所保存的、再现电路150所特定的类专用密钥Kcp3,来进行解密,以产生和接受会话密钥Ks1d(步骤S415)。
当接受了会话密钥Ks1d时,会话密钥产生部分1508产生会话密钥Ks2d(步骤S416),并且将这样产生的会话密钥Ks2d提供给加密处理部分1510。加密处理部分1510利用会话密钥Ks2d,对从解密处理部分1506中接收到的会话密钥Ks1d进行解密,以产生已加密数据E(Ks1d,Ks2d)(步骤S417)。加密处理部分1510将已加密数据E(Ks1d,Ks2d)提供到总线BS2上(步骤S418)。
控制器108从总线BS2中接受已加密数据E(Ks1d,Ks2d)(步骤S419),并且通过总线BS2和硬盘接口部分110,将所接受的数据提供给硬盘20(步骤S420)。
硬盘20的控制器214通过终端210和ATA接口部分212接受已加密数据E(Ks1d,Ks2d)(步骤S421),并且将所接受的数据提供到总线BS3上。解密处理部分228利用从会话密钥产生部分226中施加的会话密钥Ks1d,对提供到总线BS3上的已加密数据E(Ks1d,Ks2d)进行解密,并且在硬盘20中接受会话密钥Ks2d(步骤S422)。当接受了会话密钥Ks2d时,控制器214通过ATA接口部分212和终端210向终端设备10发出接受通知。
当终端设备10的控制器108通过硬盘接口部分110和总线BS2接收到关于在硬盘20中接受了会话密钥Ks2d的通知时,其通过总线BS2和硬盘接口部分110,向硬盘20提供在其上许可证存储器250A存储了与所请求的内容数据相对应的目标许可证LIC的逻辑块地址。
当硬盘20的控制器214通过终端210和ATA接口部分212接受了目标许可证LIC的逻辑块地址时(步骤S424),其确定在与所接受的逻辑块地址中所存储的许可证LIC相对应的有效性标记存储器250C中的标记是“有效”还是“无效”(步骤S425)。
当有效性标记存储器250C中的标记是“有效”时,控制器214根据所接受的逻辑块地址,从许可证存储器250A中获得目标许可证LIC(步骤S426)。控制器214确定在所获得的许可证LIC中所包括的控制信息AC的内容(步骤S427)。如果控制信息AC指定了容许使用次数,则控制器214将容许使用次数递增1,并且在步骤S429中执行接下来的步骤。如果控制信息AC并未限制再现次数,则控制器214将所获得的许可证LIC中所包括的内容密钥Kc提供到总线BS3上。
加密处理部分224利用从解密处理部分228中接收到的会话密钥Ks2d,对提供到总线BS3上的内容密钥Kc进行加密,以产生已加密数据E(Ks2d,Kc)(步骤S429),并且将这样产生的数据提供到总线BS3上。控制器214通过ATA接口部分212和终端210,将已加密数据E(Ks2d,Kc)从总线BS3提供到终端设备10(步骤S430)。
终端设备10的控制器108通过硬盘接口部分110和总线BS2接受已加密数据E(Ks2d,Kc)(步骤S431),并且将所接受的数据提供到总线BS2上(步骤S432)。
当再现电路150的解密处理部分1512从总线BS2中接受了已加密数据E(Ks2d,Kc)时(步骤S433),其利用从会话密钥产生部分1508中施加的会话密钥Ks2d,对已加密数据E(Ks2d,Kc)进行解密。由此,再现电路150接受了内容密钥Kc(步骤S434),并且再现许可会话的一系列处理结束。
当在步骤S425中有效性标记存储器250C的标记为“无效”时,或者当在步骤S427中不能够再现控制信息AC中的内容时,控制器214向终端设备10发出错误通知(步骤S435),并且终端设备10接受该错误通知(步骤S436),从而再现许可会话结束。
如上所述,与从数据存储设备即硬盘20提供到终端设备10中的再现电路150的再现许可相关,在确认再现电路150保存了正确的类证书Cp3,并且与包括其的类证书Cp3一起发送的类公用密钥KPcp3有效之后,同样将内容密钥Kc发送到再现电路150。由此,可以禁止对内容数据的未授权再现。
如上所述,由于根据逻辑块地址来管理硬盘中所存储的大量许可证,在再现许可会话中能够直接获得与为再现而请求的内容数据相对应的许可证,而无需从大量数据中检索该许可证,并且因而可以实现快速处理。
尽管在流程图中未示出,当允许再现电路150再现内容,并且接受了内容密钥Kc时,解密处理部分1514对从硬盘20提供的已加密数据E(Kc,Dc)进行解密,并且由再现部分1516再现由解密处理部分1514所获得的数据Dc,从而D/A转换器1518进行数字模拟转换,以便将再现信号提供给与监视器或扬声器相连的终端1520。
已经给出的所有描述与内容数据的许可证相关。但是,目标并不局限于前述的许可证,并且可以扩展到要保密处理的一般分类数据。这是由于前述装置和方式可以保护数据的机密性,并且可以实现与指定数据存储设备中的分类数据有关的本发明的目的。
尽管已经详细描述和示出了本发明,但是应该清楚地理解,该描述是说明性和示例性的,并且其不是用作对本发明的限制,而仅由所附权利要求的各项来限定本发明的精神和范围。
工业应用性
如上所述,根据本发明的数据存储设备可有益地用作需要对数字形式的分发数据进行版权保护的数据分发系统中的数据存储部分,并且特别适合于以下数据存储设备,所述数据存储设备必须安全地输入/输出再现通过加密分发数据所准备的已加密分发数据所需的许可证(解密密钥和使用规则),并且必须存储大量许可证。此外,根据本发明的数据存储设备适合于以下数据存储设备,该数据存储设备必须安全地输入/输出需要包括的分发数据,并且必须在分发数据的输入/输出中断之后安全地恢复该输入/输出。