具体实施方式
在下文中,将参照附图描述本发明的实施例。
[例1]
本例具有如下特征,即:
(1)加密需要保护的数字数据;
(2)数字数据的使用通过解密加密数字数据的密钥数据和描述数字数据的使用规则的使用规则数据控制;
(3)在将描述在(2)中的密钥数据和使用规则数据记录在媒体中的情况下,媒体是用户不能自由访问的区域;
(4)在位于远程的主装置或服务器中和具有生成描述在(2)中的密钥数据和使用规则数据和将这些数据发送到存储设备的功能单元,与位于存储设备中和具有实际将接收的密钥数据和使用规则数据记录到媒体中的功能的功能单元之间,或在存储设备中的功能单元与读出记录的密钥数据和使用规则数据和控制加密数字数据的再现的功能单元之间,进行相互核实有效性的验证事务处理,因此建立加密通信信道;和
(5)在如(4)所述的两个功能单元之间传送生成或记录的描述在(2)中的密钥数据和使用规则数据的情况下,数据通过如(4)所述的加密通信信道。
首先,描述作为整体的系统装置和作为示范性存储设备的硬盘驱动器。此后,描述传送密钥数据和使用规则数据的方法。
[系统装置的配置]
参照图1和图2,描述包括本例中的记录和再现装置(内容记录器/播放器)112和可以与该装置连接的存储设备的系统的整体配置。在本例中,描述记录和回放系统的示范性应用,其中,将广播的数字视频数据、分发服务器150分发的数字数据和通过与另一个设备连接的数字信号132发送的数字数据记录到可卸式存储设备或存储设备125和126中,并且通过记录和再现装置112的显示设备134、扬声器135等再现。
在下文中,将数字数据记录和再现装置112简称为记录器/播放器,并且将记录器/播放器112接收的像视频、音乐和文本那样的数字数据称为内容数据。这里,记录内容数据的可卸式存储设备125和126是,例如,硬盘驱动器、半导体存储器件等。这些存储设备的每一个都具有成为本例的特征的控制功能。在下文中,将描述存储设备125和126是硬盘驱动器的例子。但是,存储设备不局限于此,而是可以应用除了硬盘驱动器之外的任何其它已知存储设备,只要它具有如下所述的本例的特征功能就行。
随着被天线131通过广播电波接收,或被分发服务器150分发和通过网络接口100接收,需要版权保护的内容数据进入记录器/播放器112中。分发的内容数据由广播电波发送源(广播)130或分发服务器150上的预定加密系统加密。该加密系统可以依照每一个的内容保护规范唯一地规定。在这种情况下,还将解密内容数据的密钥数据(下文称为内容密钥)和内容数据的使用规则分开发送到记录器/播放器112。下文将控制这些内容数据的解密和使用的信息称为内容数据的使用控制信息。使用控制信息可以从与内容数据的发送源相同的发送源发送,或可以从另一个发送源发送。
记录器/播放器112具有使可卸式存储设备,例如,硬盘驱动器125和126能够与之连接的配置。通过记录模块102和保护信息发送模块104将通过广播电波发送或从分发服务器150发送的加密内容数据和内容数据的使用控制信息记录到硬盘驱动器125和126中。通过保护信息发送模块104将加密内容数据和内容数据的解密控制信息从可卸式硬盘驱动器125和126发送到回放模块103。在记录器/播放器112中的回放模块103上进行内容数据的解密和再现。
顺便说一下,为了防止内容数据被未授权使用,必需防止包括在使用控制信息中的内容密钥被未授权取出和使用规则被未授权复制和重写。为此,重要的是将发送和接收使用控制信息和在记录器/播放器112和可卸式硬盘驱动器125和126中记录和读出信息的部件安装成具有抗窜改性。这样的部件包括记录器/播放器112中的主保密管理器111和硬盘驱动器(图2)240中的存储保密管理器225。主保密管理器111中的保护信息存储器101的作用和存储保密管理器225中的使用通行证传送模块221、限定存储控制器222和限定存储器223的特定作用将在后面描述。
本例涉及在主保密管理器111和存储保密管理器225中的模块之间相互发送和接收使用控制信息的传送协议。这里,实现记录器/播放器112和硬盘驱动器125和126中的每个模块的功能和保密管理器的手段可以通过硬件或软件(程序)形成。
同时,在记录器/播放器112中,与网络的网络接口100、与输入设备120的用户接口桥接器105、与硬盘驱动器的接口(主接口单元1,2)106和107、控制这些单元的处理器(PU)108等总体上具有控制流入系统中的数据的事务处理和递送的功能。在那种意义上,下文将这些单元统称为主模块110。
[硬盘驱动器的配置]
参照图2,描述硬盘驱动器的配置的要点。在硬盘驱动器240中,在从外部输入除了其数据通过存储接口单元220输入输出的使用控制信息之外,不需要特殊保护的数据的情况下,通过控制器230将数据从磁头单元202记录到磁盘200上。加密内容数据也遵循这个流程并被记录到磁盘220上。在读出的情况下,数据与上述相反地向后流动。存储控制器230也受处理器(PU)235控制。使用通行证传送模块221、限定存储控制器222等也受处理器235控制。使用通行证传送模块221和限定存储控制器222的详细行为将在后面描述。
同时,作为控制像使用控制信息那样需要保护的数据的记录和传送的整个模块群的存储保密管理器225需要安装成具有高抗窜改性。但是,尽管在图2中限定存储器223与磁盘200分离地配备,但限定存储器也可以配备在磁盘200上,只要具有在加密内容数据的读取和写入之间只容许通过不同特殊访问方法访问,并且不可能拆开这个设备和直接读出内部数据等的配置就行。在这样安装的情况下,必需实现提供抗窜改性,以便不能从外部改变存储控制器230的行为的特殊安装。
[基本假设]
在广播电波上发送的内容数据、分发的数据、或记录在其它媒体上的内容数据一般通过唯一规定系统加密。此外,这些数据常常包含控制它们的使用的信息。在记录器/播放器112通过天线131或数字信号线132取入这些数据的情况下,记录模块102依照规定系统解密内容数据,并且取出解密控制信息。同时,解密内容数据常常通过单独方法加密,以便将它们发送到存储设备或将它们写入媒体中。这里,如果将取出的使用控制信息与解密内容数据的密钥数据一起分组成具有特定格式的一个数据,则具有使这些数据管理变得更容易的优点。在下文中,将此称为使用通行证。但是,使用控制信息不一定需要分组成一个。图4示出了使用通行证的示范性结构。
随着记录模块102生成使用通行证,记录模块102将它发送到硬盘驱动器125或126。但是,为了完成这个发送,必须在此之前在记录模块102或保护信息发送模块104与使用通行证传送模块221之间完成相互验证。当完成了验证事务处理时,它们共享几个密钥数据。然后,利用共享密钥加密作为传送对象的使用通行证,然后将它从记录模块102发送到使用通行证传送模块221。
传送使用通行证的事务处理大体包括如下两步:
(1)相互确认连接方的设备是否有效的验证事务处理;和
(2)利用依照验证事务处理共享的密钥加密使用通行证,并且传送使用通行证的进程。
在上面两个阶段中存在各种各样的具体方法。在下文中,根据描述在专利参考文献1和专利参考文献2中的双向传送模式(简称为BT模式)来描述。但是,该方法不局限于此。本发明可以应用于具有描述在问题部分中的特征(1)到(3)的验证事务处理、事务处理日志记录和使用规则信息传送事务处理。
下文将像上面BT模式那样的使用控制信息统称为限定访问模式。当在模块之间传送使用通行证时,主模块110在启动记录器/播放器的时候决定使用哪一种限定访问模式进行像使用通行证那样的使用控制信息的相互验证和传送。对于相互验证事务处理,使用在公开密钥加密板上生成的数字签名。此外,就密码术而言,利用对称密钥密码体制以CBC(密码块链接)模式对在进程中生成的使用通行证或临时密钥进行加密是合适的。基于CBC模式的加密描述在,例如,《网络保密》(由Pearson Education公司出版)中。
在硬盘驱动器中,当使用通行证传送模块221接收到使用通行证时,使用通行证传送模块221将使用通行证发送到限定存储控制器222。限定存储控制器222是控制限定存储器223的模块。使用通行证本身最终被记录到限定存储器223中。在分发服务器150将使用通行证发送到硬盘驱动器的情况下,或在将使用通行证从一个硬盘驱动器发送到另一个硬盘驱动器的情况下,依照本例的系统,用作使用通行证的传送源的模块可以直接将使用通行证发送到用作传送目的地的硬盘驱动器中的使用通行证传送模块。在这种情况下,记录器/播放器112中的网络接口100和记录模块102只控制一个模块到其它模块的数据传送,但不直接参与使用通行证的相互验证和加密的事务处理。
[系统的密钥和数据的配置]
图3示出了在如图1和图2所示的设备中的记录模块102、回放模块103和使用通行证传送模块222之间进行使用通行证传送的时候,用于加密使用通行证和分发数据等的密钥数据的列表。通常,在密钥数据X是用于对称加密的密钥数据的情况下,利用密钥数据X加密目标数据和利用相同密钥数据X进行它的解密。另一方面,在密钥数据X是用于非对称加密的秘密密钥或公开密钥的情况下,利用与X不同和与之相对应的公开密钥或秘密密钥Y加密作为加密对象的数据。利用X解密利用Y加密的数据。在下文中,将非对称加密公开密钥简称为公开密钥,将非对称加密秘密密钥简称为秘密密钥,并且将对称加密密钥数据简称为对称密钥。在将数字签名附在数据上的情况下,这意味着包括作为它的一部分的数据的数据集的散列值通过与公开密钥X相对应的秘密密钥Y加密。在本说明书中描述成K_x中的字母“x”在所有附图中以下标的形式表示。
与内容数据的加密、解密和回放、使用通行证的加密和解密和记录模块102、回放模块103、硬盘驱动器125和126和分发服务器150的验证有关的密钥包括如下密钥。加密和解密内容数据的密钥是内容密钥K_c。将分别相互验证的带有数字签名的公开密钥KP_dc指定给分发服务器150、记录模块102、回放模块103和使用通行证传送模块221的每一个。但是,在将主保密管理器111作为整体安装成单个抗窜改功能单元的情况下,可以将一个KP_dc指定给主保密管理器111。
通过公开密钥KP_dc加密的数据可以通过与此相对应的秘密密钥K_dc解密。关于分发服务器150、记录模块102、使用通行证传送模块221和回放模块103的每一个,这些秘密密钥数据以某有限个单元一个的方式指定。有限个单元暗示着可以是一个或多个单元。共享KP_dc和K_dc的单元被称为类。对于一个类,规定了传送和记录使用通行证的部件在安装时必须满足的保密级和一个使用通行证传送系统。也就是说,属于某个类的多个模块以这样的形式安装,那就是它们满足为那个类规定的保密级,并且它们具有实现一种公用使用通行证传送方法的功能。在下文中,将这样的设备和模块统称为设备。
将来自预定证书管理机构的数字签名给予与其它一般信息连接之后的KP_dc,它起每个设备的证书的作用。将给予数字签名的证书管理机构的公开密钥表达成KP_CA,将与之相对应的秘密密钥表达成K_CA。在下文中,将这些称为证书管理机构公开密钥和证书管理机构秘密密钥。描述在证书中的一般信息包括证书的发放源、证书的序号等。在下文中,将示出KP_dc的有效性的证书称为设备类证书,将公开密钥KP_dc称为设备类公开密钥,将用于解密通过该密钥加密的数据的秘密密钥称为设备类秘密密钥。在出货时将设备类证书和设备类秘密密钥嵌入每个设备中。对于每个设备,还嵌入分别嵌入的公开密钥KP_d和解密通过该密钥加密的数据的秘密密钥K_d。在下文中,将这些称为设备公开密钥和设备秘密密钥。将不同的设备公开密钥和设备秘密密钥嵌入所有设备中。在通过公开密钥加密的进程中,根据用于加密的公开密钥生成一个对称密钥。将此表达成*KP_d。类似地,在通过秘密密钥解密的进程中,根据用于解密的秘密密钥生成一个对称密钥。将此表达成*K_d。*KP_d和*K_d的值因此是相同的。通过*KP_d加密的数据可以通过*K_d解密。这些对称密钥被分别称为共享设备公开密钥和共享设备秘密密钥。生成这些密钥的方法将在后面有关公开密钥加密方法的描述中作详细描述。
此外,用在如图1所示的系统中的密钥还包括如下密钥。它们是主要在使用通行证的传送目的地上生成,以便每当在两个不同设备之间进行使用通行证传送时加密使用通行证的对称密钥K_sn(n≥0)和为了在两个设备之间的相互验证事务处理的最后阶段加密两个设备共享的K_s0生成的对称密钥K_ch。K_ch和K_s0是在设备之间的相互验证事务处理中共享的密钥,不用于在使用通行证传送的时候加密使用通行证。同时,K_sn(n≥0)总是从K_sn更新成K_sn+1,然后,每当进行使用通行证传送时使用。在下文中,将K_ch称为询问密钥(challenge key),将K_sn(n≥0)称为会话密钥。尤其,当n是0时,将会话密钥称为零阶会话密钥。
像在K_s[P]n中那样,将[P]、[I]或[S]、[D]的下标给予每个密钥。这指示所涉及的密钥数据在最初设备(primal device)上还是在开端设备(inceptivedevice)上生成(嵌入),或密钥数据在使用通行证的传送源(源)或传送目的地(目的地)上生成。这里,最初设备是在一个设备与另一个设备进行相互验证的情况下,在首次进程中核实从伙伴设备发送的设备类证书的设备。另一方面,开端设备是在类似情况下,在首次进程中将它自己的设备类证书发送到伙伴设备的设备。
将利用上述密钥进行的加密表达成E(X,Y)。这指示利用密钥数据X加密数据Y。类似地,将解密表达成D(X,Y)。这指示利用密钥数据X解密数据Y。H(X)代表数据X的散列值。X‖Y指示连接数据X和数据Y。
[通过公开密钥加密共享共享设备公开密钥的方法]
在说明相互验证和使用通行证的详细进程序列之前,先描述用在本例中的公开密钥加密。在本例中,将椭圆曲线密码体制用作公开密钥加密。但是,加密系统不局限于此。
椭圆曲线密码体制在加密中使用通过二维椭圆曲线方程表达的曲线上的固定点(将此点称为基点G=(Gx,Gy))的n倍的点,即,将G相加n次的计算。这里使用的相加不同于十进制中的普通相加方法。将G相加整数次的结果是椭圆曲线上不同于G的点。
在说明中,将考虑两个设备,即,设备1和设备2。假设要加密的消息M已经记录在设备1中,并且与公开密钥KPu一起构成一组的秘密密钥KPr已经记录在设备2中。这里,KPr是自然数,而KPu是椭圆曲线上的坐标点(KPux,KPuy)。这两个点和基点以KPu=KPr×G的关系联系。换句话说,KPu是将基点相加KPr次得到的点。
首先,描述设备1中的加密。
(E1)将KPu从设备2发送到设备1。
(E2)在设备1中生成随机数r。
(E3)计算r×G=R=(Rx,Ry)。
(E4)计算r×KPu=P=(Px,Py)。
(E5)利用Px和Py生成自然数*KPu:*KPu=f(Px,Py),其中,函数f可以是任意函数,只要事先确定就行。
(E6)利用作为对称密钥的*KPu对称地加密作为加密对象的消息M:E(*KPu,M)。
(E7)将在(E3)中获得的数据与在(E6)中数据连接,然后发送到设备2。发送的数据是Rx‖Ry‖E(*KPu,M)。这里,*KPu被称为共享设备公开密钥。
接着,描述设备2中的解密。
(D1)利用Rx、Ry和KPr计算P:KPr×R=KPr×r×G=r×(KPr×G)=r×KPu=P=(Px,Py)。
(D2)利用Px和Py计算*KPr。这里,*KPr和*KPu是完全相同的数字。前者指示利用KPr获取,并且表达成*KPr:*KPr=f(Px,Py)。
(D3)计算r×KPu=P=(Px,Py)。
(D4)利用作为对称密钥的*KPr对称地解密接收的数据:D(*KPr,E(*KPu,M))。在本发明中,将此描述成D(KPr,E(KPu,M))。这里,*KPr被称为共享设备秘密密钥。共享对称密钥*KPu和*KPr的上述算法统称为ECDH算法。
在本说明书中,将从进程E2到进程E7的加密描述成E(KPu,M)。在已经求出*KPu和只执行进程E6的情况下,将此描述为E(*KPu,M)。类似地,将执行进程D1到进程D4的所有进程的解密描述成D(KPr,E(KPu,M))。在已经求出*KPr和只执行进程D4的情况下,将此描述为D(*KPr,*E(KPu,M))。
[使用通行证的结构]
下面参照图4描述使用通行证的结构。使用通行证包括指示什么类型的模块可以输出的使用通行证格式(UPF)400、每一个唯一指定的使用通行证标识符(UPID)401、限制目标内容数据的使用的在存储模块中强制执行的使用规则(UR_s)402和在回放模块中强制执行的使用规则(UR_p)404、管理这个使用通行证中的加密和解密的内容的密码信息(CIC)403(包括加密和解密内容数据的内容密钥K_c)、指定相应内容数据的内容标识符(CID)405和内容的版权信息406。UR_s 402是在使用通行证的传送源上解释内容和控制它的输出的信息(使用通行证的传送源通常可以是记录模块或硬盘驱动器)。UR_p 404是在回放模块103接收到使用通行证和内容数据之后,在回放模块103上控制内容数据的解密的信息。UR_s 402包括指示可复制生成的信息的生成计数、指示可以从自身复制使用通行证的次数的拷贝计数、指示可以利用它的使用通行证解密内容数据的次数的播放计数等。可以采取指定所有这些值的形式。但是,在本例中,为了减轻解释和处理这些值的负担,可以只选择它们之一。同时,为每种服务规定UR_p,并且UR_p用于描述每种服务特有的控制信息。
关于记录在存储设备中的使用通行证,随着记录器/播放器发出引用使用通行证的命令,对除了CIC 403之外的所有信息作出响应。这种功能使记录器/播放器能够无需为传送加密/解密地掌握UPID、UR_s、UR_p等的信息。
在每个字段中,与数据主体一起描述指定每个字段的标记数据和数据主体的大小。举例来说,在图5中示出了UPID字段的结构。UPID字段由标记数据500、数据主体的大小501和数据主体502形成。每个字段的大小是可变的。但是,如果具有固定长度,则指定信息存储位置,并且具有可以在每个设备中减轻搜索目标字段时的处理负担的优点。
在UR_s 402、CIC 403和UR_p 404的后面都提供了保留区,以便未来无需扩充整个使用通行证的大小就能够加入控制信息。
在下文中,关于以BT模式实现使用通行证传送的手段,将参照图6到20描述传送模块的配置和过程。
[能够以BT模式进行使用通行证传送的使用通行证传送模块的配置]
参照图6,描述能够以BT模式进行使用通行证传送的使用通行证传送模块(图2中的221)的配置。在BT模式下,硬盘驱动器总是开端设备。因此,在使用通行证传送模块630中,提供了具有在与另一个设备进行相互验证的情况下,像开端设备那样执行必要进程的功能的模块602、具有像开端设备那样传送使用通行证的功能的模块603、不能进行用户想要的重写的静态存储区604、具有使用通行证恢复功能,以便当进行使用通行证传送时,在不能正常完成进程的情况下,避免目标使用通行证从传送源设备和传送目的地设备两者中丢失的模块605和在发送到限定存储控制器222之前临时存储使用通行证和临时存储从限定存储单元中读出的使用通行证的使用通行证缓冲器610。静态存储区604也称为保护信息存储器。必要时,验证模块602访问该存储区。
硬盘驱动器以外的外部单元与每个模块之间的数据通信通过存储接口单元620和总线640进行。PU 621与图2中的PU 235相同。
[能够以BT模式进行使用通行证发送的记录器/播放器中的记录模块的配置]
参照图7,描述能够以BT模式进行使用通行证发送的记录模块(图1中的102)的配置。在BT模式下,整个主保密管理器111总是起最初设备的作用,并且使用通行证相对于主保密管理器111双向流动。因此,具有记录模块725只包括输出使用通行证的必要功能,而保护信息发送模块104包括与开端设备进行相互验证等的功能的配置更合适。因此,在记录模块725中,提供了具有像最初设备那样发送使用通行证的功能的模块701、具有使用通行证恢复功能,以便当进行执行通行证发送进程时,在不能正常完成进程的情况下,避免目标使用通行证从传送源设备和传送目的地设备两者中丢失的模块705和具有从外界获取内容数据和使用信息、生成内容密钥、利用该密钥加密内容和生成包含该密钥的使用通行证的功能的模块706。将加密内容数据从模块706发送到数据总线740,并且通过主模块720记录到硬盘驱动器中。
在包括记录模块725的主保密管理器730中,提供了不能进行只基于用户意图重写的静态存储区(保护信息存储器)704。当接收到从主保密管理器730发送的使用通行证读取或写入请求时,验证模块(保护信息发送模块)700、使用通行证加密和发送模块701、使用通行证恢复模块705等在执行规定进程期间访问这个存储区。在下文中,将存储区704称为保护信息存储器。
记录在保护信息存储器704中的数据的类型等将在后面参照图10加以描述。
[能够以BT模式进行使用通行证接收的记录器/播放器中的回放模块的配置]
参照图8,描述能够以BT模式进行使用通行证接收的回放模块(图1中的103)的配置。在BT模式下,回放模块与记录模块类似,总是起最初设备的作用。正如在记录模块的说明中描述的那样,保护信息发送模块104负责作为最初设备的主保密管理器与开端设备进行相互验证的功能。因此,在回放模块825中,提供了具有像最初设备那样接收使用通行证的功能的模块803、具有使用通行证恢复功能,以便当进行使用通行证接收事务处理时,在不能正常完成事务处理的情况下,避免目标使用通行证从传送源设备和传送目的地设备两者中丢失的模块805和801和具有解释描述在包括在接收使用通行证中的UR_p中的内容和据此解密加密内容数据的功能的模块806。此时,通过主模块820和数据总线840将加密内容数据发送到模块806。解密内容数据通过保护数据通信路径等直接从模块806输出到回放模块的外界。
在包括回放模块825的主保密管理器830中,提供了具有与保护信息存储器704相似的特性的静态存储区(保护信息存储器)804。当接收到用户发出的使用通行证读取或写入请求时,用于验证的模块(保护信息发送模块)800、用于接收和解密使用通行证的模块803和用于恢复使用通行证的模块805和模块801在执行规定进程期间访问这个存储区。与保护信息存储器704一样,也将存储区804称为保护信息存储器。记录在保护信息存储器804中的数据的类型等将在后面参照图10加以描述。
[BT模式保护信息发送模块的配置]
参照图9,描述用于BT模式的保护信息发送模块910(相对应图7中的700和图8中的800)的配置。也正如在记录模块和回放模块的说明中描述的那样,在BT模式下,具有保护信息发送模块910与开端设备进行相互验证的配置更合适。因此,保护信息发送模块910包括像最初设备那样,与开端设备进行相互验证事务处理的模块900和临时保存回放模块916中的使用通行证接收模块903生成的最近会话密钥,并且在必要时,将它发送到使用通行证发送模块的模块905。
[记录器/播放器中的BT模式保护信息区的配置]
首先,参照图10描述记录器/播放器中用于BT模式的保护信息存储器的配置。BT模式是与传送使用通行证的方向无关,主保密管理器111总体上总是用作最初设备,而硬盘驱动器总是用作开端设备,以便可以沿着每个方向进行使用通行证传送的系统。因此,通常,如果以共享一个保护信息存储器的方式安装记录模块102和回放模块103,则可以缩小配备在记录器/播放器中的静态存储区的大小。
图10示出了在将保护信息存储器安装成具有这样特征的情况下的内部配置。也可以为记录模块102和回放模块103准备分立存储区,并且在每个存储区中存储设备类证书和相互验证所需的密钥。在这种情况下,记录模块和回放模块的每一个必须包括相互验证执行模块。在本例中未描述这样的情况。
1001代表设备类证书(DCC)。设备类证书1001包括设备类公开密钥KP_dc1000。设备类证书1001用于证明包括在其中的设备类公开密钥1000的有效性和包含数字签名。数字签名部分通过证书管理机构秘密密钥K_CA加密。1003代表证书管理机构公开密钥KP_CA。1004代表设备类秘密密钥K_dc。1005代表设备公开密钥KP_d。1006代表设备秘密密钥K_d。这些证书和密钥信息在初始安装时嵌入,并且,除非保密系统遭到破坏,以后通常不更新。
另一方面,记录在区域1002、1010和1011中的信息代表设备类证书作废列表(RDCL)、连接日志和事务处理日志。记录在这些区域中的信息是在必要时更新的信息。
RDCL是作废设备类的列表。当设备类公开密钥KP_dc的保密性已丧失时,将包含这个KP_dc的证书的唯一号码登记到这个列表中。在证实从另一个设备发送的设备类证书的时候,利用数字签名检验该证书是否被伪造,并且还检验该证书的唯一号码是否已登记到该列表中。作为唯一号码,可以使用指定给每个设备类证书的序号等。
连接日志1010是BT模式特有的日志信息。在作为初始相互验证事务处理的连接阶段完成时创建连接日志的一个条目,而在作为重新验证事务处理(简化相互验证事务处理)的重接阶段完成时更新它的一部分。连接阶段和重接阶段的事务处理的细节将在后面参照图17和图19加以描述。
图12示出了包括在连接日志的一个条目中的字段。也就是说,记录在主保密管理器和存储保密管理器两者中的是验证伙伴设备的设备公开密钥1200、伙伴设备和设备本身在验证事务处理期间生成的0阶会话密钥1201和1202、示出可以接收的使用通行证格式的类型的可接受使用通行证类型映像1203和记录指定相互生成的信息的伙伴设备生成数1204。
每当执行重接阶段时,就更新记录在0阶会话密钥字段中的数据。
在可接受使用通行证类型映像1203中,按原样记录着包含在设备类证书中的可接受使用通行证类型映像。可接受使用通行证类型映像1203示出了“可以接收的使用通行证格式的类型”。在使用通行证传送源的情况下,连接伙伴设备依照可接受使用通行证类型映像1203确定配对设备可以接收什么类型的使用通行证。例如,当使用通行证的使用通行证格式是“类型0”,并且从连接伙伴设备发送的设备类证书中的可接受使用通行证类型映像1203示出“类型0不可接收”时,使用通行证传送源设备不进行使用通行证的传送事务处理。
在伙伴设备生成数字段1204中,记录着在连接阶段在主保密管理器与存储保密管理器之间交换的指定相互生成的信息。例如,当具有如本例所述的功能的主保密管理器和存储保密管理器的生成值是1和不具有这些功能的上面两种管理器的生成值是0时,依照相连伙伴设备的生成将值0或1记录在伙伴设备生成数字段1204中。
上面第五项是作为连接日志记录在主保密管理器和存储保密管理器两者中的信息。除了这些之外,在存储保密管理器的连接日志中还提供了主保密管理器指定符字段1205。在这个字段1205中,记录着将主保密管理器指定成验证伙伴的信息。这个字段的适当例子是从这个管理器发送的设备类证书的序号。
从保密的观点来看,这个信息的记录不是必不可少的。另一方面,如果将这个信息记录成连接日志的一个字段,在主保密管理器与存储保密管理器之间执行重接阶段的情况下,则可以不试错地选择连接日志的必要条目,并且可以缩短事务处理的时间。
回到图10,接着说明事务处理日志1011。事务处理日志是在使用通行证传送事务处理中记录和更新的信息。但是,由于只有当在主保密管理器与存储保密管理器之间完成了验证事务处理(连接阶段或重接阶段)时才可以进行使用通行证传送,所以在主保密管理器中的保护信息存储器中,必须与指定已经进行了使用通行证传送事务处理的存储模块的连接日志相联系地记录事务处理日志。例如,将事务处理日志条目TL Entry #1.1 1023、TL Entry #1.21024等与连接日志条目CL Entry #1 1021相联系。类似地,将事务处理日志条目TL Entry #2.11033、TL Entry #2.21034等与连接日志条目CL Entry #21031相联系。由于事务处理日志如此与记录在保护信息存储器904中的连接日志的条目之一相联系,如果该条目作废,相关事务处理日志也同时作废。
下文将如图10所示,包括连接日志的一个条目和事务处理日志的多个相关条目的一组称为一群。在图10中,假设CL Entry #1 1021、TL Entry #1.11023、TL Entry #1.2 1024等的组为Group 1 1020,并且假设CL Entry #2 1031、TL Entry #2.1 1033、TL Entry #2.2 1034等的组为Group 2 1030。
图13示出了包括在事务处理日志的一个条目中的字段。记录成事务处理日志的东西包括传送目标使用通行证的UPID(使用通行证标识符)1300、传送类型(设备本身是使用通行证传送源还是传送目的地)1301、进行传送之前的UR_s(在存储模块中强制执行的原始使用规则)(但只在最初设备是使用通行证传送目的地的情况下)1302、进行传送之前的使用通行证(原始使用通行证)(但只在最初设备是使用通行证传送源的情况下)1303和记录使用通行证的地址(使用通行证位置)(但只在最初设备是传送源的情况下)或记录目的地的地址(但只在最初设备是使用通行证传送目的地的情况下)1304。这些是在进行使用通行证传送时记录的。由于在进行使用通行证传送时记录这些数据,即使使用通行证因难以预料事故等而从传送源和传送目的地两者中丢失了,也可以恢复使用通行证。
[存储设备中的BT模式保护信息区的配置]
参照图11,描述硬盘驱动器中用于BT格式的保护信息存储器的配置。BT模式是与传送使用通行证的方向无关,主保密管理器111总体上总是用作最初设备,而存储设备总是用作开端设备,以便可以沿着每个方向进行使用通行证传送的系统。如图11所示,记录在配备在使用通行证传送模块中的保护信息存储器中的数据包括包括设备类公开密钥KP_dc 1100的设备类证书(DCC)1101、证书管理机构公开密钥KP_CA 1103、设备类秘密密钥K_dc1104、设备公开密钥KP_d1 105、设备秘密密钥K_d 1106、允许恢复最初设备指示符1120和连接日志1110。连接日志1110可以包括多个条目1111、1112、1113和1115。当执行与不同主保密管理器的连接阶段或重接阶段时,生成或更新每个条目。
这里,将描述允许恢复最初设备指示符1120的作用。当进行与主保密管理器的使用通行证传送事务处理时,将指示在使用通行证传送事务处理之前在与相同主保密管理器执行的连接(或重接)阶段中生成或更新的连接日志1110的一个条目的信息记录成这个指示符。指定给这个条目的条目号是它的典型例子。在使用条目号的情况下,随着利用连接日志的条目CL Entry #31113执行与主保密管理器的重接阶段,然后进行与这个主保密管理器的使用通行证传送,将3记录成允许恢复最初设备指示符1120。换句话说,在完成连接阶段或重接阶段的时候,不更新该指示符。只有当进行使用通行证传送事务处理时才更新该指示符。在进行与相同主保密管理器的第二和随后使用通行证传送事务处理的情况下,可以更新也可以不更新该指示符。如果更新,简单地用相同值盖写该指示符。在这个图形中,与连接日志的每个条目分开地安排允许恢复最初设备指示符。但是,不一定需要应用这种形式。例如,一个例子是连接日志的每个条目都配有类似命名的字段,并且,在主保密管理器与存储保密管理器之间进行使用通行证传送事务处理的情况下,在与进行最近传送事务处理的主设备有关的条目字段中设置成1,而在其它字段中设置成0。即使以这种方式配备允许恢复最初设备指示符,除了上述之外的其它特征也与有关本例的其它部分和段落的描述相同。例如,当随着与设备以前从未连接过的主保密管理器执行连接阶段,用新信息盖写允许恢复最初设备指示符设置在1上的连接日志的一个条目时,如果未与这个主保密管理器进行使用通行证传送事务处理,将这个条目中的允许恢复最初设备指示符设置在0上。此时,不存在其它允许恢复最初设备指示符设置在1上的条目。
此外,如图所示,在限定存储器223中的保护信息存储器中未提供事务处理日志的记录区。这意味着,在进行使用通行证传送的时候,存储设备不记录事务处理日志。优点是,由于不进行日志记录事务处理,所以可以将以BT模式进行使用通行证传送时存储设备的负担减轻到相应低水平。这个保护信息存储器与主保密管理器中的保护信息存储器101的相同之处在于,在初始安装时嵌入和以后不再更新上述的证书和密钥信息,并且在打算传送使用通行证的设备之间进行的相互验证事务处理中更新连接日志。
如图所示,在将连接日志记录到限定存储器223中的保护信息存储器中的情况下,可以记录多个条目。记录在各自条目中的信息如参照图12所述。由于这个信息记录在存储保密管理器中,所以也记录主保密管理器指定符1205。
[限定存储器223的配置]
参照图14,描述限定存储器223的配置。限定存储器223是处在硬盘驱动器中的部分,记录和保存从记录模块或另一个硬盘驱动器发送的使用通行证。使用通行证的记录由限定存储控制器222控制。限定存储器223包括记录使用通行证主体的区域1400、1410、1420等和记录指示使用通行证的有效性的标志的区域1401、1411、1421等。在下文中,将标志称为有效性指示标志。写入1401中的有效性指示标志示出写入区域1400中的使用通行证的有效性。写入1411中的有效性指示标志示出写入区域1410中的使用通行证的有效性。写入1421中的有效性指示标志示出写入区域1420中的使用通行证的有效性。记录使用通行证和有效性指示标志的区域像上述那样形成对。如上所述,在限定存储器223中大量地提供这些区域。当将有效使用通行证写入与标志配对的区域中时,通过限定存储控制器222将指示“有效”的值记录在每个有效性指示标志区域中。同时,在一次性写入的使用通行证输出到回放模块,或另一个硬盘驱动器之后,将指示“作废”的值写入区域中。在完全初始状态下,记录指示“未记录”的值。记录在限定存储器中的使用通行证的读取通过限定存储控制器222进行。
[使用通行证传送事务处理:初始处理]
在下文中,将参照图15描述在按照本例的使用通行证传送中记录器/播放器和存储设备执行的事务处理。
在进行记录器/播放器与存储设备之间的使用通行证传送时,首先,记录器/播放器需要掌握安装在存储设备中的功能。首先,随着记录器/播放器将查询请求发送到存储设备(15000),存储设备将安装在存储设备本身中的功能通知记录器/播放器(15001)。要通知的信息包括指定给存储设备的存储设备标识符信息、安装在存储设备中的使用通行证传送模式、可以记录的连接日志的条目数量、指示与哪个记录器/播放器生成记录连接日志的信息等。第一个信息可以是设备类证书的序号,但更简单地,可以是指定给每个存储设备的制造序号等。至于第三个信息,可以使用记录在连接日志的每个条目中的主保密管理器指定符。当接收到这个信息时,主保密管理器事先决定记录在存储设备中的哪个连接日志条目应该用于执行重接阶段。此外,主保密管理器选择应该以哪种模式进行使用通行证传送,并且将所选模式通知存储设备中用于使用通行证发送或接收的模块(15010)。
[使用通行证传送事务处理:BT模式连接阶段]
BT模式的特征在于,传送使用通行证的方向不是固定的,并且可以从最初设备和开端设备两者发送使用通行证。如前所述,在BT模式下,记录器/播放器中控制和进行相互验证事务处理和使用通行证发送和接收的模块(主保密管理器111)是最初设备,并且存储设备中进行相互验证事务处理和使用通行证传送事务处理的模块(存储保密管理器225)是开端设备。因此,在下文中,将嵌入最初设备中的设备类证书称为最初设备类证书,并且将设备类公开密钥称为最初设备类公开密钥。这可以类似地应用于开端设备。此外,在下文中,不是将作为进行验证事务处理和使用通行证传送事务处理的更具体功能单元的主保密管理器和存储保密管理器用于说明,而是将作为包括这些保密管理器的更高级设备的最初设备和开端设备用于说明。当然,这里应该补充说一下,具体地说,两个管理器管理和进行验证事务处理和使用通行证传送事务处理。
在下文中,将参照图16和图17描述BT模式下的连接阶段。连接阶段指的是最初设备和开端设备进行相互验证、更新RDCL和共享预定秘密密钥的事务处理。
在初始化进程(16000)中,在最初设备和开端设备中设置BT模式(15010)。主模块将在15001中获取的存储设备标识符发送到最初设备,以便最初设备确定相连开端设备过去是否从未连接过(16001)。
开端设备中的连接模块602将嵌在开端设备本身中的设备类证书DCC_[I]发送到最初设备(16010)。
最初设备证实接收的设备类证书DCC_[I]的有效性。当作为证实的结果确认接收的证书有效时,最初设备生成最初询问密钥K_ch[P](PD.C.Key),它是用于临时对称密钥加密的密钥。然后,最初设备利用接收的设备类公开密钥KP-dc[I]加密最初询问密钥K_ch[P],将包括最初设备类公开密钥KP_dc[P]的最初设备类证书DCC_[P]与生成的加密数据连接,并且将这些数据发送到开端设备(16020)。上面的事务处理就是16011。
开端设备利用它自己的设备类秘密密钥K_dc[I]解密接收的数据16020,因此获得最初询问密钥K_ch[P]。然后,开端设备生成0阶开端询问密钥K_ch[I](ID.C.Key),它是用于临时对称密钥加密的密钥。在完成这个密钥的生成之后,开端设备连接嵌在开端设备本身中的开端设备公开密钥和它自己的生成信息GN_[I],并且通过接收的最初设备类密钥KP_dc[P]加密它们。此外,开端设备将记录在开端设备本身中的作废设备类列表RDCL_[I](开端RDCL)和检验和与获取的数据(也就是说,通过最初设备类密钥加密的数据)连接,并且通过接收的最初询问密钥K_ch[P]加密它们。随着这个加密结束,将获得的数据发送到最初设备(16030)。上面的事务处理就是16021。
最初设备通过最初询问密钥解密接收的数据16030,通过检验和证实数据的完整性,然后从结果中取出开端RDCL RDCL_[I]。由于RDCL包含数据的发出日期信息,最初设备将开端RDCL RDCL_[I]的发出日期信息与记录在最初设备本身中的RDCLRDCL_[P](最初RDCL)的发出日期信息相比较。如果作为比较结果,RDCL_[I]的发出日期较新,最初设备用RDCL_[I]盖写RDCL_[P]。如果RDCL被更新,最初设备删除记录在最初设备本身中的连接日志的所有条目或使它们作废。随着这个步骤完成,当存储保密管理器以后与这个主保密管理器连接时,有必要执行连接阶段。重接阶段将在后面参照图19作详细描述。因此,在将含有新RDCL的设备加入封闭设备群中的情况下,可以逐渐传播最近RDCL。当RDCL发出日期的比较结束时,最初设备通过最初设备秘密密钥K_d[P]解密其余数据。然后,最初设备生成0阶最初会话密钥K_s[P]0(PD.S.Key),它是用于临时对称密钥加密的密钥。当这个密钥的生成结束时,最初设备连接嵌在最初设备本身中的最初设备公开密钥和它自己的生成信息GN_[P],并且通过经数据16020接收的开端设备公开密钥KP_d[I]加密它们。这里,如果作为以前进行的RDCL发出日期信息的比较的结果发现RDCL_[P]的发出日期较新,将RDCL_[P]与以前加密的数据连接。获得的数据通过包含在数据16020中的开端询问密钥K_ch[I]加密。随着加密结束,将数据发送到开端设备(16040)。上面的事务处理就是16031。
如下的事务处理将参照图17加以描述。开端设备通过开端询问密钥K_ch[I]解密接收的数据16040,并且证实数据的完整性。在RDCL_[P]包含在解密结果中的情况下,开端设备用这个RDCL_[P]盖写RDCL_[I]。在进行RDCL更新事务处理的情况下,与在主保密管理器中一样,开端设备删除记录在存储保密管理器中的连接日志的所有条目或使它们作废。然后,开端设备通过开端设备秘密密钥K_d[I]解密其余数据,因此获得0阶最初会话密钥。然后,开端设备生成0阶开端会话密钥K_s[I]0(ID.S.Key),它是用于临时对称密钥加密的密钥。随着这个密钥的生成结束,将最初设备公开密钥、0阶最初会话密钥、0阶开端会话密钥、包含在最初设备类证书DCC_[P]中的可接受使用通行证类型映像、包含在数据16030中的最初设备的生成信息和最初设备类证书DCC_[P]的序号记录到开端连接日志(CL)的它们各自字段KP_d[P]、K_s[P]0、K_s[I]0、TM_[P]、GN_[P]和HS_[P]中。此时,如果存在与这个HS_[P]相同的值已经被记录成HS_[P]的条目,有必要一次性地使这个条目作废和生成新条目,或盖写这个条目的每个字段。这样,可以防止在开端设备中存在多个对应于一个最初设备的连接日志条目。此外,如果使用开端设备中的所有连接日志记录条目1111到1115,并且有关对应于开端设备在这里即将与之连接的最初设备的连接阶段(重接阶段)的信息未记录在这些条目的任何一个中,有必要通过盖写这些条目之一记录日志信息。在这样的情况下,通常,应该盖写不是允许恢复最初设备指示符所指的条目的条目。但是,如果存在这个指示符所指的条目得到盖写的状况,将删除记录在允许恢复最初设备指示符中的指定连接日志的条目的信息或使它作废。记录允许恢复最初设备指示符的定时将在有关PI传送阶段和IP传送阶段的描述中作详细描述。然后,通过包含在数据16030中的0阶最初会话密钥K_s[P]0和最初设备公开密钥KP_d[P]加密生成的0阶开端会话密钥K_s[I]0,并且将它发送到最初设备(16050)。上面的事务处理就是16041。
最初设备通过最初设备秘密密钥K_d[P]和0阶最初会话密钥K_s[P]0解密接收的数据16050,因此获得0阶开端会话密钥K_s[I]0。然后,最初设备将开端设备公开密钥KP_d[I]、0阶开端会话密钥K_s[I]0、0阶最初会话密钥K_s[P]0、包含在开端设备类证书DCC_[I]中的可接受使用通行证类型映像和开端设备的生成信息记录到最初连接日志(CL)的它们各自字段KP_d[I]、K_s[I]0、K_s[P]0、TM_[I]和GN_[I]中。以与开端设备中选择条目的情况相似的方式选择要记录的条目。也就是说,在存在与相连开端设备有关的条目的情况下,一次性地使这个条目作废,并且生成新条目,或盖写这个条目的每个字段。为了能够进行这样的选择,在生成连接日志条目的情况下,可以与这个条目相联系地在某处记录在15001中获得的存储设备标识符。但是,这种事务处理不是必不可少的。此外,如果使用连接日志的所有条目1021、1031等,并且有关对应于最初设备即将与之连接的开端设备的连接阶段(重接阶段)的信息未记录在这些条目的任何一个中,通过盖写这些条目之一记录日志信息。上面的事务处理就是16051。
将上面的事务处理称为BT连接阶段。当BT连接阶段完成时,共享0阶最初会话密钥、0阶开端会话密钥、在通过最初设备公开密钥加密和通过最初设备秘密密钥解密的进程中获得的共享最初设备密钥和在通过开端设备公开密钥加密和通过开端设备秘密密钥解密的进程中获得的共享开端设备密钥。
[使用通行证传送事务处理:BT模式PI传送阶段]
当验证事务处理结束时,可以进行使用通行证传送。首先,参照图18描述BT PI传送阶段。BT PI传送阶段是以BT模式将使用通行证从最初设备传送到开端设备的事务处理。在下一个段落中,将参照图18详细描述BT IP传送阶段。BT IP传送阶段是将使用通行证从开端设备传送到最初设备的事务处理。
首先,响应来自主模块的请求18000,最初设备在使用通行证传送模块701中准备目标使用通行证(18001)。然后,依照来自主模块的请求,开端设备生成加密使用通行证的n阶开端会话密钥K_s[I]n(ID.S.Key)。这里,n是在完成了连接阶段或重接阶段之后执行BT PI传送阶段的次数(也就是说,n≥1)。当完成这个密钥的生成时,通过在刚才进行的从最初设备到开端设备的使用通行证传送的时候生成的开端会话密钥K_s[I]n-1((n-1)阶开端会话密钥)和当时的最近最初会话密钥K_s[P]m加密数据,并且将它发送到最初设备(18020)。这里,与n一样,m是在完成了连接阶段或重接阶段之后执行BT IP传送阶段的次数(也就是说,m≥1)。上面的事务处理就是18011。
最初设备通过最初会话密钥K_s[P]m和(n-1)阶开端会话密钥K_s[I]n-1解密接收的数据18020。然后,最初设备将传送目标使用通行证的UPID、最初设备在传送中的角色(传送源S=Source)和要发送的使用通行证记录到事务处理日志的一个条目中。在BT模式下,只有最初设备进行事务处理日志的记录。接着,从在使用通行证传送模块中准备的使用通行证中生成实际要发送的使用通行证。然后,在将开端设备中使用通行证的记录目的地地址UPL_[D](传送目的地D=Destination)记录到事务处理日志的这个条目中之后,最初设备将指示应用的参数AI(复制、移动、或回放)、检验和和UPL_[D]与使用通行证连接,并且通过n阶开端会话密钥K_s[I]n和共享开端设备密钥*KP_d[I]加密使用通行证。在完成加密之后,仍然以明文的形式将记录目的地地址UPL_[D]发送到开端设备,作为附在将目标数据发送到开端设备的命令上的参数,然后,将包含加密使用通行证的数据发送到开端设备(18030)。UPL_[D]不一定需要像上述那样作为参数来发送。但是,在作为硬盘驱动器中的典型接口结构的ATA中,在将目标数据写入存储设备中的情况下,将写入目的地地址指定成参数。因此,当做到上面这一点时,在将本例所述的技术安装到硬盘驱动器中的情况下,具有达到高度亲近(high affinity)的优点。上面的事务处理就是18021。
开端设备通过共享开端设备密钥*K_d[I]和n阶开端会话密钥K_s[I]n解密接收的数据18030。解密成明文的数据让它的数据结构得到确认。结构的确认依照如图5所示,指定给每个字段的标记值和大小信息进行。当确认数据结构没有问题时,确认作为参数接收的UPL_[D]是否与包含在加密数据18030中的UPL_[D]一致。如果它们不一致,则意味着作为参数接收的UPL_[D]被伪造,因此停止这种事务处理。如果它们一致,则确定已正常接收到目标使用通行证,并且设置允许恢复最初设备指示符,以便指示在作为这个PI传送阶段的预备阶段执行的连接(或重接)阶段中生成(或更新)的连接日志的条目。每当执行PI传送阶段或IP传送阶段时,就可以进行允许恢复最初设备指示符的设置。但是,在完成了连接阶段或重接阶段之后第一次执行PI传送阶段或IP传送阶段的情况下,可以简单地执行。这样,可以减轻执行PI传送阶段或IP传送阶段时开端设备的处理负担。当完成上面的事务处理时,通过规定的方法适当地更新明文使用通行证的UR_s,此后,将使用通行证记录到开端设备中的使用通行证存储区中。上面的事务处理就是18031。上文就是BTPI传送阶段。
[使用通行证传送事务处理:BT模式IP传送阶段]
接着,参照图19描述作为从开端设备到最初设备的使用通行证传送事务处理的BT IP传送阶段。
首先,主模块将记录目标使用通行证的地址UPL_[S](传送源S=Acceptable)和目标使用通行证的UPID通知开端设备(19000)。
对此作出响应,开端设备在使用通行证传送模块603中准备目标使用通行证。接着,开端设备用0取代使用通行证的CIC字段403,并且将使用通行证的状态信息(使用通行证状态(UPS))与之连接。此后,开端设备将最近最初会话密钥和开端会话密钥与那个数据连接,并且计算散列值。作为使用通行证状态,设置如下三种状态之一:(1)目标使用通行证不存在(记录含有不同UPID的使用通行证,或什么也不记录);(2)将目标使用通行证记录在有效状态下;和(3)将目标使用通行证记录在作废状态下。然后,将获得的散列值与屏蔽使用通行证连接,并且发送到最初设备。下文将用0取代CIC字段403的使用通行证称为屏蔽使用通行证。上面的事务处理就是19001。
最初设备证实数据19010中的散列值,并且证实这个数据是否未遭到伪造。
在确认未遭到伪造的情况下,主模块110将传送目标使用通行证的UPID发送到最初设备(19020)。
最初设备将从主模块110接收的UPID19020与作为屏蔽使用通行证19010接收的使用通行证的UPID相比较。当这些值一致时,最初设备将UPID、最初设备本身在传送中的角色(传送目的地D=Destination)、描述传送目标使用通行证的UR_s和开端设备中记录要发送的使用通行证的地址UPL_[S]记录到事务处理日志中。接着,最初设备生成m阶最初会话密钥K_s[P]m(PD.S.Key),通过在刚才进行的从开端设备到最初设备的使用通行证传送中生成的最初会话密钥K_s[P]m-1((m-1)阶最初会话密钥)和当时的最近开端会话密钥K_s[I]n加密数据,并且将数据发送到开端设备(19030)。这里,m和n的含义与在BT PI传送阶段的描述中说明的含义完全相同。上面的事务处理就是19021。
开端设备通过当时的最近开端会话密钥K_s[I]n和(m-1)阶最初会话密钥K_s[P]m-1解密数据19030(19031)。接着,主模块110通知开端设备采取什么类型的使用通行证传送事务处理(复制、移动、回放等)(19040)。对此作出响应,开端设备从在使用通行证传送模块中准备的使用通行证中生成实际要发送的使用通行证。然后,将指示应用的参数AI(复制、移动、或回放)和检验和与使用通行证连接,并且通过m阶最初会话密钥*KP_s[P]m和共享最初设备密钥*KP_d[P]加密该数据。接着,在与BT PI传送阶段的情况完全相同的过程中,设置允许恢复最初设备指示符。当完成了上面的事务处理时,将加密数据发送到最初设备(19050)。在发送了数据19050之后,开端设备适当地改变传送的使用通行证的UR_s和标志(1401、1411、1421等),并且重新记录它们(19051)。
最初设备通过共享最初设备密钥*K_d[P]和m阶最初会话密钥K_s[P]m解密接收的数据,并且确认明文数据的结构。因此,完成目标使用通行证的传送(19052)。上文就是BT IP传送阶段。
[使用通行证传送事务处理:BT模式重接阶段]
在记录器/播放器中发生异常和断开(20001)的情况下,通过比连接阶段更简单的事务处理再次建立连接的进程就是BT重接阶段。下面参照图20描述BT重接阶段。
在如图15所示的初始化进程20002之后,主模块进行存储设备标识符的通知和向最初设备请求生成新的0阶最初会话密钥K_s[P]0.RCN(PD.S.Key)(20010)。
最初设备依照连接日志的伙伴设备生成数掌握相连开端设备是否是具有进行在本例中所述的事务处理的功能的一代。如果确定这个开端设备能够执行该进程,最初设备根据接收的数据20010选择执行这个BT重接阶段的连接日志的一个条目。然后,最初设备生成新0阶最初会话密钥K_s[P]0.RCN。接着,根据在初始化进程20002中从开端设备接收的信息15002,最初设备判定应该使用哪个连接日志条目使开端设备执行这个重接阶段。将判定值设置成CLEN。在与生成的密钥K_s[P]0.RCN连接之后,通过记录在所选连接日志条目中的开端会话密钥K_s[I]0.CL和开端设备公开密钥K_s[P].CL加密CLEN,然后将它发送到开端设备(20020)。在这个发送之前,还在明文状态下将CLEN发送到开端设备,作为附在进行事务处理的命令上的参数20021。这是因为,如果不是在明文状态下接收CLEN,开端设备不能确定应该使用哪个连接日志条目的记录密钥数据进行接收数据的解密。上面的事务处理就是20011。
开端设备依照描述在作为参数的CLEN中的信息,选择连接日志的一个条目,并且利用记录在这个条目中的它自己的开端设备秘密密钥K_d[I]和开端会话密钥K_s[I]0.CL解密接收的数据20020。在根据标记等确认了解密结果的结构之后,检验作为参数接收的CLEN和包括在解密结果中的CLEN是否相互一致。当两者不一致时,即使解密结果的结构没有问题,也存在作为参数的CLEN在传送事务处理20020中被伪造的可能性。因此,停止这种事务处理。当两者一致时,依照记录在连接日志的伙伴设备生成数GN_[P]中的值,掌握相连最初设备是否是具有执行在本例中所述的进程的功能的一代。接着,确认允许恢复最初设备指示符是否指示由CLEN指定的连接日志的条目。然后,依照GN_[P]、CLEN和RAPDI的值适当地设置和处理恢复容许指示符(RPI)的值。为了简化描述,GN_[P]和RPI的值和它们的含义假设如下。当然,它们的值不局限于这些。
伙伴设备生成数(GN_[P])
1:相连最初设备是具有执行在本例中所述的事务处理的功能的一代。
0:相连最初设备是具有执行在本例中所述的事务处理的功能的一代之前的一代。
恢复容许指示符(RPI)
1:容许保存与记录在最初设备中的连接日志的这个条目相联系的事务处理日志。
0:必须使与记录在最初设备中的连接日志的这个条目相联系的事务处理日志作废或删除它。
依照接收数据20020的解密、两个确认进程的结果和伙伴设备生成数(GN_[P])和允许恢复最初设备指示符(RAPDI)的值,进行如下事务处理。
(1)在GN_[P]=0和利用记录在RAPDI所指的连接日志的条目中的密钥数据正常完成了数据20020的解密和两个确认进程的情况下,将恢复容许指示符设置在1上。
(2)在GN_[P]=0和未利用记录在RAPDI所指的连接日志的条目中的密钥数据正常完成数据20020的解密和两个确认进程的情况下,停止这个重接阶段。
(3)在GN_[P]=1和利用记录在RAPDI所指的连接日志的条目中的密钥数据正常完成了数据20020的解密和两个确认进程的情况下,将恢复容许指示符设置在1上。
(4)在GN_[P]=1和未利用记录在RAPDI所指的连接日志的条目中的密钥数据正常完成数据20020的解密和两个确认进程的情况下,将恢复容许指示符设置在0上。
在进行了上面四种类型事务处理之一之后,除了停止事务处理的情况之外,开端设备生成新0阶开端会话密钥K_s[I]0.RCN(ID.S.Key)。然后,将RPI与生成的K_s[I]0.RCN连接,并且利用记录在连接日志的相应条目中的最初会话密钥K_s[P]0.CL和最初设备公开密钥KP_d[P]0.CL加密。接着,用接收的0阶最初会话密钥K_s[P]0.RCN和生成的0阶开端会话密钥K_s[I]0.RCN盖写连接日志的这个条目,并且将以前加密的数据发送到最初设备(20030)。上面的事务处理就是20021。与连接阶段的情况一样,可以生成和在那里记录新连接日志条目。但是,在这样的情况下,必须使旧条目作废或删除它。
最初设备利用记录在20011中选择的连接日志的条目中的最初设备秘密密钥K_d[P]和0阶最初会话密钥K_s[P]0.CL解密接收的数据20030。然后,通过盖写将获得的新0阶开端会话密钥K_s[I]0.RCN和以前生成的0阶最初会话密钥K_s[P]0.RCN记录到连接日志的这个条目中。上面的事务处理就是20031。最后,评估恢复容许指示符的值。如果这个指示符是0,则使与连接日志的这个条目相联系的事务处理日志的所有条目作废或删除它们。如果这个指示符是1,则按原样保存事务处理日志的相应条目。上面的事务处理就是20031。上文的事务处理被称为BT重接阶段。
[使用通行证传送事务处理:BT模式PI恢复阶段]
在记录器/播放器中发生异常和使用通行证从使用通行证传送源和使用通行证传送目的地两者中丢失的情况下,可以通过进行如下事务处理恢复使用通行证。
当完成BT连接阶段或BT重接阶段时,如上所述,共享新0阶最初会话密钥和0阶开端会话密钥、在通过最初设备公开密钥加密和通过最初设备秘密密钥解密的进程中获得的新共享最初设备密钥和在通过最初设备公开密钥加密和通过开端设备秘密密钥解密的进程中获得的新共享开端设备密钥。
首先,参照图21描述与BT PI传送阶段有关的恢复事务处理。在进行将在BT PI传送阶段中传送的使用通行证恢复到进行传送事务处理之前的状态的事务处理中,主模块110首先将恢复目标使用通行证的UPID发送到最初设备(21010)。
最初设备利用这个UPID搜索与在这个连接阶段或重接阶段21001中生成或更新的连接日志条目相联系的事务处理日志的所有条目(21011)。当作为结果,找到包括这个UPID的事务处理日志的条目时,将记录在这个条目中、开端设备中使用通行证的记录目的地地址UPL_[D](预定记录接收使用通行证的地址)发送到主模块(21012)。当主模块接收到这个地址UPL_[D]时,主模块将这个UPL_[D]与UPID一起发送到开端设备(21020)。
开端设备访问接收地址所指的使用通行证存储区和检验使用通行证的记录状态。然后,将结果设置成使用通行证状态。接着,连接m阶最初会话密钥K_s[P]m、n阶开端会话密钥K_s[I]n(这两个会话密钥是此刻共享的最近会话密钥)、UPID、搜索的使用通行证UR_s、生成的使用通行证状态和UPL_[D],并且计算散列值。然后,连接这个UPID、这个UR_s、这个使用通行证状态、这个UPL_[D]和散列值,并且发送到最初设备(21030)。上面的事务处理就是21021。
最初设备证实包含在接收数据21030中的散列值,并且确认数据21030未被伪造和在开端设备中不存在以前传送的使用通行证。在完成证实之后,再次搜索包括接收UPID的事务处理日志。当找到事务处理日志的目标条目时,用记录在这个条目中的传送之前的使用通行证盖写当前在使用通行证传送模块701中准备的使用通行证。
上面就是BT PI恢复阶段。随着这个阶段完成,在最初设备中存在进行发送之前的使用通行证。
[使用通行证传送事务处理:BT模式IP恢复阶段]
接着,参照图22描述与BT IP传送阶段有关的使用通行证的恢复事务处理。在进行将在BT IP传送阶段中传送的使用通行证恢复到进行传送事务处理之前的状态的事务处理中,主模块110首先将恢复目标使用通行证的UPID发送到最初设备(22010)。
最初设备利用这个UPID搜索与在这个连接阶段或重接阶段22001中生成或更新的连接日志条目相联系的事务处理日志的所有条目(22011)。当作为结果,找到包括这个UPID的事务处理日志的条目时,将记录在这个条目中、开端设备中使用通行证的记录目的地地址UPL_[S](指示原始记录传送目标使用通行证的区域的地址)发送到主模块(22012)。随着主模块接收到这个地址UPL_[S],主模块将这个UPL_[D]与UPID一起发送到开端设备(22020)。
开端设备访问接收地址所指的使用通行证存储区和检验使用通行证的记录状态,并且将结果设置成使用通行证状态。然后,连接m阶最初会话密钥K_s[P]m、(n-1)阶开端会话密钥K_s[I]n-1、UPID、搜索的使用通行证UR_s、生成的使用通行证状态和UPL_[S],并且计算散列值。然后,连接这个UPID、这个UR_s、这个使用通行证状态、这个UPL_[S]和散列值,并且发送到最初设备(22030)。上面的事务处理就是22021。
最初设备证实包含在接收数据22030中的散列值,并且确认数据22030未被伪造和过去的传送(发送)事务处理是否已改变了以前传送到开端设备的使用通行证(22031)。
与上面的证实平行,主模块向开端设备请求生成会话密钥(ID.S.Key)(22040)。当接收到这个请求时,开端设备生成n阶开端会话密钥K_s[I]n。随着这个密钥的生成完成,通过(n-1)阶开端会话密钥K_s[I]n-1和m阶最初会话密钥K_s[P]m加密生成的n阶开端会话密钥K_s[I]n,并且发送到最初设备(22050)。上面的事务处理就是22041。
在接收到数据22050之后,如果通过上述的证实进程确认通过进行发送事务处理已经改变了使用通行证,最初设备进行如下所述的使用通行证的恢复事务处理。首先,通过m阶最初会话密钥K_s[P]m和(n-1)阶开端会话密钥K_s[I]n-1解密接收的数据。然后,将记录在作为以前搜索的结果找到的事务处理日志的相应条目中的UPID、UR_s和UPL_[S]与之连接,并且通过n阶开端会话密钥K_s[I]n和共享开端设备密钥*KP_d[I]加密该数据。当完成加密时,以明文的形式将UPL_[S]发送到开端设备,作为附在将目标数据发送到开端设备的命令上的参数,然后,将这个加密数据发送到开端设备(22060)。如参照数据18030所述,UPL_[S]不一定需要作为参数发送。但是,在作为硬盘驱动器中的典型接口结构的ATA中,在将目标数据写入存储设备中的情况下,将写入目的地地址指定成参数。因此,由于做到这一点,当将本例所述的技术安装在硬盘驱动器中时,具有达到高度亲近的优点。上面的事务处理就是22051。
开端设备通过共享开端设备密钥*K_d[I]和n阶开端会话密钥K_s[I]n解密接收的数据22060。解密成明文的数据让它的数据结构得到确认。结构的确认依照如图5所示,指定给每个字段的标记值和大小信息进行。当确认数据结构没有问题时,接着检验作为参数接收的UPL_[S]和包含在加密数据22060中的UPL_[S]是否相互一致。如果这些不一致,则意味着作为参数接收的UPL_[S]被伪造,因此停止这种事务处理。如果它们一致,则确认包括在解密结果中的UPID与记录在UPL_[S]所指的区域中的使用通行证的UPID是否一致。随着UPID的一致性得到确认,使记录在UPL_[S]所指的区域中的使用通行证得到证实,并且用包含在解密结果中的UR_s盖写这个使用通行证的UR_s。上面的事务处理就是22061。
上文就是BT IP恢复阶段。当完成这个阶段时,在开端设备中存在发送之前的使用通行证。
[按照RPI值使事务处理日志的相应条目作废的定时]
在如上所述的重接阶段中,最初设备中RPI的确认和作为它的结果,事务处理日志的目标条目的删除或作废可以不同时进行。在这样的情况下,在恢复阶段中进行从事务处理日志的目标条目中取出原始使用通行证或原始使用规则的事务处理(图21中21031的进程2和图22中22051的进程3)之前的某个时间完成删除或作废。
[主模块对记录在存储设备中的使用通行证的参考事务处理:UP查询阶段]
下面参照图23描述主模块掌握记录在存储设备中的使用通行证除了CIC之外的其它信息的事务处理。将此称为UP查询阶段。
首先,主模块将屏蔽使用通行证请求发送到记录使用通行证的存储设备(23000)。随着这个请求被接收到,存储设备将屏蔽使用通行证发送回到主模块110(23001)。
上面已经描述了一个例子,但本发明不局限于上面的例子。此外,本发明可以以各种各样的变体执行,也可以应用于其它设备和系统。尤其,设备之间的验证方法和在设备之间传送时内容密钥和使用规则的加密方法不局限于BT模式,可以是更一般的方法。在本例中,在传送时双重加密内容密钥和使用规则。但是,也可以是单重,三重或更多重。
此外,描述在上例中的命令、模块等的名称只是示范性的,不应该局限于那些例子。例如,上例中的使用通行证在一些情况下可以称为许可信息或机密信息。
此外,虽然在上例中描述了包括记录器/播放器和硬盘驱动器的系统中内容数据的保密管理,但本发明也可以应用于其它系统和它们的组成设备。也就是说,这些设备不局限于记录器/播放器和硬盘驱动器,只要提供按照本发明掌控解密和管理内容数据的控制信息的特征功能就行。例如,硬盘驱动器可以是包括半导体存储器的存储设备,并且记录器/播放器可以是存储设备与之连接的主计算机,只要这些设备具有这种特征功能就行。
此外,在另一种变体中,在上例中存储密钥数据等的保护存储区不一定需要是物理上抗窜改的存储器,只要保证逻辑上抗窜改就行。
[例2]
通过如下安排最初设备保存的事务处理日志的结构、记录在开端设备中的允许恢复最初设备指示符和在重接阶段中随数据20030从开端设备发送到最初设备的恢复容许指示符,也可以实现类似的功能,而进程序列与在例1中描述的进程序列基本相同。
图24示出了事务处理日志的结构。在该示例中,在事务处理日志中新提供了记录0阶会话密钥的字段2405。在这个字段中,记录在连接阶段或重接阶段最初设备和开端设备共享的0阶会话密钥。如果事先规定,0阶会话密钥可以在最初设备中生成或可以在开端设备中生成,或可以是两者。与其它字段一样,记录的定时,在BT PI传送阶段的情况下,是18021,而在BT IP传送阶段的情况下,是19021。
至于记录在开端设备中的允许恢复最初设备指示符,当在完成了连接阶段或重接阶段之后第一次执行BT PI传送阶段或BT IP传送阶段时,记录当时共享的0阶会话密钥。只要预先确定使用与记录到事务处理日志中的那个相同的0阶会话密钥,要记录的0阶会话密钥可以在最初设备中生成或可以在开端设备中生成,或可以是两者。
作为包含在重接阶段从开端设备发送到最初设备的数据20030中的恢复容许指示符(RPI),设置记录成允许恢复最初设备指示符的同一信息。当接收到数据20030时,最初设备在与用于执行重接阶段的连接日志的条目相联系的事务处理日志的所有条目中搜索0阶会话密钥字段2405。当作为结果,存在具有与记录在这个字段中的RPI不同的值的条目时,最初设备删除所有这些条目或使它们作废。在重接阶段中,0阶会话密钥的一致性确认和作为结果,事务处理日志的目标条目的删除或作废无需同时进行。在这样的情况下,与例1一样,在恢复阶段中进行从事务处理日志的目标条目中取出原始使用通行证或原始使用规则的事务处理(图21中21031的进程2和图22中22051的进程3)之前的某个时间完成删除或作废。