具体实施方式
现在将参考附图来描述本发明的实施例。相同或相似的部件或部分在附图中具有相同参考数字,并且不再重复对其的描述。
[第一实施例]
图1是示出了数据分配***的整个结构的概念的示意图,其中,根据本发明的数据存储设备获得已加密的内容数据和用于解密已加密内容数据的许可证。
将通过数据分配***的示例来给出以下描述,其中,终端设备10接收在数字广播网上分配的图片数据,并且将数据存储在数据存储设备,即附加到终端设备10上的硬盘驱动器20。此外,终端设备10通过双向网络30从与终端设备10相连的许可证提供设备40中接收用于对已加密图片数据进行解密的许可证,并且将其存储在硬盘驱动器20上,以便由配置在终端设备10内的专用再现电路(未示出)来再现已加密的图片数据。如将从以下描述中显而易见,本发明并不局限于以上情况,并且可应用于以下情况:***处理其他种类的具有版权的材料,例如,内容数据、图像数据、音乐数据、教育数据、阅读或朗诵数据、书籍数据、或游戏程序。同样,数据存储设备并不局限于硬盘,并且可以应用于诸如存储卡等其他数据存储设备。
参考图1,终端设备10通过天线11,接收在数字广播网上分配的已加密图片数据,并且将其存储在硬盘20上,该图片数据也可以被称为“内容数据”,并且将其存储在硬盘20上。用于管理和分配包括用于解密已加密内容数据的内容密钥的许可证的许可证提供设备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进行解密的形式。将加密为允许利用内容密钥Kc来解密的形式的已加密内容数据E(Kc,Dc)通过数字广播网分配给终端设备10的用户,同时保持该形式。
在以下描述中,表达“E(X,Y)”表示将数据Y加密为允许利用解密密钥X进行解密的形式。与数据Dc一起,将附加信息Di分配为诸如与内容数据的版权或服务器接入有关的明文信息。
通过终端设备10,在许可证提供设备40和硬盘20之间传送作为用于指定许可证的分配和指定每一个许可证的管理代码的许可证ID(LID)。许可证还包括作为识别数据Dc和内容密钥Kc的代码的数据ID(DID),以及控制信息AC,所述控制信息涉及对在数据存储设备中处理许可证和再现的限制,更具体地,涉及根据用户侧的指定所确定的许可证数量、功能限制等。
在以下描述中,内容密钥Kc、控制信息AC、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))。
作为向数据存储设备安全并可靠地发送许可证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,用于保存硬盘20的认证密钥KPa,所述认证密钥KPa用于解密从终端设备10传送来的硬盘20的类证书Cmy中所包括的已签名数据E(Ka,H(KPcmy//Icmy)。数据处理部分410还包括认证部分418,用于通过通信设备450和总线BS1接收从数据存储设备传送来的类证书Cmy,利用从KPa保存部分416中接收达到的认证密钥KPa,对包括在类证书Cmy中的签名数据E(Ka,H(KPcmy//Icmy))进行解密处理,对包括在类证书Cmy中的KPcmy//Icmy的散列值进行计算,并且通过比较和检查上述解密处理和计算的结果来认证类证书Cmy。数据处理部分410还包括加密处理部分420,操作在每一个分配会话中,以便利用由认证部分418从类证书Cmy中提取出的类公用密钥KPcmy对由会话密钥产生部分414所产生的会话密钥Ks1x进行加密,并且将其输出到总线BS1;以及解密处理部分422,用于对利用会话密钥Ks1x加密的数据进行接收和解密,并通过总线BS1来传送。
数据处理部分410还包括加密处理部分424,用于利用个人公用密钥KPomz对从分配控制部分412所施加的许可证LIC进行加密,所述个人公用密钥KPomz是数据存储设备所特有的,并且从解密处理部分422中获得;以及加密处理部分426,利用从解密处理部分422所施加的会话密钥Ks2x对加密处理部分424的输出进一步加密,并将其提供给总线BS1。
此外,在利用会话密钥Ks1x进行加密之后,从终端设备10中提供个人公用密钥KPomz和会话密钥Ks2x。解密处理部分422对其进行解密,以获得个人公用密钥KPomz。
稍后将参考流程图详细描述在分配会话中许可证提供设备40的操作。
图5是示出了图1所示的终端设备10的结构的示意方框图。
终端设备10包括:天线102,接收通过数字广播网发送的信号;接收部分104,操作用于通过解调将从天线102接收到的信号转换为数据,或者操作用于调制要从天线102发送的数据并将其施加到天线102上;调制解调器106,用于使终端设备10与网络30相连;总线BS2,用于在终端设备10中的各个部分之间传送数据;控制器108,用于通过总线BS2来控制终端设备10的操作;以及硬盘接口部分110,用于硬盘20和总线BS2之间的数据传输。
终端设备10还包括认证数据保存部分1502,用于保存已经描述的类证书Cpy。假定表示终端设备10的类的标识符y等于三(y=3)。
终端设备10还包括Kcp保存部分1504,用于保存作为该类所特定的解密密钥的类专用密钥Kcp3;以及解密处理部分1506,用于利用类专用密钥Kcp3来解密从总线BS2中接收到的数据以获得由硬盘20所产生的会话密钥Ks1x。
终端设备10还包括会话密钥产生部分1508,用于产生会话密钥Ks2x,所述会话密钥Ks2x用于根据用于再现硬盘20上所存储的内容数据的使用许可会话中的随机数等来加密向和从硬盘20传送的数据;加密处理部分1510,进行以下操作:接收来自硬盘20的内容密钥Kc以利用从解密处理部分1506所获得的会话密钥Ks1x对由会话密钥产生部分1508所产生的会话密钥Ks2x进行加密,并且将其提供到总线BS2上;解密处理部分1512,利用会话密钥Ks2x对总线BS2上的数据进行解密;解密处理部分1514,用于从总线BS2中接收已加密的内容数据E(Kc,Dc),并且利用从解密处理部分1512中发送的内容密钥Kc对其进行解密,以便向再现部分1516提供数据Dc;再现部分1516,用于接收解密处理部分1514的输出并再现这些内容;D/A转换器1518,用于将再现部分1516的输出从数字信号转换为模拟信号;以及终端1520,用于将D/A转换器1518的输出提供给外部输出设备(未示出),例如显示监视器。
在图5中,由虚线所围住的区域定义了再现电路50,所述再现电路是通过解密已加密内容数据来再现图片数据的专用电路。为了提高安全性,优选地,再现电路150由单芯片结构的半导体器件形成。此外,优选地,再现电路150由反篡改(anti-tamper)模块形成,其可以有效地防止可能在外部执行的分析。
下面将参考流程图来详细描述终端设备10的各个组件的相应会话中的操作。
图6是示出了图1所示的硬盘20的结构的示意方框图。
如已经描述的那样,将一对类公用密钥KPcmy和类专用密钥Kcmy以及一对个人公用密钥KPomz和个人专用密钥Komz用于数据存储设备,即硬盘20。在硬盘20中,识别其的标识符y等于1,而标识符z等于2(z=2)。
硬盘20包括认证数据保存部分202,用于保存认证数据Kpcm1//Icm1//E(Ka,H(KPcm1//Icm1)作为类证书Cm1;Kcm保存部分204,用于保存类专用密钥Kcm1;Kom保存部分206,用于保存个人专用密钥Kom2;以及KPom保存部分208,用于保存允许利用个人专用密钥Kom2进行解密的个人公用密钥KPom2。
如上所述,由于提供了数据存储设备即硬盘20的加密密钥,可以对每一个数据存储设备的已分配内容数据和已加密内容密钥进行管理,独立于针对其他数据存储设备的已分配内容数据和已加密内容密钥,如下面将会描述的那样。
硬盘20还包括ATA(AT附件)接口部分212,用于通过终端设备10和终端20的硬盘接口部分110来传送信号;总线BS3,充当硬盘20中的数据传输路径;解密处理部分216,用于利用从Kom保存部分206提供来的个人专用密钥Kom2,解密通过控制器214从ATA接口部分212提供到总线BS3上的数据,并且将从许可证提供设备40分配的许可证LIC提供给安全数据存储部分250;认证部分220,用于从KPa保存部分218中接收认证密钥KPa,并且利用认证密钥KPa对提供到总线BS3上的数据进行解密,以便向控制器214提供解密结果;以及加密处理部分224,用于利用由选择器开关260选择性施加的会话密钥Ks1x或Ks2x,对通过选择器开关262选择性施加的数据进行加密,并且将其提供到总线BS3上。
硬盘20还包括会话密钥产生部分226,用于在每一个分配、拷贝/转移和使用许可会话中产生会话密钥Ks1x和Ks2x;加密处理部分222,用于利用由认证部分220所获得的终端设备10的再现电路150的类公用密钥KPcpy、或利用另一数据存储设备(在该示例中为硬盘21)的类公用密钥KPcmy,对由会话密钥产生部分226所产生的会话密钥Ks1x进行加密;以及解密处理部分228,用于接收利用从总线BS3提供的会话密钥Ks2x加密的数据,并且利用从会话密钥产生部分226中所获得的会话密钥Ks1x或Ks2x对其进行解密。
硬盘20还包括解密处理部分230,用于利用与类公用密钥KPcm1配对的类专用密钥Kcm1对总线BS3上的数据进行解密;以及加密处理部分232,当输出许可证LIC以便将其从硬盘20转移或拷贝到硬盘21上时,利用从接收侧上的硬盘21中接收到的个人公用密钥KPomz(z≠2)对许可证LIC进行加密。
硬盘20还包括安全数据存储部分250,用于从总线BS3上接收用于再现已加密内容数据E(Kc,Dc)的许可证LIC、以及作为由硬盘20所处理的会话的处理记录的日志,并存储其。将许可证LIC存储在安全数据存储部分250的许可证区域中,并且将日志存储在安全数据存储部分250的日志存储器中。安全数据存储部分250由诸如半导体存储器形成。
图7示出了在安全数据存储部分250中的存储结构。
参考图7,安全数据存储部分250包括许可证区域251、有效性标记区域252和日志存储器253。
许可证区域251由数量为L(L:自然数)的区域2511-251L形成,并且在每一个区域2511-251L中存储一个许可证(内容密钥Kc、控制信息AC、许可证ID(LID)和数据ID(DID))。
根据此后将被称为“LBA”或“逻辑块地址”的地址来管理存储在区域2511-251L中的每一个许可证。由LBA来指定各个会话中所存储或读取的所有许可证LIC。
假定maxLBA+1-maxLBA+L的LBA分别分配给区域2511-251L。例如,maxLBA+3的LBA指定区域2513中所存储的许可证LIC。在这种情况下,0-maxLBA的LBA分配给一般数据存储区域270,稍后将详细描述。
已经声明了许可证区域251具有分配给一般数据存储区域270的0-maxLBA的LBA之后的maxLBA+1-maxLBA+L的LBA。假如分配给许可证区域251的数量为L的LBA可以指定区域2511-251L,则分配给许可证区域251的LBA可以取一些其他值。此外,分配给许可证区域251的值可以与分配给一般数据存储区域270的LBA重叠,或者可以独立于其。
与指定了安全数据存储部分250上的存储位置的LBA相对应地提供有效性标记区域252,并且存储表示由相应LBA所指定的位置中所存储的许可证的有效性的标记。
有效性标记区域252由2511-251L形成,其中分别存储了在相应区域2511-251L中所存储的许可证LIC的“有效”或“无效”。
当有效性标记区域252存储了标记“有效”时,可以使用由对应于该标记的LBA所指定的、安全数据存储部分250上的存储位置中所存储的许可证LIC,并且用户可以根据用于解密已加密内容数据并再现内容数据的使用许可来读取该许可证LIC中的内容密钥Kc。此外,用户可以将该许可证LIC转移或拷贝到另一数据存储设备。
当有效性标记区域252存储了标记“无效”时,不能够使用由对应于该标记的LBA所指定的、安全数据存储部分250上的存储位置中所存储的许可证LIC,并且硬盘20的控制器214拒绝从该LBA提供的许可证LIC。该状态与擦除状态相同。因此,用户不能够再现与该许可证LIC相对应的内容数据。响应该许可证的新存储,有效性标记区域252中的标记变为“有效”,响应该许可证的转移,有效性标记区域252中的标记变为“无效”。
日志存储器253是由数量为N(N是自然数)的区域2531-253N形成的环形存储器,每一个存储了向或从硬盘20的许可证输入/输出相关的一项历史信息,之后将被称为“日志”。区域2531-253N分别命名为用于指定这些区域的存储体0-(N-1)。因此,存储体n(n是N的残数***)表示日志存储器上的区域253(n-1)。
日志存储器253按照环形的方式存储了多个日志。更具体地,日志存储器253从由存储体0所指定的区域2531开始存储日志。在日志存储器253将该日志存储在由存储体(N-1)所指定的区域253N之后,日志存储器253向由存储体0所指定的区域2531返回目的地,以便存储这些日志。
在日志存储器253中的每一个区域2531-253N中所存储的日志包括管理号区域2541、许可证ID(LID)区域2542、Ks2x区域2543、ST1区域2544、ST2区域2545、KPcmy区域2546和LBA区域2547。
管理号区域2541存储了表示分别将日志存储在存储体0-(N-1)中的存储顺序的管理号。管理号是M的残数***(residual system)(M是大于N的自然数(M>N)),并且按照升序分配。由于管理号的存储,能够检索存储了最新日志或最早日志的存储体。更具体地,假定将管理号的日志首先存储在存储体0中,该日志的管理号区域2541存储该管理号“1”。每一次当根据许可证的输入/输出来存储新日志时,连续地使用从存储体2开始的存储体,并且新日志的管理号区域2541存储通过将存储在紧挨在用于存储新日志的存储体之前的存储体中所存储的最新日志的管理号区域2541中的管理号递增一、而准备的管理号。由此,通过从区域2531-253N中所存储的日志的管理号区域2541中读取管理号,能够根据管理号来确定所讨论的日志是新的还是旧的。按照如下方式执行该确定。当连续两个存储体n和n+1(n是N的残数***)保存了不连续的管理号时,存储体n保存最新日志,而存储体(n+1)保存最早日志。这将在稍后详细描述。
在与管理号有关的表达式和算数运算的以下描述中,如果未另外指定,则指定日志存储器253的2531-253N的存储体的号处于残数***中。
许可证ID区域2542存储了将许可证LIC指定为会话目标的许可证ID(LID)。Ks2x区域2543存储了由会话中的许可证LIC的接收侧上的数据存储设备所产生的会话密钥Ks2x。
ST1区域2544存储了正在执行的会话中的处理状态的状态ST1。ST2区域2545存储了表示与许可证ID区域2542中所存储的许可证ID相对应的许可证存储状态的状态ST2。
在通过转移或拷贝来输出许可证的操作中,KPcmy区域2546在发送侧的数据存储设备中操作以存储接收侧上的数据存储设备的类公用密钥KPcmx。LBA区域2547存储了为了读取或存储每一个会话中的许可证LIC而表示的LBA。
根据一系列会话的处理进展,更新或参考上述各个区域中的数据。状态ST1表示以下四个状态之一:“等待接收”、“已接收”、“等待发送”和“已发送”,并且状态ST2表示三个状态“数据存在”、“没有数据”和“已转移”之一。
当由于在会话期间出现的意外故障而中断了会话时,根据日志存储器253的许可证ID区域2541中所存储的许可证ID、以及在LBA区域2547中所存储的LBA,确定在中断的会话中正在传送或接收的许可证LIC的存储状态,并且根据该确定的结果来更新状态ST2。在中断的会话中的许可证的发送侧接收在许可证接收机侧的日志存储器253中所存储的许可证LIC、会话密钥Ks2x和状态ST1和ST2,并且检查在发送侧上所记录的日志的内容、和所接收到的许可证LIC、会话密钥Ks2x和状态ST1和ST2。由此,确定是否允许许可证的重新传输。
存储会话密钥Ks2x,用于指定每一个会话,并且共享会话密钥Ks2x的事实表示共享了要传送的许可证的指定及其处理。
当输出该输出日志时,根据在日志存储器253中所存储的许可证ID(LID)以及LBA,将安全数据存储部分250中的许可证的存储状态存储在状态ST2中,由此,使输出日志具体化。
将参考示出了各个会话的流程图来描述具体细节。
再次参考图6,现在将描述硬盘20中的数据存储部分。硬盘20还包括一般数据存储部分270,用于存储已加密内容数据。一般数据存储部分270包括盘类磁记录介质2701,用于存储数据;电动机2702,用于旋转磁记录介质2701;伺服控制器2703,用于控制电动机2702;搜索控制部分2704,用于控制在磁记录介质2701上的磁头位置;以及记录/再现处理部分2705,用于指示磁头记录或再现数据。
硬盘20还包括控制器214,用于控制硬盘20中的操作,例如,通过ATA接口部分212的数据的外部传输和接收;与基于控制信息AC的许可证输出有关的确定;以及安全数据存储部分250的管理。
在反篡改模块区域中形成除了一般数据存储部分270、ATA接口部分212和终端210之外的结构。
参考图8,一般数据存储部分270具有与已知的通用硬盘相同的结构,并且包括数据存储部分2700。数据存储部分2700将已加密内容数据、属于已加密内容数据的数据、许可证表等存储在每一个区域2800-280A中(A是等于maxLBA的自然数)。将0-maxLBA的LBA分配给区域2800-280A,从而区域2800-280A可以分别由0-maxLBA的LBA来指定。向或从指定的区域2800-2800A提供诸如已加密内容数据等数据。
所述许可证表是表示已加密内容数据和许可证之间的关系的信息表。通过参考许可证表,能够指定与已加密内容数据和LBA相对应的许可证,其中存储了许可证。因此,当存储或删除已加密内容数据时,或当存储、取消或删除许可证时,变更许可证表的内容。
因此,在硬盘20中,可以向和从由0-maxLBA的LBA所指定的一般数据存储部分270、以及由随后的maxLBA+1-maxLBA+L的LBA所指定的安全数据存储部分250(更具体地,许可证存储器251)提供数据和许可证。
在一般数据存储区域270和许可证区域251中的LBA的值并不局限于该实施例中的值。
安全数据存储部分250具有反纂改结构,例如,通过采用用于防止可能经由ATA接口部分212利用普通存取命令从外部尝试的直接存取的装置,确保要被确保的反纂改属性。
已经声明了硬盘20的安全数据存储部分250整个由半导体存储器形成。然而,假如确保了反纂改属性,则安全数据存储部分250的一部分或全部可以配置来在磁记录介质2701上存储数据。
现在将描述图1所示的数据分配***的各个会话的操作。
[分配]
首先,将描述在图1所示的数据分配***中,将许可证从许可证提供设备40分配到附加到终端设备10上的硬盘20的操作。
图9和10是分别示出了图1所示的数据分配***的处理(分配会话)的第一和第二流程图。更具体地,这些流程图表示了以下处理,其中,终端设备10的用户通过用户的终端设备10请求已加密内容数据的许可证分配,由此,从许可证提供设备40将许可证分配到附加到终端设备10上的硬盘20上,并且存储在硬盘20上。
在开始图9中的处理之前,终端设备10的用户通过调制解调器106,使终端设备10与网络30相连,由此,使终端设备10通过网络30与许可证提供设备40相连。以下描述基于已经进行了上述操作的前提。
参考图9,当终端设备10的用户请求分配所需内容数据的许可证时,终端设备10的控制器108通过BS2和硬盘接口部分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)进行解密以提取散列值H(KPcm1//Icm1)。此外,认证部分418计算在类证书Cm1中所包括的KPcm1//Icm1的散列值,并且将其与从类证书Cm1中所提取出的散列值进行比较。当分配控制部分412根据由认证部分418的解密结果,确定了进行了前述解密,并且两个散列值的值彼此相匹配时,则分配控制部分412认证了从硬盘20中所接受的类证书Cm1是正确证书。
当在步骤S7中认证了类证书Cm1时,分配控制部分412批准了类证书Cm1,并且接受类公用密钥KPcm1(步骤S8)。然后,在步骤S9中执行接下来的处理。当未认证类证书时,分配控制部分412不接受类证书Cm1,并且向终端设备10提供错误通知(图10中的步骤S44)。当终端设备10接受了错误通知(图10中的步骤S45),该分配会话结束。
当在步骤S8中接受了类公用密钥KPcm1时,分配控制部分412产生许可证ID(LID)(步骤S9),并且进一步产生了控制信息AC(步骤S10)。会话密钥产生部分414产生用于分配的会话密钥Ks1a(步骤S11)。加密处理部分420利用与硬盘20相对应的、并且由认证处理部分420所获得的类公用密钥KPcm1对会话密钥Ks1a进行加密,由此,产生了已加密数据E(KPcm1/Ks1a)(步骤S12)。
分配控制部分412将许可证ID(LID)和已加密会话密钥Ks1a处理为一个数据串LID//E(KPcm1//Ks1a),并且通过总线BS1和通信设备450向终端设备10提供其(步骤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(步骤S17)。
当硬盘20的控制器214确认接受了由许可证提供设备40所产生的会话密钥Ks1a时,该控制器214通过ATA接口部分212和终端210向终端设备10通知该接受。当终端设备10的控制器108通过硬盘接口部分110和总线BS2接受了关于硬盘20接受了会话密钥Ks1a的通知时,其通过总线BS2和硬盘接口部分110向硬盘20提供通知,该通知请求产生会话密钥(步骤S18)。当硬盘20的控制器214通过终端210和ATA控制器212接受了对会话密钥产生的请求通知时,控制器214指示会话密钥产生部分226产生会话密钥。会话密钥产生部分226产生会话密钥Ks2a(步骤S19)。
控制器214检索安全数据存储部分250的日志存储器253中存储最早日志的存储体,并将新管理号、在步骤S16中所接受的许可证ID、在步骤S19中所产生的会话密钥Ks2a、以及“等待接收”存储在这样检索到的存储体(0≤n≤N-1)中的管理号区域2541、许可证ID区域2542、Ks2a区域2543和ST1区域2544中。因此存储体n中所存储的日志变为最新日志。在该状态下,形成日志的其他区域中的所有内容可以设置为“0”,或可以不变。
参考图11,现在将描述步骤S20中的特定操作。图11是示出了步骤S20中的特定操作的流程图。在步骤S19之后,控制器214指定与在日志存储器253中存储最新日志的日志区域相对应的存储体(n-1),并且获得在由存储体(n-1)所指定的日志区域中所包括的历史信息中所包括的管理号(步骤S20a)。
参考图12,现在将描述步骤S20a的特定操作。图12是更详细地示出了步骤S20的流程图。在步骤S19之后,控制器214将表示区域2532的存储体1的存储体号1分配给变量n(步骤S20c),获得存储体0中所存储的管理号,并将其替代到变量m中(步骤S20d)。控制器214获得日志存储器253中所存储的管理号,并将其替代到变量ma中(步骤S20e)。在计算(ma-m)之后,确定该计算的经过是否为“1”(步骤S20f)。如果该计算的结果是“1”,则控制器214通过加1所获得的(n+1)替代到变量n中(步骤S20g),并且将替代到变量ma中的管理号替代到变量m中(步骤S20g)。之后,重复步骤S20e-S20h。
如果计算结果不等于“1”,则控制器214确定存储体(n-1)是承载最新日志的区域并结束最新管理号m的获取。由此,操作移动到图11中的步骤S20b。在这种情况下,将最早日志存储在存储体n中。
如果在步骤S20f中确定计算结果是“1”,则连续地执行步骤S20g、S20h、S20e和S20f。这表示以下事实:如果计算结果是“1”,则分别替代到变量m和ma中的管理号m和ma是连续的,并且存储体(n-1)和n连续地存储日志。因此,由于在循环地根据存储体号来使用日志存储器253中的区域、并且还在M的残数***中循环地使用管理号的情况下,存储在连续存储体中的管理号之间的差值等于“1”,因此,实现了上述事实。因此,确定了存储体(n-1)并未存储最新日志。存储体n的情形是不清楚的。然后,该确定作用于下一区域,并且确定存储体n中所存储的日志。更具体地,根据存储体n中所存储的日志的管理号和下一区域即存储体(n+1)所存储的日志的管理号来执行该确定。根据流程图,在步骤S20g中,将(n+1)替代到n中,从而将该确定作用于下一区域。
按照该方式,重复由步骤S20f、S20g和S20e所形成的循环。由此,确定从存储体0到存储体(N-1)的连续区域中所存储的管理号是否为连续的。这是将存储体(N-1)与其相比较的存储体0的号。如上所述,在N的残数***中执行与存储体的号有关的计算。因此,当确定存储体(N-1)时,(n-1=N-1)和(n=0)的关系是存在的。
当在步骤S20f中的计算结果不为“1”时,确定存储体(n-1)中所存储的日志是最新日志。这是由于存储体(n-1)和n中所存储的两个日志的管理号并非连续的。因此,这些连续日志分别具有连续的管理号,如已经描述的。相反,具有非连续的管理号的日志不是连续的。
根据图12,为了指定存储体(n-1),包括预定管理号的日志必须通过硬盘20出货之前对日志存储器253进行初始化,存储在日志存储器253的所有区域2531-253N中,即存储体0-(N-1)中。将具有相同值的管理号的日志存储在所有存储体中,或者将具有连续值(在一点处非连续)的管理号的日志分别存储在连续存储体中。在日志的其他区域中的值并未受到限制。
再次参考图11,在按照前述方式获得存储最新历史信息(日志)的存储体(n-1)以及存储体(n-1)中所存储的管理号m之后,控制器214将管理号(m+1)、步骤S16中所接受的许可证ID和步骤S19中所接受的会话密钥Ks2a存储在存储体n中,并且将ST1区域2544的状态ST1设置为“等待接收”(步骤S20b)。由此,图9所示的步骤S20中的操作结束,并且操作移到步骤S21。
再次参考图9,加密处理部分224利用通过选择器开关260的触点Pb从解密处理部分230中施加的会话密钥Ks1a,对通过连续地选择选择器开关262的触点Pd和Pf而施加的、由会话密钥Ks2a和个人公用密钥KPom2所形成的一个数据串进行加密,从而产生E(Ks1a,Ks2a//KPom2)(步骤S21)。加密处理部分224将E(Ks1a,Ks2a//KPom2)提供到总线BS3上。控制器214接受提供到总线BS3上的已加密数据E(Ks1a,Ks2a//KPom2),并且将作为由接受数据和许可证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)。
参考图10,分配控制部分412通过总线BS1和通信设备450向终端设备10提供已加密数据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被硬盘20接受的通知时,控制器108通过总线BS2和硬盘接口部分110,向硬盘20提供在其上将接收到的许可证LIC存储在硬盘20的安全数据存储部分250中的LBA(即存储LBA)(步骤S36)。硬盘20的控制器214通过终端210和ATA接口部分212接受许可证LIC的目的地的存储LBA(步骤S37),并且将所接受的存储LBA存储在日志存储器253的存储体n中所存储的日志的LBA区域2547中(步骤S38)。
控制器214将在所接受的许可证LIC中所包括的许可证ID(LID)与在步骤S16中所接受的许可证LID(LID)进行比较,并且确定这些许可证ID是否相互匹配(步骤S39)。当确认为相匹配时,控制器214确定所接受的许可证LIC是正确的,并且将从终端设备10中接收到的LBA处的所接受的许可证LIC存储在安全数据存储部分250中(步骤S40)。
当控制器214存储了在指定LBA处的许可证LIC时,该控制器214将与有效性标记区域252的该LBA相对应的标记设置为“有效”(步骤S41)。控制器214还将日志存储器253的存储体n中的ST1区域2544中的状态ST1设置为“已接收”(步骤S42),并且向终端设备10通知在分配会话中的一系列处理结束的事实。
当终端设备10接受了从硬盘20提供的处理结束的通知时,在数据分配***中的分配会话正常结束。
当控制器214在步骤S39中确定了发生了LID的不匹配,以及所接受的LIC不正确时,该控制器214向终端设备10提供错误通知(步骤S43),并且由终端设备10接收该错误通知(步骤S45),从而处理结束。
在图9和10所示的分配处理中,许可证提供设备40记录日志,尽管未对其进行描述。然而,结合于此,如图4所示,许可证提供设备40配备有具有足够存储容量的日志数据库404,并且存储了在分配会话中的各种步骤的日志。日志数据库404还存储与许可证的传送相关的记帐信息。
在图9和10所示的分配处理的一系列步骤中,在步骤S25和S44的处理期间可能会发生故障,从而可能会中断处理。在这种情况下,可以进行重写处理。例如,由于各种原因,诸如在处理期间终端设备10的掉电、在许可证提供设备40侧的故障、或者在终端设备10和许可证提供设备40之间的通信中的故障,均可能会发生中断。当在从步骤S22的结束到步骤S44的时间段期间发生处理中断时,其中存储了除了在日志存储器253中所存储的状态ST2之外的输出日志的所有内容,可以通过执行重写处理向硬盘20提供许可证。由于配置了前述的处理来根据终端设备10的确定来进行重写处理,因此,当除了在从步骤S22到步骤S24的时间段中的处理之外,在从步骤S25到步骤S44的处理期间发生了中断时,要进行重写处理,其间终端设备10可以确定处理的进展。当在除了上述步骤之外的其他步骤中发生了中断时,则确定许可证提供设备40还未提供许可证,并且根据图9和10的流程图来进行从初始步骤开始的处理。
同样,如果能够指定其中发生了处理中断的步骤,则从步骤S25到步骤S30在许可证提供设备40中所进行的处理,在其之前许可证提供设备40输出了许可证,并不被作为重写处理的目标情况来处理,由此,将其处理为其中要根据图9和10的流程图来进行从初始步骤开始的处理的情况。
[分配中的重写]
图13到15是示出了当在图9和10所示的分配处理中从步骤S25到S44的处理期间发生了故障时,所执行的重写处理的第一到第三流程图。图16是示出了在图13中的步骤S112a中所执行的特定操作的流程图。
参考图13,当终端设备10确定在从步骤S25到步骤S44的处理期间发生了故障时,该终端设备10通过网络30向许可证提供设备40提供了对LID//重写许可证LIC的请求(步骤S101)。当分配控制部分412通过通信设备450和总线BS1接受了LID//重写请求时(步骤S102),其指示会话密钥产生部分414产生会话密钥。接收到该指示的会话密钥产生部分414产生用于重写处理的会话密钥Ks1b(步骤103)。分配控制部分412从用于存储该会话中向和从硬盘20传送的日志的日志数据库404中,获得与硬盘20相对应的公用密钥KPcm1(步骤S104),并且将其提供给加密处理部分420。接受到类公用密钥KPcm1的加密处理部分420利用会话密钥Ks1b对类公用密钥KPcm1进行加密以产生E(KPcm1,Ks1b)(步骤S105)。分配控制部分412通过总线BS1和通信设备450向终端设备10提供LID//E(KPcm1,Ks1b)(步骤S106)。
当终端设备10通过网络30接受了LID//E(KPcm1,Ks1b)时(步骤S107),该终端设备10将所接受的LID//E(KPcm1,Ks1b)提供给硬盘20(步骤S108)。硬盘20的控制器214通过终端210和ATA接口部分212接受LID//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通过总线BS2和硬盘接口部分110向硬盘20提供针对日志的输出请求(步骤S111)。
当硬盘20的控制器214通过终端210和ATA控制器212接受了针对日志的输出请求通知时(步骤S112),控制器214指定日志的拷贝(步骤S112a)。
参考图16,现在将描述步骤S112a中的特定操作。控制器214指定在日志存储器中存储最新日志的存储体(n-1),并且获取存储体(n-1)中所存储的日志的管理号m(步骤S112b)。在步骤S112b中,根据图11和12的流程图来执行特定的操作。
在步骤S112b之后,控制器214将“1”替代到变量k中(k是满足(1≤k≤N)的自然数),并且将“假”替代到变量ERR中(步骤S112c),并且确定存储体(n-k)中所存储的许可证ID(LID)是否与步骤S109中所接受的许可证ID(LID)相匹配。更具体地,控制器214确定在步骤S112b中所检测到的最新日志中所存储的许可证ID(LID)是否与步骤S109中所接受的许可证ID(LID)相匹配。
当两个许可证ID(LID)不匹配时,控制器214确定k是否小于N(N:存储体的总数)(步骤S112e)。当k等于或大于N时,完成了与所有存储体有关的确认,因此,确认了未存储存储了与所接受的许可证ID(LID)相匹配的LID的日志。因此,在步骤S112h中执行下一操作,并且将“真”替代到变量ERR中(步骤S112h)。该操作返回到图13的步骤S113A中,并且确定变量ERR。
再次参考图13,控制器214确定变量ERR(步骤S113a)。如果从图16中的步骤S112h中返回该处理,则变量ERR是“真”,并且表示存储了所讨论的许可证ID的日志并未存储在日志存储器253中。因此,不再可以继续该处理。因此,该操作移到图15所示的步骤S160,并且将错误通知发布到终端设备10(步骤S160)。终端设备10接受错误通知(步骤S161),从而拒绝写入,并且一系列操作结束。
参考图16,当控制器214在步骤S112e中确定k小于N时,不完成对所有存储体的检查,从而将(k-1)替代到变量k中,用于确定比最后确定的日志早一个的日志(步骤S112f),并且操作移到步骤S112d。控制器214确定存储体(n-k)所存储的许可证ID(LID)是否与步骤S109中所接受的许可证ID(LID)相匹配。在这种情况下,变量k是“2”,从而控制器214确定存储体(n-2)中所存储的日志的许可证ID(LID)是否与步骤S109中所接受的许可证ID(LID)相匹配。当两个许可证ID(LID)不彼此匹配时,执行步骤S112e、S112f和S112d的处理。
如上所述,控制器214确定在变更存储体以从最新日志向最早日志进行确定的同时,每一个存储体中所存储的许可证ID(LID)是否与步骤S109中所接受的许可证ID(LID)相匹配。重复步骤S112e、S112f和S112d的这些操作,直到检测到与步骤S109中所接受的许可证ID(LID)相匹配的许可证ID(LID)为止,或者直到完成了对所有存储体的检查为止。由于存储体号处于N的残数***中,因此按照存储体(n-1)(k=1)、(n-2)(k=2)、……、1(k=n-1)、0(k=n)、(N-1)(k=n+1)、……、以及n(k=N)的次序来执行许可证ID的检查。
当在步骤S112d中,两个许可证ID(LID)相匹配时,控制器214获得存储体(n-k)中所存储的日志,并且在将所获得的日志的管理号m变更为(m+1)之后,将这样获得的日志存储在存储体n中(步骤S112g)。因此,在日志存储器253存储了包括与从许可证提供设备40传送来的许可证ID(LID)相匹配的许可证ID的日志的情况下,控制器214将该日志(如果存在两个或多个匹配日志,则最新日志)拷贝到存储最早日志的存储体n中。在这种情况下,仅拷贝管理号,并且记录通过对最后存储体(n-1)中所存储的日志的管理号加一所获得的值,从而可以将所拷贝的日志作为新日志进行处理。因此,检测到最早日志,并且存储将与正在执行的重新处理相对应的新日志,替代已删除的日志。
之后,操作移到图13所示的步骤S113a。
再次参考图13,控制器214存储变量ERR(步骤S113a)。当操作从图16所示的步骤S112a转移时,变量ERR为“假”,并且确定存储了所讨论的许可证ID的日志拷贝到存储体n,从而控制器214确定该处理可以继续,并且在步骤S113执行下一处理,以确定记录在日志存储器253的存储体n中所存储的存储LBA中的许可证LIC的许可证ID(LID)是否与日志存储器253中所存储的许可证ID(LID)相匹配(步骤S113)。
当控制器214确定了两个许可证ID(LID)彼此相匹配时,进行分配处理,直到从许可证提供设备40接收到许可证LIC为止,并且识别硬盘20已经接受了许可证LIC。由此,控制器214检查与日志存储器253的存储体n中所存储的LBA所指定的区域中所存储的许可证相对应的、有效性标记存储器252中所存储的标记,并且检查许可证的有效性(步骤S114)。
当控制器214确定了该许可证有效时,该控制器214将日志存储器253的存储体n中所存储的日志的状态ST2改变为“数据存在”,然后进行下一处理(步骤S118)。当控制器214在步骤S114中确定了许可证无效时,其将日志存储器253的存储体n中所存储的日志的状态ST2变更为“已转移”,然后在步骤S118中进行新的处理。
在步骤S113,当控制器214确定了所比较的许可证ID(LID)并不彼此相匹配时,其将日志存储器253的存储体n中所存储的日志的状态ST2变更为“没有数据”(步骤S117)。
当进行处理以改变状态ST2时,控制器214从日志存储器253中获得了许可证ID(LID)、状态ST1和ST2、以及会话密钥Ks2c(步骤S118)。在这种情况下,由于根据图9和10的流程图结合分配会话的终端来执行该处理,因此将会话密钥Ks2a存储在日志存储器253的存储体n中。然而,为了描述的目的,示出了从日志存储器253的存储体n中所获得的会话密钥Ks2c。控制器214通过总线BS3将这样获得的会话密钥Ks2c提供给加密处理部分224。
加密处理部分224利用通过选择器开关260的触点Pb从解密处理部分230中所施加的会话密钥Ks1b,对从总线BS3中所获得的会话密钥Ks2c进行加密,并且产生了E(Ks1b,Ks2c)(步骤S119)。加密处理部分224将这样产生的E(Ks1b,Ks2c)提供到总线BS3上。控制器214接受在总线BS3上的E(Ks1b,Ks2c),与步骤S118所获得的数据一起,从E(ks1b,Ks2c)中产生一个数据串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来加密在日志存储器253中所存储的会话密钥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)。
参考图14,许可证提供设备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。此外,分配控制部分412指示会话密钥Ks1b的产生。解密处理部分422利用会话密钥Ks1b对签名数据E(Ks1b,H(LID//E(Ks1b,Ks2c)//ST1//ST2)进行解密,并且提取由硬盘20计算出的散列值。分配控制部分412计算该已签名接收日志的第一半,即接收日志LID//E(Ks1b,Ks2c)//ST1//ST2的散列值,并且将其与由解密处理部分422解密之后由硬盘20计算出的散列值进行比较。当分配控制部分412确定了这两个散列值彼此相匹配时,许可证提供设备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向终端设备10发出错误通知(步骤S131)。当终端设备10通过网络30接受了错误通知时(步骤S132),该处理结束。因此,许可证提供设备40拒绝许可证的重写,并且处理结束。
当在步骤S134,终端设备10的控制器108接受了在步骤S133由许可证提供设备40所发出的许可通知时,该控制器108通过总线BS2和硬盘接口部分110向硬盘20发出对产生针对硬盘20的会话密钥的请求通知(步骤S135)。
当硬盘20根据从许可证提供设备40所提供的重写处理许可通知,接受了从终端设备10发出的、对产生会话密钥的请求通知时,其产生新的会话密钥Ks2b(步骤S136),并且用会话密钥Ks2b来替代日志存储器253的存储体n的日志中所记录的会话密钥Ks2c(=Ks2a)。此外,其将日志的状态ST1变更为“等待接收”(步骤S137)。
除了在图9和10所示的从步骤S21的处理到处理结束的一系列处理中,新产生和使用该会话密钥Ks2b来替代会话密钥Ks2a之外,与图9和10所示的处理类似地执行步骤S138处和步骤S138之后的处理。因此,不将重复描述从步骤S138开始的一系列处理。
当在图13到115的流程图中所示的许可证分配期间的重写处理中发生了中断时,进行如下处理。当在步骤S101-S131、S133和S142-S160任一个中发生了中断时,可以根据图13到15的流程图来进行重写处理。当在步骤S134-S141的任一个中发生了中断时,则从初始步骤重新开始图8和图9的流程图所示的许可证分配处理,从而可以恢复该处理。
如上所述,确认附加到终端设备10上的硬盘20保存了正确的类证书Cm1。在该确认之后,利用与包括其的类证书Cm1一起发送的类公用密钥KPcm1,相互传送分别由许可证提供设备40和硬盘20所产生的加密密钥(会话密钥)。每一侧均利用所接收到的加密密钥来执行加密,并且将已加密数据发送到相对方,从而实际上在相对方之间传送已加密数据的处理中进行相互认证。由此,能够禁止向硬盘未授权地分配许可证,并且可以提高数据分配***的安全性。
此外,即使当中断了许可证分配处理时,也将在作为接收机侧上的数据存储设备的硬盘20上的接收日志传送到许可证提供设备40,从而可以安全地进行许可证的重传,而不会进行许可证的双重分配。
[拷贝/转移]
图17是示出了进行拷贝/转移处理的***结构的概念的示意图。参考图17,可以将两个数据存储设备,即,两个硬盘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的类(即,y≠1),则类证书和类专用密钥不同于硬盘21的情况,与个人公用密钥和个人专用密钥类似。
图18和19是分别示出了图17所示的允许许可证拷贝/转移的***的处理(拷贝/转移会话)的第一和第二流程图。在所示的处理中,终端设备10的用户从终端设备10中请求已加密数据的许可证的拷贝或转移,从而通过终端设备10,将许可证从附加到终端设备10上的硬盘20拷贝或转移到硬盘21上。
参考图18,当终端设备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)。该认证处理与步骤S207中所示的许可证提供设备40的处理相同,因此,不再重复对其的详细描述。
当控制器214在步骤S207中确定了其不是硬盘21的正确类证书时,控制器214向终端设备10发出错误通知,而不批准和接受硬盘21的类证书Cm1(图19中的步骤S252)。当终端设备10接受了错误通知时(图19中的S253),该分配会话结束。
当在步骤S207中确定了硬盘21的类证书Cm1是正确的类证书时,硬盘20的控制器214批准硬盘21的类证书Cm1,并控制会话密钥产生部分226以产生会话密钥Ks1a,从而会话密钥产生部分226产生会话密钥Ks1a(步骤S209)。
加密处理部分222利用由认证部分220所获得的硬盘21的类公用密钥KPcm1,对会话密钥Ks1a进行加密,以产生已加密数据E(KPcm1//Ks1a)(步骤S210)。
控制器214通过ATA接口部分212和终端210,将已加密数据E(KPcm1//Ks1a)提供给终端设备10(步骤S211)。
当终端设备10接受了E(KPcm1//Ks1a)时(步骤S212),该终端设备10向硬盘21提供所接受的已加密数据E(KPcm1//Ks1a)(步骤S213)。终端设备10已经通过提前参考管理文件获得了许可证ID(LID)。管理文件是用于存储管理数据的数据文件,所述管理数据用于管理已加密内容数据和硬盘20上所存储的许可证之间的关系,并且将其存储在一般数据存储部分270上。相应已加密内容数据的记录或擦除以及许可证的写入、转移和擦除来更新管理文件的内容。
硬盘21的控制器214通过终端210和ATA接口部分212来接受LID//E(KPcm1,Ks1a)。然后,控制器214通过总线BS3将E(KPcm1//Ks1a)提供给解密处理部分230。解密处理部分230利用由Kcm保存部分204所保存的、并且硬盘21所特定的类专用密钥Kcm1,对其进行解密,以获得并接受会话密钥Ks1a(步骤S215)。
当硬盘21的控制器214确认接受了由硬盘20所产生的会话密钥Ks1a时,该控制器214通过ATA接口部分212和终端210向终端设备10通知该接受。当终端设备10接受了硬盘21接受了会话密钥Ks1a的通知时,终端设备10向硬盘21发出对会话密钥的产生请求的通知(步骤S216)。当硬盘21的控制器214通过终端210和ATA控制器212,接受了对会话密钥的产生请求的通知时,其指示会话密钥产生部分226产生会话密钥。会话密钥产生部分226产生会话密钥Ks2a(步骤S217)。
会话密钥产生部分226通过总线BS3向控制器214提供由此产生的会话密钥Ks2a,并且控制器214接收会话密钥Ks2a。控制器214搜索存储了最早日志的存储体,并重新存储针对正在被处理的会话的日志(步骤S218)。根据图11和12的流程图来执行步骤S218中的特定操作。然而,假定存储体na存储了用于将硬盘21中的处理与硬盘20中的类似处理的结果进行区分的最早日志。因此,仅用变量na来替代图11和12的流程图中的变量n。
因此,将通过将存储体(na-1)中所存储的日志的管理号加一所获得的新管理号、以及步骤S214中所接受的许可证ID(LID)和会话密钥Ks2a存储在日志存储器253的存储体na中,并且将状态ST1设置为“等待接收”。
随后,硬盘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通过终端210和ATA接口部分110接受了数据LID//E(Ks1a,Ks2a//KPom5)时(步骤S223),解密处理部分228利用会话密钥Ks1a来进行解密处理,以提取和接受由硬盘21所产生的会话数据Ks2a、以及硬盘21的个人公用密钥KPom5(步骤S224)。解密处理部分228通过总线BS3向控制器214提供已解密会话密钥Ks2a,并且控制器214接收会话密钥Ks2a。控制器214将正在被处理的会话的日志存储在用于存储最早日志的存储体中(步骤S225)。根据图20的流程图来执行步骤S225中的特定操作。参考图20,步骤S225包括步骤S225a,其中指定了在日志存储器253中存储最新日志的存储体(n-1),并且获得存储体(n-1)中所存储的管理号m;以及步骤S225b,其中在存储体n中存储了管理号(m+1)、许可证ID(LID)、会话密钥Ks2a和类公用密钥KPcmy,并且将状态区域设置为“等待传输”。根据图12的流程图来执行步骤S225a中的特定操作。因此,根据图20和12的流程图,控制器214将在步骤S223中所接受的许可证ID(LID)和步骤S224所接受的会话密钥Ks2a存储在存储体n中,并且将状态ST1设置为“等待传输”。
当在步骤S225中的处理结束时,硬盘20的控制器214通过ATA接口部分212和终端210向终端设备10通知该结束。当终端设备10的控制器108通过硬盘接口部分110和总线BS2接受了从硬盘20发送来的通知时,其通过总线BS2和硬盘接口部分110,向硬盘20提供在其上存储了要从硬盘20发送到硬盘21的许可证LIC的、硬盘20的安全数据存储部分250中的LBA(存储LBA)(步骤S226)。当硬盘20的控制器214通过终端210和ATA接口部分212接受了要发送的许可证LIC的存储LBA的LBA时(步骤S227),该控制器214将所接受的LBA存储在安全数据存储部分250的日志存储器253中(步骤S228)。
控制器214确定在存储在所接受的存储LBA处的许可证LIC相对应的有效性标记存储器252中的标记是“有效”还是“无效”(步骤S229)。当有效性标记是“有效”时,控制器214获得要存储在存储LBA处的许可证LIC(步骤S230)。
参考图19,当控制器214获得了目标许可证LIC时,其将包括在许可证LIC中的许可证ID(LID)与在步骤S223中所接受的、且存储在日志存储器253的存储体na中所存储的日志中的许可证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)。
根据在目标许可证LIC中所包括的控制信息AC,然后,控制器214确定从硬盘20到硬盘21的许可证LIC的传送是“转移”还是“拷贝”(步骤S235)。当控制器214确定了其是“转移”时,该控制器214将与目标许可证LIC(即存储LBA)相对应的有效性标记存储器252中的标记设置为“无效”(步骤S236)。当控制器214确定了其为“拷贝”时,可以将所讨论的许可证留在硬盘20上,从而其在步骤S237中开始接下来的处理,而无需改变有效性标记存储器252中的标记。
当有效性标记存储器252中的处理结束时,控制器214将日志存储器253的存储体n中所存储的状态ST1改变为“已发送”(步骤S237),并且通过ATA接口部分212和终端210向终端设备10传送已加密数据E(Ks2a,E(KPom5,LIC))(步骤S238)。
在一些情况下,即,当与在步骤S229中所接受的LBA相对应的有效性标记存储器252中的标记是“无效”时,当在步骤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),并且将其提供到总线BS3上。解密处理部分228利用从会话密钥产生部分226中所提供的会话密钥Ks2a,对提供到总线BS3上的数据E(Ks2a,E(KPom5,LIC))进行解密,并且硬盘21接受通过利用个人公用密钥KPom5对许可证LIC进行加密所准备的已加密许可证E(KPom5,LIC)(步骤S242)。解密处理部分228将已加密的许可证E(KPom5,LIC)提供到总线BS3上。
根据控制器214的指示,解密处理部分215利用个人专用密钥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中的LBA(即存储LBA)(步骤S244)。当硬盘21的控制器214通过终端210和ATA接口部分212接受了用于存储许可证LIC的存储LBA时(步骤S245),该控制器214将所接受的存储LBA存储在日志存储器253的存储体n中所存储的日志的LBA区域2544中(步骤S246)。
控制器214将在所接受的许可证LIC中所包括的许可证ID(LID)与在步骤S214中接受的许可证ID(LID)进行比较,并且确定这些ID是否彼此相匹配(步骤S247)。当这些ID彼此相匹配时,控制器214确定了所接受的许可证LIC是正确的,并且将所接受的LIC存储在安全数据存储部分250中的、与从终端设备10接收到的存储LBA相对应的区域中(步骤S248)。
当控制器214将许可证LIC存储在指定存储LBA处时,该控制器214将在许可证标记存储器252中与该存储LBA相对应的标记设置为“有效(步骤S249)。控制器214将日志存储器253的存储体n中所存储的日志的状态ST1设置为“已接收”(步骤S250),并且通过ATA接口部分212和终端210,向终端设备10通知关于在拷贝/转移会话中的一系列处理结束的事实。
当终端设备10接受了从硬盘21发送的处理结束通知时,从硬盘20到硬盘21的拷贝/转移会话正常结束。
当在步骤S247中,在这些ID之间发生了不匹配时,控制器214确定了所接受的许可证LIC是不正确的,并且通过ATA接口部分212和终端210向终端设备10发出错误通知(步骤S251)。当终端设备10接受了该错误通知时(步骤S253),从硬盘20到硬盘21的拷贝/转移的会话异常地结束。
与分配会话类似,当由于在从步骤S227到S252的处理期间的故障,在图18和19所示的拷贝/转移会话的一系列处理中发生了中断时,要进行重写处理。
在图18和19所示的拷贝/转移会话中,当出于以下理由,在从步骤S227到步骤S235的处理期间发生了中断时,要进行重写处理。从步骤S227到步骤S235的一系列处理是内部处理,并且不能够指定在从步骤S227到步骤S238的步骤中终端设备10的处理发生了故障的步骤。因此,假定执行步骤S236以使许可证在所有的情况下均无效,因此,要按如上所述来进行重写处理。
出于以下理由,当从步骤S236到步骤S247的处理期间发生中断时,进行重写处理。在转移处理中,在步骤S236中,使硬盘20上的许可证无效,并且有效许可证将在上述时间段内未存在于硬盘21上。因此,如果在上述时间段内中断了该处理,则目标许可证丢失。
当出于以下理由,从步骤S248到步骤S250的处理期间发生中断时,也进行重写处理。在步骤S248中写入许可证之后,进行步骤S249和S250,因此,在这些步骤之前,主要处理已经完成。然而,终端设备10不能够确定步骤S248的结束,从而假定步骤S248还未结束,并且对其进行配置以进行针对步骤S248到步骤S250的重写处理。当在步骤S248结束之后进行重写处理时,将在重写处理中拒绝重写。
当出于以下理由,在步骤S251中的处理期间发生中断时,也进行重写处理。在步骤S51中的处理主要仅在极其特殊的情况下中断,但是不能够确定关于在步骤S251中处理已中断的事实。因此,配置该***以进行与步骤S251相关的重写处理。
当在终端设备10中确定了会话是如上所述的许可证拷贝时,或者当能够在步骤S227-S235和步骤S249-S251中,指定处理已中断的步骤时,不一定需要该重写处理,而仅需要再次执行图18和19所示的拷贝/转移会话。
[拷贝/转移中的重写]
图21到23分别是第一到第三流程图。这些流程图示出了当在图18和19所示的拷贝/转移会话的处理流程中从步骤S227到步骤S252的处理期间发生了故障时,所进行的重写处理。
参考图21,当终端设备10确定了在从步骤S227到步骤S252的处理期间发生了故障时,该终端设备10向硬盘20提供许可证ID(LID)、以及对重传许可证LIC的请求,作为数据串LID//(重传请求)(步骤S301)。硬盘20的控制器214通过终端210和ATA接口部分212接受了LID//(重传请求)(步骤S301a),并拷贝该日志(301b)。在该拷贝处理中,确定日志存储器253是否存储了包括步骤S301a中所接受的LID的日志。如果已存储,则将包括步骤S301a中所接受的LID的日志拷贝到在日志存储器253中存储了最早日志的存储体n中,并且将变量ERR设置为“假”。如果日志存储器253并未存储包括步骤S301a中所接受的LID的日志,则将变量ERR设置为“真”。根据图16的流程图来执行该拷贝处理中的特定操作。
控制器214确定步骤S301a中的处理结果,因此,确定变量ERR是为“真”还是“假”(步骤S301b)。如果为“真”,则这表示包括所接受的LID的日志已被拷贝到存储体n中。因此,该处理移到下一步骤S302,以便响应重传请求开始处理。如果为“假”,则这表示包括所接受的LID的日志并未存储在日志存储器253中,因此,在硬盘20中不执行由所接受的LID所指定的许可证LIC的输入/输出处理。因此,确定不能够响应该重传请求,并且在图23的步骤S372中执行下一处理以向终端设备10发布错误通知。当终端设备10接受了该错误通知时(步骤S373),该处理结束。
在硬盘20中,当在步骤S301b中确定了变量ERR为“假”时,控制器214确定在拷贝和存储到日志存储器253的存储体n中的日志的状态ST1的状态(步骤S302)。当状态ST1既不是“等待发送”又不是“已发送”时,即,当其在拷贝/转移会话中未处于许可证LIC的发送机侧时,控制器214执行在图23的步骤S371中执行下一处理。
当状态ST1是“等待发送”或“已发送”时,硬盘20的控制器214指示会话密钥产生部分226产生会话密钥,并且会话密钥产生部分226产生会话密钥Ks1b(步骤S303)。当产生了会话密钥Ks1b时,控制器214从日志存储器253的存储体n中所存储的日志中,获得作为转移/拷贝许可证LIC的目的地、且在中断之前所接受的硬盘21的类公用密钥KPcm1(步骤S304)。在以上处理中,使用日志中所存储的类公用密钥KPcm1,而无需再次从硬盘21即转移/拷贝的目的地中接受类证书Imc1。这样做的目的在于:防止由于重写处理中的欺骗性攻击而造成的许可证LIC的泄漏。为了再次接受类证书Imc1,需要确定已中断处理中所接受的类证书是否与重写处理中所接受的类证书相同。例如,将在重写处理中所接受的类证书Imc1中所包括的类公用密钥与日志中所记录的类公用密钥进行比较,由此,确定是否要执行该重写处理。
在硬盘20中,加密处理部分222利用类公用密钥KPcm1来加密会话密钥Ks1b,以产生已加密数据E(KPcm1,Ks1b)(步骤S305)。控制器214通过ATA接口部分212和终端210,将这样产生的已加密数据(KPcm1,Ks1b)提供给终端设备10,作为数据串LID//E(KPcm1,Ks1b)(步骤S306)。
终端设备10接受已加密数据LID//E(KPcm1,Ks1b)(步骤S307),并且将所接受的LID//E(KPcm1,Ks1b)提供给硬盘21(步骤S308)。
硬盘21的控制器214通过终端210和ATA接口部分212接受LID//E(KPcm1,Ks1b)(步骤S309),并且通过总线BS3,将E(KPcm1,Ks1b)提供给解密处理部分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中的日志存储器253中所存储的日志的请求(步骤S311)。硬盘21的控制器214通过终端210和ATA控制器212接受对日志的输出请求(步骤S312)。与硬盘20中的步骤S301a类似,执行日志的拷贝(步骤S312a)。在该拷贝操作中,确定日志存储器253是否已经存储了包括步骤S309中所接受的LID的日志。如果已存储,则将所存储的包括LID的日志拷贝到在日志存储器253中存储最早日志的存储体na,并且将变量ERRa设置为“假”。如果日志存储器253还未存储包括在步骤S309中所接受的的LID的日志,则将变量ERRa设置为“真”。根据图16的流程图来执行步骤S312a中的特定操作。为了将硬盘21中的处理与硬盘20中的类似处理的结果区别,变量n表示为变量na,并且变量ERR表示为变量ERRa。因此,在与图16的步骤S112b相对应的图12的流程图中,用变量na替换变量n,并且用变量ERRa替代ERR。
控制器214确定步骤S312a中的处理结果,因此,确定ERRa是“真”还是“假”(步骤S312b)。如果结果为“假”,这表示包括所接受的LID的日志被拷贝到存储体na中从而操作移到下一步骤S313,以便响应重传请求来开始处理。如果结果为“真”,这表示包括所接受的LID的日志并未存储在日志存储器253中,因此硬盘21并不执行由步骤S313中所接受的LID指定的许可证LIC的输入/输出处理。因此,确定了不能够对重传请求作出响应,并在图23的步骤S371中执行下一步骤,以向终端设备10发出错误通知。当在终端设备10中接受了错误通知时(步骤S373),该处理结束。
在硬盘21中,当在步骤S312b中确定ERRa为“假”时,控制器214确定存储在与日志存储器253的存储体na中所存储的日志的存储LBA相对应的区域中所存储的许可证LIC的许可证ID(LID)是否与日志存储器253的存储体na中所存储的日志的许可证ID(LID)相匹配(步骤S313)。
当这些许可证ID(LID)彼此相匹配时,控制器214还检查与在日志存储器253的存储体na中所存储的日志的存储LBA相对应的、有效性标记存储器252中的标记,并且确定许可证LIC是有效还是无效(步骤S314)。当在有效性标记存储器252中的标记是“有效”时,控制器214将日志存储器253的存储体na中所存储的日志的状态ST2变更为“数据存在”(步骤S315),并且在步骤S318中开始接下来的步骤。当在有效性标记存储器252中的标记为“无效”时,控制器214将日志存储器253的存储体na中所存储的日志的状态ST2变更为“已发送”(步骤S316),并且在步骤S318中开始接下来的步骤。
当在步骤S313中,这些许可证ID(LID)不匹配时,控制器214将日志存储器253的存储体na中所存储的日志的状态ST2变更为“没有数据”(步骤S317)。
当状态ST2变更时,控制器214从日志存储器253的存储体na中获得许可证ID(LID)、状态ST1和ST2、会话密钥Ks2c、以及存储LBA(步骤S318)。在这种情况下,由于根据图9和图10的流程图,结合分配会话的中断来执行当前处理,将会话密钥Ks2a存储在硬盘21的日志存储器253中所存储的当前处理的日志中,但是出于描述的原因,示出了从日志存储器253的存储体n中所获得的会话密钥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(Ks 1b,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(Ks1b,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,将其和存储LBA提供给终端设备10(步骤S322)。
参考图22,当终端设备10从硬盘21接受已签名接收日志LID//E(Ks1b,Ks2c)//ST1//ST2//E(Ks1b,H(LID//E(Ks1b,Ks2c)//ST1//ST2))和存储LBA时(步骤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,并且指示会话密钥产生部分226产生会话密钥Ks1b。解密处理部分228利用所产生的会话密钥Ks1b,对签名数据E(Ks1b,H(LID//E(Ks1b,Ks2c)//ST1//ST2))进行解密。硬盘20的控制器214计算已签名接收日志的前一半,即,接收日志LID//E(Ks1b,Ks2c)//ST1//ST2的散列值,并且将其与由解密处理部分228所提取的散列值进行比较。当硬盘20的控制器214据此确定了这两个散列值相匹配时,硬盘20的控制器214认证了从硬盘21接收到的接收日志包括正确的数据。
当在步骤S326中认证了接收日志时,硬盘20的控制器214将在步骤S325中已认证的接收日志中所包括的许可证ID(LID)与日志存储器253的存储体中所存储的许可证ID(LID)进行比较(S327)。
当这些许可证ID(LID)彼此相匹配时,控制器214将在接收日志中所包括的已加密数据E(Ks1b,Ks2c)提供给解密处理部分228,并且解密处理部分228利用从会话密钥产生部分中接收到的会话密钥Ks1b对其进行解密,以接受会话密钥Ks2c(步骤S328)。将通过解密获得的会话密钥Ks2c通过总线BS3提供给控制器214。然后,控制器214将当发生故障时正在使用、并因而记录在存储体n的日志中的会话密钥Ks2a与包括在当前所批准的接收日志中的当前会话密钥Ks2c进行比较(步骤S329)。当控制器214确定了在会话密钥Ks2a和Ks2c之间发生了匹配时,其检查所接受的状态ST1和ST2的内容(步骤S330)。
当接收到的接收日志的状态ST1为“等待接收”,并且接收日志的状态ST2是“没有数据”时,硬盘20的控制器214确定由于特定的故障,被发送到硬盘21的许可证LIC并未由硬盘21所接受。由此,硬盘20的控制器214进一步确定在日志存储器253的存储体n中所存储的日志的存储LBA中所存储的许可证LIC的许可证ID(LID)是否与日志存储器253的存储体n中所存储的日志的许可证ID(LID)相匹配(步骤S331)。当这些许可证ID(LID)彼此相匹配时,硬盘20的控制器214检查与日志存储器253的存储体n中所存储的日志的存储LBA相对应的有效性标记区域252中的标记,并且确定许可证LIC是否有效(步骤S332)。当有效性标记区域252中的标记为“无效”时,控制器214将有效性标记区域252中的标记变更为“有效”(步骤S333)。当有效性标记区域252中的标记为“有效”时,控制器214开始在步骤S334中接下来的步骤。控制器214通过ATA接口部分212和终端210,将日志存储器253的存储体n中的日志的存储LBA以及使用许可提供给终端设备10(步骤S334)。
当终端设备10的控制器108通过硬盘接口部分110和总线BS2,从硬盘20接收到在其上要存储目标许可证LIC的存储LBA时(步骤S335),控制器108通过总线BS2和硬盘接口部分110,向硬盘21发出关于产生会话密钥的请求通知(步骤S336)。
当硬盘21从终端设备10接受了针对会话密钥的产生请求通知时,其产生会话密钥Ks2b(步骤S337),并且将日志存储器253的存储体na的日志中所存储的会话密钥Ks2c(Ks2a)变更为会话密钥Ks2b。此外,其将日志的状态ST1变更为“等待接收”(步骤S338)。
除了新产生并使用会话密钥Ks2b来替代会话密钥Ks2a之外,与图18和19所示的从步骤S219到结束的一系列处理类似地进行从步骤S339开始的一系列处理。因此,将不再描述在步骤S339之后的一系列处理。
然而,处理可能在步骤S335之后结束,以将许可证留在硬盘20上。在这种情况下,可以根据图18和19的流程图来再次转移许可证。
与在根据图21-23的流程图的许可证的转移或写入期间的重写处理的中断相关,当在步骤S301-S344和步骤S347-S371的任一个中中断了该处理时,可以再次根据图21-23的流程图来进行重写处理。当在步骤S325-S346的任一个中中断了该处理时,可以通过根据图18和19的流程图从初始步骤开始处理,可以进行用于转移或拷贝许可证的处理,由此,可以恢复该处理。
按照该方式,与附加到终端设备10上的多个硬盘之间的许可证的拷贝或转移相关,通过从硬盘21接收到的类证书Cm1,即转移或拷贝的目的地是有效的,来进行处理,并且由各个硬盘产生加密密钥(会话密钥),并且在各个硬盘之间传送该加密密钥,在各个硬盘之间,利用与包含其的类证书Cm1一起发送的类专用密钥KPcm1来进行许可证的拷贝或转移。每一个硬盘利用这样接收到的加密密钥来进行加密,并且将已加密数据发送到相对方。由此,能够禁止将许可证未授权地拷贝和转移到硬盘。此外,实际上,可以在传送已加密数据的处理中进行相互认证。由此,能够保护许可证免于目的地的欺骗,并且可以提高***的安全性。
此外,当在许可证的拷贝/转移会话中发生了中断时,与分配会话中的情况类似地进行处理,因此,进行如下处理。将硬盘21即接收机侧的数据存储设备中的、要由拷贝/转移会话处理的许可证LIC的接收日志发送到硬盘20,即,发送机侧的数据存储设备,并且在硬盘20中进行处理,以便将硬盘的日志存储器253中所存储的日志的内容与安全数据存储部分250所存储的、并且由该日志所存储的LBA所指定的许可证LIC进行比较。此外,查阅在有效性标记区域252中所存储的标记。由此,在所中断的拷贝/转移会话是转移许可证的处理的情况下,可以安全地进行重写处理,而不允许可能在两个数据存储设备即硬盘20和21中使用的许可证的双重存在。
如上所述,本发明提供了数据存储设备和处理方式和进程,能够进行快速的处理,同时避免了由于拷贝/转移会话的中断而造成的许可证LIC的丢失,并且还提供了数据存储设备和处理方式或过程,即使当要进行重写处理时,也能够实现安全处理和可靠的版权保护。
图18-23中的硬盘21的处理步骤S202、S203、S214、S215、S217-S220、S241-S243、S245-S251、S309、S310、S312-S322、S337-S340、S361-S363和S365-S371分别与图9、10、13-15中的硬盘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中进行这些种类的处理,作为将许可证写入数据存储设备的处理。
[使用许可]
再次参考图5,将充当数据存储设备的硬盘20附加到配备有用于再现内容数据的再现电路150的终端设备10上,并且硬盘20将内容数据的使用许可提供给终端设备10中的再现电路150。
图24是示出了处理(使用许可会话)处理的流程图,其中,终端设备10的用户从终端设备10提供了对已加密内容数据的再现请求,由此,附加到终端设备10上的硬盘20将使用许可提供给终端设备10中的再现电路150。
参考图24,当终端设备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(步骤405)。
硬盘20接收从终端设备10发送来的类证书Cp3(步骤S406),并且认证所接受的类证书Cp3是否正确(步骤S407)。按照已经结合在拷贝/转移会话中的步骤S207描述的相同的方式来进行认证处理,因此,不重复对其的描述。
当在步骤S407确定了类证书Cp3是正确的,控制器214批准类证书Cp3,并且接受在类证书Cp3中所包括的类专用密钥KPcp3(步骤S408)。然后,在步骤S409中进行接下来的处理。当类证书Cp3不正确时,控制器214不批准类证书Cp3,并且向终端设备10发出错误通知,而不接受类证书Cp3(步骤S435)。当终端设备10接受了错误通知时(步骤S436),使用许可会话结束。
当在步骤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提供在其上安全数据存储部分250存储了与所请求的内容数据相对应的目标许可证LIC的LBA。
当硬盘20的控制器214通过终端210和ATA接口部分212接受了目标许可证LIC的LBA时(步骤S424),其确定在与所接受的LBA处所存储的许可证LIC相对应的有效性标记区域252中的标记是“有效”还是“无效”(步骤S425)。
当有效性标记存储器250C中的标记是“有效”时,控制器214根据所接受的LBA,从安全数据存储部分250中获得目标许可证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中有效性标记区域252的标记为“无效”时,或者当在步骤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。
如上所述,通过在安全保护许可证免于泄漏的同时执行输入/输出管理的密码技术,硬盘20实现以下五种处理:
(1)接收和存储从另一设备提供的许可证的写处理(许可证提供设备或另一硬盘)(即,图9和10中的硬盘20的处理,以及图21-23中的硬盘21的处理)。
(2)通过恢复已中断写处理执行的重写处理(即,图13-15中的硬盘20的处理,以及图21到图23的硬盘21的处理)。
(3)将许可证转移或拷贝到另一硬盘的提供处理(即,图16-18中的硬盘20的处理)。
(4)在中断提供处理之后通过恢复转移/拷贝处理所执行的重新提供处理(作为许可证的提供者的重写处理,以及图21-23中的硬盘20的处理)。
(5)为了解密已加密内容数据的目的向再现电路提供内容密钥Kc的使用许可处理(即,图24中的硬盘20的处理)。
已经给出的所有描述涉及内容数据的许可证。然而,目标并不局限于前述许可证,并且可以扩展到一般分类数据以在保密状态下进行处理。这是由于前述装置和方式可以保护数据的保密性,并且可以实现与指定数据存储设备中的分类数据有关的本发明的目的。
[第二实施例]
在已经描述的第一实施例中,这些操作执行如下。在硬盘20开始图13-15所示的重写处理、以及由图21-23的流程图所示的重新提供处理之前,硬盘20检索针对要在重写/重新提供处理中处理的许可证的最后日志,用于确定是否允许该处理。当检索到相应的日志时,将检索到的日志拷贝到日志存储器253的存储体n中,并且根据后续处理的处理过程来更新存储体n中这样存储的日志。
然而,在重写处理中,将拷贝的日志输出到许可证提供侧,作为针对最后处理的日志,然后,将在图14的步骤S137中重写日志的内容。由于诸如按照从存储旧日志的存储体向存储较新日志的存储体的次序循环地使用这些日志的、日志存储器253的特性,执行对日志的拷贝,并且拷贝该日志的目的是要将与针对更长持续时间的重写处理相对应的日志保存在日志存储器253中,即使在重写处理最初中断的时候(在图14的步骤S136中或之前)。
因此,在配备有具有相当大容量的日志存储器253的硬盘中,可以配置重写处理以从存储器的存储体中直接输出所检索到的日志,而无需拷贝所检索到的日志。在这种情况下,将状态ST2的变更(步骤S115、S116和S117)作用于所讨论的存储体的日志上,从而在步骤S118中从所讨论的存储体中获得要输出的日志。
由于未拷贝该日志,在图14的步骤S137中确保了用于存储与重写处理相对应的日志的存储体。因此,将步骤S137变更为“将新日志存储在用于在日志存储器中存储最早日志的存储体na中”。
类似地,可以改***盘21中的处理。所有其他处理与第一实施例相同。在处理上的上述改变不会引起证书的安全性上的任何改变,并且可以实现与第一实施例类似的效果。
[第三实施例]
与许可证的重写处理类似,能够在许可证的重新提供处理中,通过直接从存储其的存储体中读取所检索到的日志而不拷贝所检索到的日志,确定是否允许该重新提供。这可以通过变更处理来实现,所述处理为诸如不执行图21中的步骤S301a中的拷贝,并且直接从存储其的存储体中获得图21的步骤S302中所检索到的日志和图22中的步骤S329、S331和S332。除了以上情况之外的其他处理与第一实施例相同。
处理中的该变更不会引起许可证的安全性上的任何变化,并且可以实现与第一实施例相同的效果。此外,这可以与第二实施例结合。
[第四实施例]
为了减少硬盘20中的处理,需要在一般写处理和重写处理之间实现较高程度的通用性。因此,在第一实施例的“会话密钥请求”中和之后的硬盘20的处理之间提供通用性,即,一般写处理(图9中的步骤S19-S22,以及图10中的步骤S33-S35和S38-S43)和重写处理(图14中的步骤S136-S139,以及图15中的步骤S150-S152和S154-S160)。在这种情况下,通过在图9的步骤S20和图14的步骤S137中采用相同的处理,可以容易地实现通用性。
在这种情况下,在步骤S137和S20中执行相同处理,以便“将新日志存储在用于在日志存储器中存储最早日志的存储体nb中”。根据图11和12的流程图来执行特定操作,除了用变量nb替换变量n之外。用变量nb替换变量n的目的是将该变量与在图13和14中的步骤S137之中和之前的处理中的变量n进行区分。由此,在图14和15的步骤S137之后的步骤S154、S155和S159中用存储体nb来替代每一个存储体n。
同样,在转移/拷贝会话中,在图21-23的流程图中的步骤S342之中和之后的处理与图16-18的流程图中的步骤S222之中和之后的处理的不同之处仅在于日志的记录(仅在于图23中的步骤S345和图18中的步骤S225)。由于图23中的步骤S345的处理与图18中的步骤S225中相同,这便于硬盘20的实现。在这种情况下,在步骤S345中执行与步骤S20相同的处理,以“将新日志存储在用于在日志存储器中存储最早日志的存储体nb中”。可以根据图20和12的流程图来执行特定处理,尽管变量n被变量nb替代。用变量nb来替代变量n的目的是将该变量在图21和22的步骤S245之中和之前的变量n进行区别。因此,在图23的步骤S345之后的所有步骤S348和S57中,用存储体nb来替代每一个存储体n。
除了以上情况之外的处理与第一实施例相同。处理中的变更不会引起许可证的安全性的任何变化,并且可以实现与第一实施例相同的效果。此外,类似地,可以改***盘21的处理。
通过在一般写处理和重写处理之间提供通用性,能够减小所实现的处理的量,同时实现与第一实施例相类似的许可证的安全管理。
[第五实施例]
现在将对第五实施例进行描述。为了简化日志的记录开始时间,将第五实施例配置为在所有处理中,在相对于硬盘的外部来接受许可证ID(LID),从而在日志存储器253中确保一个存储体,并且其中记录了用于该处理的日志。
现在将描述第五实施例中的许可证的分配操作。
在第五实施例中,许可证提供设备40根据图25和26的流程图将许可证分配给硬盘20。图25和26的流程图与图9和10相同,除了在图9和10的步骤S16和S17之间***了步骤S16a,并且用步骤S201a来替代步骤20。
根据图27的流程图来执行步骤S16a中的特定操作。参考图27,硬盘20的控制器214在步骤S16之后,指定存储了最新日志的存储体(n-1),并且获得存储体n中所存储的管理号(步骤S16b)。根据图12的流程图来执行步骤S16b中的特定操作。
在步骤S16b之后,控制器214将步骤S16中接受的管理号(m+1)和许可证ID(LID)存储在存储体n中,并且将存储体n中所存储的日志的ST1区域2544设置为“等待接收”(步骤S16c)。由此,图25所示的步骤S16a中的操作结束。
在步骤S19之后,控制器214将步骤S19所接受的会话密钥Ks2a存储在日志存储器253的存储体n中所存储的日志的Ks2x区域2543中(步骤S201a)。
除了上述操作之外的其他操作与已经描述的第一实施例的操作相同。
[分配中的重写]
在第五实施例中,当中断了许可证分配时重写许可证,并且根据图13-15的流程图来执行该重写操作。这些特定操作与已经结合第一实施例所描述的操作相同。
[转移/拷贝]
图28和29是用于示出了图17所示且可以执行许可证的转移/拷贝的***中所执行的第五实施例中的处理(拷贝/转移会话)的第一和第二流程图。在该处理中,终端设备10的用户请求从终端设备拷贝或转移已加密内容数据的许可证,由此,通过终端设备10,将许可证从附加到终端设备10上的硬盘20拷贝或转移到硬盘21中。
图28和29的流程图与图18和19的流程图相同,除了在步骤S207和S209之间***了步骤S208,在步骤S214和S215之间***了步骤S214a,用步骤S218a替代步骤S218,以及用步骤S225a替代步骤S225之外。
参考图28,当硬盘20的控制器214批准在步骤S207从硬盘21提供的证书Cm1时,其将新日志存储在日志存储器253中存储最早日志的存储体n中(步骤S208)。根据图30的流程图来执行步骤S208中的特定操作。
参考图30,步骤S208包括步骤S208a,其中在硬盘20中指定了在日志存储器253中存储最新日志的存储体(n-1),并且获得存储在存储体(n-1)中的管理号m;以及步骤S208b,其中将管理号(m+1)、许可证ID(LID)和类公用密钥KPcmy存储在存储体n中,并且将ST1区域2544中的状态ST1设置为“已发送”。根据图12的流程图来执行步骤S208a中的特定操作。因此,控制器214根据图12和30的流程图来操作,由此,将其中存储了步骤S206中所接受的许可证ID(LID)、硬盘21的类公用密钥KPcm1和设置为“等待发送”的状态ST1存储在存储体n中。
在步骤S214之后,硬盘21的控制器214将新日志存储在用于存储最早日志的存储体na中(步骤S214a)。根据已经描述过的图12和27的流程图来执行步骤S214a中的特定操作,尽管用变量na替换了变量n。
因此,根据图12和27的流程图,硬盘21的控制器214将步骤S214中所接受的许可证ID(LID)和存储了设置为“等待接收”的状态ST1的新日志存储在用于在日志存储器254中存储最早日志的存储体na中(步骤S214a)。
另外,在步骤S217之后,硬盘21的控制器214将步骤S217中所产生的会话密钥Ks2a存储在日志存储器253的存储体na中(步骤S218a)。
另外,在步骤S224之后,硬盘20的控制器214将步骤S224中所接受的会话密钥Ks2a存储在日志存储器253的存储体n中(步骤S225a)。
除了以上操作之外的其他操作与结合第一实施例已经描述的操作相同。
[转移/拷贝中的重写]
在第五实施例中,当中断了将许可证从硬盘21转移或拷贝到硬盘20的会话时,根据图21到23的流程图来执行重写许可证的操作。因此,用于重写的特定操作与已经描述的第一实施例中的操作相同。
第五实施例实现了与第一实施例类似地重写和提供许可证的安全处理,并且阐明了各种处理中的日志产生的定时。此外,与第三实施例类似,通过提供一般写处理和重写处理之间的通用性,第五实施例可以减小所实现的处理的量。可以类似地改***盘21的处理。
尽管已经详细描述和示出了本发明,但是应该清楚地理解,该描述是说明性和示例性的,并且其不是用作对本发明的限制,而仅由所附权利要求的各项来限定本发明的精神和范围。