发明详述
第一实施例
下面参照附图描述作为本发明实施方式的内容提供系统1。
<结构>
下面描述内容提供系统1的结构。
图1示出内容提供系统1的系统结构。如图1所示,内容提供系统1包括存储卡10、终端设备20、内容服务器1(30)、结算服务器1(40)、内容服务器2(50)、结算服务器2(60)以及认证机构70。
在使用的时候将存储卡插入终端设备20中。终端设备20、内容服务器1(30)、结算服务器1(40)、内容服务器2(50)、结算服务器2(60)以及认证机构70与网络80连接。因此,存储卡10和每个服务器以及认证机构70可以经过网络80和终端设备20执行互相的通信。互联网是网络80的表示性例子。然而,网络80不限于互联网,并可以是模拟广播网、BS数字广播网、地面数字广播网或是CATV网络。
内容提供系统1是这样一种系统,其中使用插入终端设备20中的存储卡10,以使用多个内容提供商提供的服务。
内容服务器1(30)和内容服务器2(50)分别属于不同的内容提供商。结算服务器1(40)对于存储卡10从内容服务器1获得的内容进行支付结算。结算服务器2(60)对于存储卡10从内容服务器2获得的内容执行支付结算。
下面描述系统中包括的每个设备的细节。
1.存储卡10
在此节中描述存储卡10的结构。
存储卡10是装配有CPU的IC存储卡,还有各自包括不同安全等级的三个存储区域。具体的说,存储卡10具有用户区域,安全区域以及TRM(防篡改模块)。可以通过任何外部设备访问该用户区域,诸如终端设备20。安全区域只能被已经成功认证的设备访问。由于对于任何外部设备来说都不知道TRM的存在,因此任何外部设备都不能访问TRM。
图2是功能性地示出存储卡10结构的功能框图。图2示出存储卡10,其包括输入/输出单元101、控制单元102、TRM 103以及存储单元104。
内容单元102还包括命令处理单元105、认证单元106、公钥加密单元107、解密单元108以及访问控制单元109。TRM 103包括TRM输入/输出单元111、TRM控制单元112、内部存储器输入/输出单元113以及内部存储器114。存储器单元104包括安全区域115以及用户区域116。
(1)输入/输出单元101
输入/输出单元101具有多个针终端(pin terminal)。在存储卡10插入随后描述的终端设备20的存储卡输入/输出单元204的状态下,该输入/输出单元101经过针终端执行向终端设备20输入数据和命令并从终端设备20输出数据和命令。
具体的说,输入/输出单元101输出从终端设备20的存储卡输入/输出单元204接收的命令到控制单元102的命令处理单元105,并输出从存储卡输入/输出单元204接收的数据到访问控制单元109。
输入/输出单元101还输出从控制单元102的访问控制单元109接收的数据到终端设备20的存储卡输入/输出单元204。
(2)控制单元102
控制单元102经过终端设备20和网络80与每个服务器建立SAC。控制单元102还控制终端设备20对TRM 103以及存储单元104的访问。下面描述控制单元102的细节。
(a)命令处理单元105经过输入/输出单元101接收命令,解释命令并依照命令执行处理。
例如,命令处理单元10指示认证单元106执行认证处理,指示公钥加密单元107建立SAC,指示解密单元108解密加密内容、加密的支付量通知信息和加密的电子收据,指示解密单元108解密加密内容,并指示访问控制单元109读取应用程序。
(b)认证单元106存储预先由终端设备20登记的密码信息PW_0。接收到来自命令处理单元105的指示的时候,认证单元106以下面的方式认证其中插入存储卡10的设备。
认证单元106产生56位的随机号码R_0,并经过输入/输出单元101输出产生的随机号码R_0到终端设备20。此外,使用随机号码R_0作为加密密钥,认证单元106将加密算法E应用到PW_0上以产生加密的文本E1,并在其中存储产生的加密文本E1。这里,DES(数据加密标准)是加密算法E的表示性实例。
经过输入/输出单元101从终端设备20接收到加密的文本E2的时候,认证单元106比较接收的加密文本E2和其中存储的加密文本E1。如果E1和E2一样,则认证单元106返回表示“认证OK”的信号到命令处理单元105。如果E1和E2不一样,认证单元106返回表示“认证不成”的信号到命令处理单元105。
(c)公钥加密单元107
当存储卡10对内容服务器1(30)、结算服务器1(40)、内容服务器2(50)和结算服务器2(60)执行服务定购处理的时候,公钥加密单元107与每个服务器建立SAC。此外,在存储卡10与内容服务器1(30)和内容服务器2(50)执行内容传送和接收的时候,公钥加密单元107与内容服务器1(30)和内容服务器2(50)建立SAC。此外,在存储卡10与结算服务器1(40)和结算服务器2(60)执行结算处理的时候,公钥加密单元107与结算服务器1(40)和结算服务器2(60)建立SAC。
公钥加密单元107使用的公钥密码系统的表示性例子是椭圆曲线密码系统和RSA密码系统。
<椭圆曲线离散对数问题>
下面简单描述了椭圆曲线离散对数问题,其作为公钥加密单元107使用的椭圆曲线密码系统安全性的基础。
假设E(GF(p))是在有限域GF(p)上定义的椭圆曲线,其中椭圆曲线E上的基点G被设置为当椭圆曲线E的阶正好被较大素数整除的时候的基点。在此情况下,离散对数问题在于计算满足下面等式的整数x,如果该整数存在的话:
Y=X*G,其中Y是对于椭圆曲线E给定的项。
这里,p是素数且GF(p)是包括p项的有限域。在本说明书中,符号“*”表示椭圆曲线中包括的项的重复相加,且“X*G”表示以下面的等式所示的方式将在椭圆曲线中包括的基点G相加x次:
X*G=G+G+G...+G
公钥密码系统的安全是基于离散对数问题的,因为对于包括多个项的有限域的GF(p)的离散对数问题是非常复杂的。
离散对数问题的细节在:Neal Kobltiz著“A Course in NumberTheory and Crytography”Springer-Verlag,1987年出版,中公开。
<使用椭圆曲线的计算公式的说明>
下面描述使用椭圆曲线的计算
椭圆曲线由下式定义:
y2=x3+ax+b
其中任意点P和Q的坐标分别是(x1,y1)和(x2,y2)。这里通过“R=P+Q”来定义的点R的坐标为(x3,y3)。
如果P≠Q,“R=P+Q”变为加操作。下面是对于加操作的公式。
x3={(y2-y1)/(x2-x1)}2-x1-x2,
y3={(y2-y1)/(x2-x1)}(x1-x3)-y1,
如果P=Q,则R=P+Q=P+P=2×P。因此,“R=P+Q”变为双倍操作。下面是对于双倍操作的公式:
x3={(3x1 2+a)/2y1}2-2x1;
y3={(3x1 2+a)/2y1}(x1-x3)-y1;
注意到上面描述的操作是对于定义椭圆曲线的有限域的操作。使用椭圆曲线公式计算的细节在Miyaji,Ono和Cohen著“EfficientElliptic Curve Exponentiation”Advance in Cryptology-Proceedings ofICICS’97,Lecture Notes in Computer Science,pp.282-290,Springer-Verlag,1997中,所公开。
<服务定购处理>
下面描述公钥加密单元107执行的用于定购服务器提供的服务的操作。公钥加密单元107对下载到存储卡10中的每个应用程序执行与对应服务器的服务定购处理。这里,服务定购处理是传送公钥到每个服务器并获得对应于该公钥的公钥证书的操作。
假设应用程序A、应用程序B、应用程序C和应用程序D已经下载到存储卡10中。
应用程序A是用于从内容服务器1(30)获得加密的内容ECNT_1并解密所获得的加密内容ECNT_1的程序。应用程序B是用于对结算服务器1(40)执行结算处理的程序。应用程序C是用于从内容服务器2(50)获得加密的内容ECNT_2并解密所获得的加密内容ECNT_2的程序。应用程序D是用于对结算服务器2(60)执行结算处理的程序。
公钥加密单元107产生SK_A作为对于应用程序A特定的私钥,产生SK_B作为对于应用程序B特定的私钥,产生SK_C作为对于应用程序C特定的私钥,以及产生SK_D作为对于应用程序D特定的私钥。更具体的,通过随机数生成器产生每个私钥。
公钥加密单元107基于产生的每个私钥并将椭圆曲线密码系统作为公钥密码系统使用,以下面的方式产生公钥PK_A,PK_B,PK_C以及PK_D。这里,假设椭圆曲线E的等式:y2=x3+ax+b(mod p)已经被预先给予公钥加密单元107。
PK_A=SK_A*G(mod p);
PK_B=SK_B*G(mod p);
PK_C=SK_C*G(mod p);以及
PK_D=SK_D*G(mod p)。
公钥加密单元107输出产生的私钥SK_A、SK_B、SK_C以及SK_D到访问控制单元109,并用信号表示私钥将要存储在存储单元104的安全区域中。
公钥加密单元107使用RSA密码系统作为公钥加密的算法来建立与内容服务器1(30)的SAC,并经过SAC将公钥PK_A传送给内容服务器1(30)。以同样的方式,公钥加密单元107建立与结算服务器1(40)的SAC,并通过SAC将公钥PK_B传送给结算服务器1(40)。此外,公钥加密单元107建立与内容服务器2(50)的SAC,并通过SAC将公钥PK_C传送给内容服务器2(50)。此外,公钥加密单元107建立与结算服务器2(60)的SAC,并通过SAC将公钥PK_D传送给结算服务器2(60)。公钥加密单元107从内容服务器1(30)经过SAC接收公钥证书Cert_A以及公钥Kp_A。Cert_A是对于内容服务器1(30)发行的公钥PK_A的证书,且Kp_A是内容服务器1(30)的公钥。以同样的方式,公钥加密单元107从结算服务器1(40)经过SAC接收公钥证书Cert_B以及公钥Kp_B。Cert_B是对于结算服务器1(40)发行的公钥PK_B的证书,且Kp_B是结算服务器1(40)的公钥。以同样的方式,公钥加密单元107从内容服务器2(50)经过SAC接收公钥证书Cert_C以及公钥Kp_C。Cert_C是对于内容服务器2(50)发行的公钥PK_C的证书,且Kp_C是内容服务器2(50)的公钥。以同样的方式,公钥加密单元107从结算服务器2(60)经过SAC接收公钥证书Cert_D以及公钥Kp_D。Cert_D是对于结算服务器2(60)发行的公钥PK_D的证书,且Kp_D是结算服务器2(60)的公钥。
从服务器接收到公钥证书Cert_A、Cert_B、Cert_C和Cert_D之后,公钥加密单元107输出公钥证书Cert_A、Cert_B、Cert_C和Cert_D和将签名数据加到公钥证书上的指令到访问控制单元。公钥加密单元107输出从服务器接收到的公钥Kp_A、Kp_B、Kp_C和Kp_D以及将公钥存储在存储单元104的用户区域116中的指令到访问控制单元109。将在后面描述公钥证书Cert_A、Cert_B、Cert_C和Cert_D中每个的数据结构。
注意到公钥加密单元107使用随后描述的初始私钥SK_0010以及图3所示的初始证书Cert_0010(120)来建立用于服务定购处理的SAC。
初始证书Cert_0010(120)是存储卡10从认证机构70接收的公钥证书。如图3所示,初始证书Cert_0010(120)包含作为唯一标识存储卡10的标识符的设备ID“ID_0010”(121),上述公钥“PK_0010”(122),以及认证机构70为设备ID 121和公钥122产生的签名数据“SIG_0010CA”。
初始证书Cert_0010(120)已经从认证机构70通过邮件或安全通信通道传送,并存储在存储单元104的安全区域115中。
<服务使用请求>
下面描述在存储卡对内容服务器1(30)、结算服务器1(40)、内容服务器2(50)以及结算服务器2(60)作出服务使用请求的时候,由公钥加密单元107执行的操作。
公钥加密单元107经过访问控制单元109从存储单元104的用户区域116读取Cert_A’和Kp_A,并从安全区域115读取私钥SK_A。公钥加密单元107使用椭圆曲线加密系统作为公钥加密的算法与内容服务器1(30)建立SAC。更具体的,公钥加密单元107读取并执行用户区域116中存储的应用程序A以建立SAC。
以同样的方式,公钥加密单元107经过访问控制单元109从存储单元104的用户区域116读取Cert_B’和Kp_B,并从安全区域115读取私钥SK_B。公钥加密单元107使用椭圆曲线加密系统作为公钥加密的算法与结算服务器1(40)建立SAC。更具体的,公钥加密单元107读取并执行用户区域116中存储的应用程序B以建立SAC。
以同样的方式,公钥加密单元107经过访问控制单元109从存储单元104的用户区域116读取Cert_C’和Kp_C,并从安全区域115读取私钥SK_C。公钥加密单元107使用椭圆曲线加密系统作为公钥加密的算法与内容服务器2(50)建立SAC。更具体的,公钥加密单元107读取并执行用户区域116中存储的应用程序C以建立SAC。
以同样的方式,公钥加密单元107经过访问控制单元109从存储单元104的用户区域116读取Cert_D’和Kp_D,并从安全区域115读取私钥SK_D。公钥加密单元107使用椭圆曲线加密系统作为公钥加密的算法与结算服务器2(60)建立SAC。更具体的,公钥加密单元107读取并执行用户区域116中存储的应用程序D以建立SAC。
公钥加密单元107将基于SAC的建立而与每个服务器共享的会话密钥经过命令处理单元105输出到解密单元108。随后描述建立SAC的操作。
(d)解密单元108
解密单元经过命令处理单元105从公钥加密单元107接收会话密钥,并使用接收的会话密钥,解密从访问控制单元109接收的加密数据。注意到会话密钥是基于SAC与每个服务器共享的密钥数据。
更具体的,解密单元108从访问控制单元109接收已经从内容服务器1(30)所接收的加密的内容密钥EKCNT_1,并使用与内容服务器1(30)共享的会话密钥来解密该加密的内容密钥EKCNT_1,以产生内容密钥KCNT_1。解密单元108输出产生的内容密钥KCNT_1以及在存储单元104的安全区域115中存储内容密钥KCNT_1的指令到访问控制单元109。
以同样的方式,解密单元108从访问控制单元109接收已经从内容服务器2(50)所接收的加密的内容密钥EKCNT_2,并使用与内容服务器2(50)共享的会话密钥来解密该加密的内容密钥EKCNT_2,以产生内容密钥KCNT_2。解密单元108输出产生的内容密钥KCNT_2以及在存储单元104的安全区域115中存储内容密钥KCNT_2的指令到访问控制单元109。
此外,解密单元108使用与结算服务器1(40)共享的会话密钥,解密已经从结算服务器1(40)接收的加密的支付量通知信息以及加密的电子收据REC_1,来产生支付量通知信息以及电子收据REC_1。解密单元108输出产生的支付量通知信息以及将其输出到TRM 103的指令到访问控制单元109,并输出电子收据REC_1以及表示电子收据REC_1将要存储到存储单元104的安全区域115中的信号到访问控制单元109。
以同样的方式,解密单元108使用与结算服务器2(60)共享的会话密钥,解密已经从结算服务器2(60)接收的加密的支付量通知信息以及加密的电子收据REC_2,来产生支付量通知信息以及电子收据REC_2。解密单元108输出产生的支付量通知信息以及将其输出到TRM 103的指令到访问控制单元109,并输出电子收据REC_2以及表示电子收据REC_2将要存储到存储单元104的安全区域115中的信号到访问控制单元109。
注意到,上述解密处理是通过解密单元108读取并执行存储在用户区域116中的应用程序A、B、C和D中的每个来实现的。
此外,在从命令处理单元105接收到解密加密的内容的指令的时候,解密单元108经过访问控制单元109从用户区域116读取加密内容ECNT_1或ECNT_2中被指定的一个。此外,解密单元108经过访问控制单元109从安全区域115读取内容密钥KCNT_1和KCNT_2中对应于加密内容的一个。
使用内容密钥KCNT_1作为解密密钥,解密单元108将解密算法D1用于加密内容ECNT_1以产生内容CNT_1。这里,解密算法D1是将使用加密算法E1加密的密文转换成明文的算法。解密单元108经过命令处理单元105和输入/输出单元101而输出内容CNT_1到终端设备20。
以同样的方式,使用内容密钥KCNT_2,解密单元108解密加密内容ECNT_2以产生内容CNT_2。解密单元108经过命令处理单元105和输入/输出单元101而输出内容CNT_2到终端设备20。
(c)访问控制单元109
根据命令处理单元105指示开始应用程序,访问控制单元109从用户区域116读取指定的应用程序。
此外,访问控制单元109控制数据输入到TRM 103以及存储单元104的安全区域115和用户区域116,并从存储单元104的安全区域115和用户区域116输出数据。
更具体的,访问控制单元109执行从用户区域116读取数据并将数据写入用户区域116而没有任何限制。关于从安全区域115读取的数据以及写入安全区域115的数据,访问控制单元109向命令处理单元105作出关于设备鉴别的询问。仅在设备鉴别的结果是“鉴别成功”的时候,访问控制单元109执行读取和写入。
在被指示基于存储在TRM 103的内部存储器114中的初始私钥SK_0010产生公钥的时候,访问控制单元109经过TRM 103的TRM输入/输出单元111来通知TRM控制单元112。此外,在从公钥加密单元107接收到指令产生签名数据以及Cert_A、Cert_B、Cert_C以及Cert_D的时候,访问控制单元109经过TRM 103的TRM输入/输出单元111来输出产生签名数据以及Cert_A、Cert_B、Cert_C以及Cert_D的指令到TRM控制单元112。
此外,在从TRM输入/输出单元111接收到Cert_A’、Cert_B’、Cert_C’以及Cert_D’的时候,访问控制单元109将其存储在分别与应用程序A、应用程序B、应用程序C以及应用程序D对应的存储单元116的用户区域116中。
此外,接收到支付量通知信息的时候,访问控制单元109经过TRM输入/输出单元111输出支付电子货币的支付指令和支付量通知信息到TRM控制单元112。
(3)TRM 103
TRM是防止篡改的并且对于终端设备20的CPU是不可以访问的。
(a)TRM输入/输出单元111输出从访问控制单元109接收的指令到TRM控制单元112,并输出从TRM控制单元112接收的数据到访问控制单元109。
(b)TRM控制单元112从TRM输入/输出单元111接收指令,并依照接收的指令执行下面的操作。
在从TRM输入/输出单元111接收到基于初始私钥SK_0010而产生公钥的时候,TRM控制单元112从内部存储器114经过内部存储器输入/输出单元113来读取初始私钥SK_0010。在此实施例中,制造存储卡10的时候写入内部存储器114的唯一号码被用作初始私钥SK_0010。然而,初始私钥SK_0010不限于在制造的时候确定的唯一号码。例如,也可以使用通过认证机构70给予存储卡10的唯一信息。TRM控制单元112基于从内部存储器114读取的初始私钥SK_0010产生公钥PK_0010。
产生的公钥PK_0010将经过TRM输入/输出单元111输出到访问控制单元109。注意到要将公钥PK_0010通知给认证机构70以从认证机构70接收初始证书Cert_0010(参见图3)。
在从TRM输入/输出单元111接收到Cert_A和产生签名数据的指令之后,TRM控制单元112从内部存储器114经过内部存储器输入/输出单元113读取初始私钥SK_0010。TRM控制单元112使用SK_0010基于Cert_A来产生签名数据,并将产生的签名数据加到Cert_A上以产生Cert_A’。TRM控制单元112经过TRM输入/输出单元111输出产生的Cert_A’到访问控制单元109。以同样的方式,TRM控制单元112使用从内部存储器114读取的SK_0010,基于Cert_B来产生Cert_B’,并输出产生的Cert_B’到访问控制单元109。以同样的方式,TRM控制单元112基于Cert_C产生Cert_C’,并输出产生的Cert_C’到访问控制单元109。以同样的方式,TRM控制单元112基于Cert_D产生Cert_D’,并输出产生的Cert_D’到访问控制单元109。
Cert_A’、Cert_B’、Cert_C’和Cert_D’中每个的数据结构将在后面描述。
此外,从TRM输入/输出单元111接收到支付电子货币的指令以及支付量通知信息的时候,TRM控制单元112经过内部存储器输入/输出单元113从内部存储器114中存储的电子货币信息表示的量减去支付量通知信息表示的量。在相减之后,TRM控制单元112经过TRM输入/输出单元111输出表示相减已经完成的信号到访问控制单元109。更具体的,通过TRM控制单元112开始TRM控制单元112内的应用程序B和D,并执行应用程序B或D来实现这些操作。
(c)内部存储器输入/输出单元113使得信息在TRM控制单元112和内部存储器114中传递(bridge)。
(d)具体的说,内部存储器114是从EEPROM构建的。内部存储器114预先存储初始私钥SK_0010。具体的说,该初始私钥SK_0010是如上所述的对于存储卡10唯一的号码。
内部存储器114还存储电子货币信息。电子货币信息包括现金值,并可以用于支付以购买货物和服务。电子货币信息已经通过现金充值器(cash charger)等安全地预先存储在内部存储器114中。
(4)存储单元
存储单元104包括安全等级低于TRM 103的内部储存器114的安全区域115以及用户区域116。该存储单元104具体来说是从闪存存储器构建的。
(a)安全区域115存储由公钥加密单元107产生的私钥SK_A、SK_B、SK_C和SK_D。私钥SK_A与应用程序A和公钥证书Cert_A相关联地存储。私钥SK_B与应用程序B和公钥证书Cert_B相关联地存储。这里,私钥SK_C与应用程序C和公钥证书Cert_C相关联地存储。私钥SK_D与应用程序D和公钥证书Cert_D相关联地存储。
安全区域115还存储内容密钥KCNT_1以及KCNT_2。内容密钥KCNT_1是解密从内容服务器1(30)获得的加密内容ECNT_1的解密密钥。内容密钥KCNT_2是解密从内容服务器2(50)获得的加密内容ECNT_2的解密密钥。这里,内容密钥KCNT_1与加密的内容ECNT_1相关联地存储,且内容密钥KCNT_2与加密的内容ECNT_2相关联地存储。
安全区域115还存储从结算服务器1(40)获得的电子收据REC_1,以及从结算服务器2(60)获得的电子收据REC_2。
(b)用户区域116存储CRL(证书撤销列表Certification RevocationList)。CRL是已经失效的设备ID的列表,诸如已经执行了未授权操作的设备的ID以及其私钥被公开的设备的ID。CRL由认证机构70产生。存储卡10始终从认证机构70经过网络80和终端设备20来接收最新的CRL,并存储所接收的最新CRL而取代已经存储在用户区域116中的较老CRL。在存储卡10建立与每个服务器的SAC的时候,公钥加密单元107使用CRL。
图4示出CRL 125的数据结构作为上述CRL的具体例子。如图4所示,CRL包含失效设备ID如ID_0012、ID_0058、ID_0379等。
CRL的细节在以下文档中公开:美国国家标准组织、美国国家金融服务标准,ANSX9.57:金融产业的公钥密码系统:证书管理,1997。
用户区域116还存储初始证书Cert_0010(120)。如上所述,初始证书Cert_0010(120)是存储卡10从认证机构70获得的公钥证书。
用户区域116还存储公钥证书Cert_A’。公钥证书Cert_A’是由TRM控制单元112产生的、将签名数据加到从内容服务器1(30)获得的公钥证书Cert_A上而得到的公钥证书。
图5A示出Cert_A(130)的数据结构。如图5A所示,Cert_A(130)包括服务ID“SID_0123A”(131),成员号码“NO_0010”(132)、公钥“PK_A”(133)和签名数据1“Sig_0010A”(134)。
服务ID“SID_0123A”(131)表示存储卡10使用内容服务器1(30)所提供的服务中的服务所登记的该服务的类型。服务ID“SID_0123A”例如表示使用应用程序A可用的电影发行服务。成员号码“NO_0010”(132)是分配给存储卡10的号码,用于从内容服务器1(30)中登记的多个设备中辨别存储卡10。公钥“PK_A”(133)是从专门用于应用程序A的私钥SK_A通过存储卡10产生的密钥数据。签名数据1“Sig_0010A”(134)是将签名算法用于“SID_0123A”、“NO_0010”(132)和“PK_A”(133)而由内容服务器1(30)产生的数据。
图5B示出安全区域115中存储的Cert_A’(135)的数据结构。如图5B所示,Cert_A’(135)包括服务ID“SID_0123A”(131),成员号码“NO_0010”(132)、公钥“PK_A”(133)、签名数据1“Sig_0010A”(134)以及签名数据2“Sig_AsDex”(136)。公钥证书Cert_A’具有其中签名数据2“Sig_AsDex”(136)被加到Cert_A的结构。
签名数据2“Sig_AsDex”(136)是将签名算法用于“SID_0123A”(131)、“NO_0010”(132)、“PK_A”(133)和“Sig_0010A”(134)而由TRM控制单元112产生的数据。
用户区域116还存储公钥证书Cert_B’。公钥证书Cert_B’是通过将签名数据加到从结算服务器1(40)获得的公钥证书Cert_B而由TRM控制单元112产生的公钥证书。
图6A示出Cert_B(140)的数据结构。如图6A所示,Cert_B(140)包括服务ID“SID_0321B”(141)、成员号码“NO_0010”(142)、公钥“PK_B”(143)和签名数据1“Sig_0010B”(144)。
服务ID“SID_0321B”(141)表示存储卡10使用结算服务器1(40)所提供的服务中的服务所登记的该服务的类型。服务ID“SID_0321B”例如表示使用应用程序B可用的电子货币结算服务。成员号码“NO_0010”(142)是分配给存储卡10的号码,用于从结算服务器1(40)中登记的多个设备中辨别存储卡10。公钥“PK_B”(143)是从专门用于应用程序B的私钥SK_B通过存储卡10产生的密钥数据。签名数据1“Sig_0010B”(144)是将签名算法用于“SID_0123B”(141)、“NO_0010”(142)和“PK_B”(143)而由结算服务器1(40)产生的数据。
图6B示出安全区域115中存储的Cert_B’(145)的数据结构。如图6B所示,Cert_B’(145)包括服务ID“SID_0321B”(141),成员号码“NO_0010”(142)、公钥“PK_B”(143)、签名数据1“Sig_0010B”(144)以及签名数据2“Sig_BSDex”(146)。公钥证书Cert_B’具有其中签名数据2“Sig_BSDex”(146)被加到Cert_B的结构。
签名数据2“Sig_BSDex”(146)是将签名算法用于“SID_0321B”(141)、“NO_0010”(142)、“PK_B”(143)和“Sig_0010B”(144)而由TRM控制单元112产生的数据。
用户区域116还存储公钥证书Cert_C’。公钥证书Cert_C’是通过将签名数据加到从内容服务器2(50)获得的公钥证书Cert_C而由TRM控制单元112产生的公钥证书。
图7A示出Cert_C(150)的数据结构。如图7A所示,Cert_C(150)包括服务ID“SID_0123C”(151)、成员号码“NO_0025”(152)、公钥“PK_C”(153)和签名数据1“Sig_0010C”(154)。
服务ID“SID_0123C”(151)表示存储卡10使用内容服务器2(50)所提供的服务中的服务所登记的该服务的类型。服务ID“SID_0123C”例如表示使用应用程序C可用的音乐发行服务。成员号码“NO_0025”(152)是分配给存储卡10的号码,用于从内容服务器2(50)中登记的多个设备中辨别存储卡10。公钥“PK_C”(153)是从专门用于应用程序C的私钥SK_C通过存储卡10产生的密钥数据。签名数据1“Sig_0010C”(154)是将签名算法用于“SID_0123C”(151)、“NO_0025”(152)和“PK_C”(153)而由内容服务器2(50)产生的数据。
图7B示出安全区域115中存储的Cert_C’(155)的数据结构。如图7B所示,Cert_C’(155)包括服务ID“SID_0123C”(151)、成员号码“NO_0025”(152)、公钥“PK_C”(153)、签名数据1“Sig_0010C”(154)以及签名数据2“Sig_CSDex”(156)。公钥证书Cert_C’具有其中签名数据2“Sig_CSDex”(156)被加到Cert_C的结构。
签名数据2“Sig_CSDex”(156)是将签名算法用于“SID_0123C”(151)、“NO_0025”(152)、“PK_C”(153)和“Sig_0010C”(154)而由TRM控制单元112产生的数据。
用户区域116还存储公钥证书Cert_D’。公钥证书Cert_D’是通过将签名数据加到从结算服务器2(60)获得的公钥证书Cert_D上而由TRM控制单元112产生的公钥证书。
图8A示出Cert_D(160)的数据结构。如图8A所示,Cert_D(160)包括服务ID“SID_0321D”(161)、成员号码“NO_0025”(162)、公钥“PK_D”(163)和签名数据1“Sig_0010D”(164)。
服务ID“SID_0321D”(161)表示存储卡10使用结算服务器2(60)所提供的服务中的服务所登记的该服务的类型。服务ID“SID_0321D”例如表示使用应用程序D可用的电子货币结算服务。成员号码“NO_0025”(162)是分配给存储卡10的号码,用于从结算服务器2(60)中登记的多个设备中辨别存储卡10。公钥“PK_D”(163)是从专门用于应用程序D的私钥SK_D通过存储卡10产生的密钥数据。签名数据1“Sig_0010D”(164)是将签名算法用于“SID_0321D”(161)、“NO_0025”(162)和“PK_D”(163)而由结算服务器2(60)产生的数据。
图8B示出安全区域115中存储的Cert_D’(165)的数据结构。如图8B所示,Cert_D’(155)包括服务ID“SID_0321D”(161)、成员号码“NO_0025”(162)、公钥“PK_D”(163)、签名数据1“Sig_0010D”(164)以及签名数据2“Sig_DSDex”(166)。公钥证书Cert_D’具有其中签名数据2“Sig_DSDex”(166)被加到Cert_D的结构。
签名数据2“Sig_DSDex”(166)是将签名算法用于“SID_0321D”(161)、“NO_0025”(162)、“PK_D”(163)和“Sig_0010D”(164)而由TRM控制单元112产生的数据。
用户区域116还存储内容服务器1(30)的公钥Kp_A、内容服务器1(40)的公钥Kp_B、结算服务器2(50)的公钥Kp_C以及结算服务器2(60)的公钥Kp_D。
用户区域116还存储从内容服务器1(30)获得的加密内容ECNT_1以及从内容服务器2(50)获得的加密内容ECNT_2。
用户区域116还存储应用程序A、应用程序B、应用程序C和应用程序D。
图9示出存储卡10中存储的私钥、公钥证书和应用程序之间的关系。
图9示出表中最上面一行所示的应用程序使用下面行中示出的所有私钥和公钥证书来执行服务定购处理以及服务使用处理。
换句话说,应用程序A(171)使用私钥SK_A、公钥证书Cert_A’、初始私钥SK_0010(170)以及初始证书Cert_0010(120)。应用程序B(172)使用私钥SK_B、公钥证书Cert_B’、初始私钥SK_0010(170)以及初始证书Cert_0010(120)。应用程序C(173)使用私钥SK_C、公钥证书Cert_C’、初始私钥SK_0010(170)以及初始证书Cert_0010(120)。应用程序D(174)使用私钥SK_D、公钥证书Cert_D’、初始私钥SK_0010(170)以及初始证书Cert_0010(120)。
图9中,点线175环绕的应用程序存储在存储单元104的用户区域116中。点线176环绕的私钥存储在存储单元104的安全区域115中。点线177环绕的公钥证书存储在存储单元104的用户区域116中。初始私钥170存储在TRM 103的内部存储器114中。初始证书120存储在存储单元104的用户区域116中。
2.终端设备20
下面详细描述终端设备的结构。
图10是示出终端设备20的结构的功能框图。如图10所示,终端设备20包括通信单元201、操作输入单元202、控制单元203、存储卡输入/输出单元204、鉴别单元205和再现单元206。
具体的说,终端设备20是从微处理器、ROM、RAM、硬盘驱动器单元、网络连接单元、解码器、编码器、存储卡槽等构成的计算机系统。
(1)通信单元201
通信单元201是具有web浏览器的网络连接单元,并通过网络80连接到内容服务器1(30)、结算服务器1(40)、内容服务器2(50)和结算服务器2(60)。
通信单元201经过网络80接收每个服务器的信息,并输出接收到的信息到控制单元203。通信单元201还从控制单元203接收信息并将接收的信息经过网络80传送到每个服务器。
这里,通信单元201例如传送服务定购请求、服务使用请求、与每个服务器建立SAC所用的签名数据、密钥信息等到每个服务器。
通信单元201例如从每个服务器接收与每个服务器建立SAC所用的签名数据、密钥信息以及加密的内容、在鉴别和密钥共享处理已经结束之后从每个服务器传送的加密的内容密钥以及加密的电子收据等。
通信单元201还经过网络80连接到认证机构70。通信单元201始终接收最新的CRL,并经过控制单元203和存储卡输入/输出单元204而输出接收的最新CRL到存储卡10。
(2)操作输入单元202
操作输入单元202具有接收用户操作的按钮。操作输入单元202接收用户的操作,产生对应于接收的操作的命令,并输出产生的命令到控制单元203。命令例如是服务定购请求、服务使用请求、内容再现请求等。
(3)控制单元203
控制单元203是从微处理器、ROM、RAM等构建的,并通过依照计算机程序使得微处理器操作,来控制整个终端设备20。
控制单元203经过存储卡输入/输出单元204而输出从通信单元201接收到的各种信息到存储卡10。此外,接收到来自操作输入单元202的命令指示再现内容的指令的时候,控制单元203经过存储卡输入/输出单元204而输出接收的命令到存储卡10。
此外,经过存储卡输入/输出单元204而从存储卡10接收到内容的时,控制单元203输出接收的内容到再现单元206。
(4)存储卡输入/输出单元204
存储卡输入/输出单元204从存储卡槽等构建而成。在存储卡10插入存储卡槽中的状态下,存储卡输入/输出单元204执行控制单元203和存储卡10之间的信息输入和输出。
(5)鉴别单元205
鉴别单元从微处理器、ROM和RAM等构建而成。鉴别程序存储在ROM或RAM之中,且微处理器执行鉴别程序。ROM预先存储鉴别密码PW_0。该PW_0是与存储卡10共享的秘密数据,并用于存储卡10的鉴别单元106执行的质询响应类型的鉴别。
鉴别单元205从存储卡10经过存储卡输入/输出单元204接收随机号码R_0。使用接收的随机号码R_0作为加密密钥,鉴别单元205将加密算法E用于鉴别密码PW_0以产生加密的文本E2。鉴别单元205经过控制单元203和存储卡输入/输出单元204而输出产生的密文E2到存储卡10。
这里,DES(数据加密标准Data Encryption Standard)是加密算法E的表示例子。
(6)再现单元206
再现单元是从解码器、缓冲器等构建的。在经过控制单元203和存储卡输入/输出单元204从存储卡10接收到内容CNT_1的时候,再现单元206解码接收的内容CNT_1以产生视频信号以及音频信号。再现单元输出产生的视频信号和音频信号到与该再现单元206连接的外部输出设备。
此外,从存储卡10接收到内容CNT_2的时候,再现单元206解码接收的内容CNT_2以产生音频信号。再现单元206输出产生的音频信号到输出设备。该输出设备具体的说是监视器和扬声器。
3.内容服务器1(30)
下面描述了内容服务器1(30)的结构。
图11是示出内容服务器1(30)的结构的功能框图。如图11所示,内容服务器1(30)包括通信单元301、控制单元302、CRL存储单元303、证书管理单元304、登记信息存储单元303、公钥加密单元306、加密内容存储单元以及内容密钥存储单元308。
内容服务器1(30)具体的说是从微处理器、ROM、RAM、硬盘单元、网络连接单元等构成的计算机系统。
(1)通信单元301
通信单元301是网络连接单元,且经过网络80与其他设备通信。
通信单元301接收公钥PK_A、Cert_A’、用于建立SAC的签名数据、密钥信息等,并输出接收的信息到控制单元302。通信单元还接收公钥证书Cert_A、用于建立SAC的签名数据、密钥信息、加密的内容ECNT_1、加密的内容密钥EKCNT_1等,并经过终端设备20传送接收的信息到存储卡10。
此外,通信单元301经过网络80连接到认证机构70。通信单元301不断经过网络80从认证机构70接收最新的CRL,并经过控制单元302在CRL存储单元303中存储所接收的最新CRL。
通信单元301还经过控制单元302从公钥加密单元306接收公钥PK_0030,并将接收的公钥PK_0030经过网络80传送到认证机构70。通信单元301还接收初始证书Cert_0030,其是对应于公钥PK_0030的公钥证书,并经过控制单元302输出接收的初始证书Cert_0030到证书管理单元304。这里,假设初始证书Cert_0030是从认证机构70接收的或是传送到认证机构70的。
注意到经过网络安全地接收和传送初始证书Cert_0030的上述结构仅仅是一个例子。初始证书Cert_0030可以通过邮件等由认证机构70通知内容服务器1(30)。
通信单元301还从控制单元302接收结算请求信息,并经过网络80传送接收的结算请求信息到结算服务器1(40)。结算请求信息的细节将在下面描述。
(2)控制单元302
控制单元是从微处理器、ROM、RAM等构建的结构,并通过微处理器执行计算机程序来控制整个内容服务器1(30)。
(a)从存储卡10接收到服务定购请求的时候,控制单元302读取证书管理单元304中存储的初始证书Cert_0030。此外,控制单元302指示公钥加密单元306执行建立SAC的处理。
(b)控制单元302从存储卡10接收对Cert_A’的服务使用请求。如图5B所示,Cert_A’包括签名数据1(134)和签名数据2(135)。控制单元302鉴别签名数据1(134)和签名数据2(135)。如果签名数据1(134)和签名数据2(135)的鉴别失败,控制单元302完成处理。如果签名数据1(134)和签名数据2(135)的鉴别成功,控制单元302指示公钥加密单元306执行建立SAC的处理。
(c)在内容服务器1(30)和存储卡10之间建立SAC之后,向存储卡10传送信息并从存储卡10接收信息,控制单元302从公钥加密单元306接收会话密钥。使用接收的会话密钥作为加密密钥或解密密钥,控制单元302对信息加密并将该信息传送到存储卡10,或是解密从存储卡10接收的加密信息。
例如,在提供服务的时候,控制单元302从公钥加密单元306接收会话密钥,从加密内容存储单元307读取加密的内容ECNT_1,并从内容密钥存储单元307读取对应于加密内容ECNT_1的内容密钥KCNT_1。控制单元302使用会话密钥加密读取的内容密钥KCNT_1以产生加密的内容密钥EKCNT_1。控制单元302经过通信单元301传送产生的加密内容密钥EKCNT_1和加密的内容ECNT_1到存储卡10。
(d)控制单元302对于每个交易产生结算请求信息。具体的说,在传送了加密内容ECNT_1和加密的内容密钥EKCNT_1到存储卡10之后,控制单元302产生图14所示的结算请求信息410。注意到术语“交易”表示控制单元302传送加密内容ECNT_1和加密的内容密钥EKCNT_1到存储卡10。
结算请求信息包括服务ID(SID_0123A)、成员号码(NO_0010)、使用号码(0322001)、货币量(1200)以及使用日期(2005/3/22)。
服务ID(SID_0123A)表示登记在存储卡10之中的服务的类型。成员号码(NO_0010)表示存储卡10的成员号码。使用号码(0322001)表示相关交易是3月22日用存储卡10执行的第一笔交易。货币量(1200)表示在交易中支付的货币量。使用日期(2005/3/22)表示执行相关交易的日期。
控制单元302经过通信单元301和网络80传送产生的结算请求信息410到结算服务器1(40)。
(3)CRL存储单元303
CRL存储单元303由RAM构建并在其中存储最新的CRL。CRL存储单元303中存储的CRL与图4所示的CRL 125一样,其是已经失效的设备的ID列表,诸如已经执行了未授权操作的设备的ID以及其私钥已经被公开的设备的ID。
在从控制单元302接收到最新的CRL的时候,CRL存储单元303存储接收的最新CRL来取代已经存储在CRL存储单元303中的旧的CRL。
(4)证书管理单元304
证书管理单元304从控制单元302接收初始证书Cert_0030,并在其中存储接收的初始证书。初始证书Cert_0030是从认证机构70接收到的公钥证书。
图13A示出初始证书Cert_0030(310)的数据结构。如图13A所示,初始证书Cert_0030(310)包含作为唯一标识内容服务器1(30)的标识符的设备ID“ID_0030”、内容服务器1(30)的公钥“PK_0030”以及认证机构70对设备ID(ID_0030)和公钥PK_0030产生的签名数据“SIG_0030CA”。
(5)登记信息管理单元305
登记信息管理单元305管理设备的登记信息,其中公钥加密单元306给该设备发行了公钥证书。该登记信息包括以下信息:登记的设备的公钥、分配给该设备的成员号码、该设备的网络地址、以及用户等。该登记信息用于管理登记的设备和该设备的用户。登记信息还被控制单元302使用,以鉴别从存储卡10接收的公钥证书Cert_A’。
(6)公钥加密单元306
<请求初始证书Cert_0030>
在与存储卡10通信之前,公钥加密单元306请求认证机构70发行公钥证书。
更具体的说,公钥加密单元306从预先存储在其中的初始私钥SK_0030产生公钥PK_0030。公钥加密单元306经过控制单元302和通信单元301传送其自己的设备ID“ID_0030”以及产生的公钥PK_0030到认证机构70。
<存储卡10的登记>
在服务定购处理和登记处理中,公钥加密单元306依照控制单元302的指令来建立SAC,并与存储卡10分享会话密钥。公钥加密单元306输出与存储卡10共享的会话密钥到控制单元302。
公钥加密单元306产生私钥Ks_A并计算Kp_A=Ks_A*G(mod p)以产生公钥Kp_A。公钥加密单元306经过SAC传送产生的公钥Kp_A到存储卡10。这里,假设已经给出了椭圆曲线的等式y2=x3+ax+b(modp)。
公钥加密单元306经过SAC从存储卡10接收公钥PK_A,并基于接收的公钥PK_A产生公钥证书Cert_A(130)。Cert_A(130)的数据结构在图5A中示出。公钥加密单元306经过SAC传送产生的Cert_A(130)到存储卡10。
<给存储卡10提供服务>
在给存储卡10提供服务的处理中,公钥加密单元306依照来自控制单元302的指令建立SAC,并与存储卡10分享会话密钥。公钥加密单元306输出与存储卡10共享的会话密钥到控制单元302。建立SAC的处理的细节将在后面描述。
(7)加密内容存储单元307
加密内容存储单元307从硬盘单元构建而成,并在其中存储加密的内容ECNT_1。
加密的内容ECNT_1是通过使用内容密钥KCNT_1作为加密密钥将加密算法E1用于内容CNT_1而产生的数据。这里,内容CNT_1是依照预定的标准或规则,诸如MPEG,通过压缩编码视频信号和音频信号产生的数字数据。这里,DES是加密算法E1的代表性实例。
(8)内容密钥存储单元308
内容密钥存储单元308从ROM或RAM构建而成,并在其中存储内容密钥KCNT_1。
注意到加密的内容存储单元307和内容密钥存储单元308可以分别存储多个加密的内容和多个内容密钥。如果是在这种情况下,加密的内容和内容密钥以一对一的基础彼此相关联,且分别存储在内容存储单元307和内容密钥存储单元308中。
4.结算服务器1(40)
下面描述结算服务器1(40)的结构。
图12是功能性地示出结算服务器1(40)的结构的功能框图。如图12所示,结算服务器1(40)包括通信单元401、控制单元402、CRL存储单元403、证书管理单元404、公钥加密单元405以及结算单元406。
结算服务器1(40)具体的说是从微处理器、ROM、RAM、网络连接单元等构建的计算机系统,并且对于内容服务器1(30)提供的内容向存储卡10执行支付的结算。
(1)通信单元401
通信单元401是网络连接单元,并且经过网络80与其他设备通信。
通信单元401接收公钥PK_B、Cert_B’、用于建立SAC的签名数据、密钥信息、定购完成通知等,并输出这些信息到控制单元402。通信单元401还从控制单元402接收公钥证书Cert_B、用于建立SAC的签名数据、密钥信息、支付量通知信息、加密的电子收据EREC_1等,并输出这些信息到存储卡10。
此外,通信单元401经过网络80连接到认证机构70。通信单元401始终经过网络80从认证机构70接收最新的CRL,并经过控制单元402将接收的最新CRL存储到CRL存储单元403中。
此外,通信单元401经过控制单元402从公钥加密单元405接收公钥PK_0040,并经过网络80传送所接收的公钥PK_0040到认证机构70。此外,通信单元401经过网络80从认证机构70接收初始证书Cert_40,其是对应于公钥PK_0040的公钥证书,并经过管理单元402输出所接收的初始证书Cert_0040到证书管理单元404。这里,初始证书Cert_0040以安全的方式从认证机构70接收并向其传送。注意到初始证书Cert_0040可以通过邮件等来通知,而不必经过网络80来传送。
通信单元401还经过网络80从内容服务器1(30)接收结算请求信息410,并输出接收的结算请求信息到控制单元402。
通信单元401还接收加密支付量通知信息以及加密的电子收据ERCE_1,并经过网络80传送接收的加密支付量通知信息和加密电子收据EREC_1到存储卡10。
(2)控制单元402
控制单元对于每个部件给出指令,并控制整个结算服务器1(40)。
下面是控制单元402执行的处理的具体例子:在公钥加密单元405与存储卡10建立SAC之后,控制单元402从公钥加密单元405接收与存储卡10共享的会话密钥,以从存储卡10接收并向存储卡10发送信息;控制单元402使用接收的会话密钥作为加密密钥,加密从结算单元406获得的支付量通知信息和电子收据REC_1,以产生加密的支付量通知以及加密的电子收据EREC_1;且控制单元402经过通信单元401传送产生的加密支付量通知和加密的电子收据EREC_1到存储卡10。
(3)CRL存储单元403
CRL存储单元403具有与作为内容服务器1(30)中包括的部件的CRL存储单元303一样的功能。因此,省略其说明。
(4)证书管理单元404
证书管理单元404从认证机构70接收初始证书Cert_0040,并在其中存储接收的初始证书Cert_0040。
图13B示出初始证书Cert_0040(320)的数据结构,其是结算服务器1(40)从认证机构70接收的公钥证书。如图13B所示,Cert_0040(320)包括唯一地标识结算服务器1(40)的设备ID(ID_0040)、上述公钥PK_0040、以及由认证机构70对设备ID(ID_0040)和公钥PK_0040所产生的签名数据SIG_0040CA。
证书管理单元404管理设备的登记信息,其中通过公钥加密单元405将公钥证书发行给所述设备。登记信息包括登记的设备的公钥、分配给该设备的成员号码、该设备的网络地址、该设备的用户信息等等。登记信息用于管理登记的设备和用户。登记信息还用于与存储卡10建立SAC。
这里,由于结算服务器1(40)是用于处理对内容服务器1(30)所提供内容的支付的结算的服务器,所以结算服务器1(40)分配给该设备的成员号码与内容服务器1(30)所分配的成员号码一样。具体的说,内容服务器1(30)和结算服务器1(40)分配同样的成员号码“NO_0010”给存储卡10。
(5)公钥加密单元405
<初始证书Cert_0040的请求>
在与存储卡10通信之前,公钥证书通过认证机构70发行给公钥加密单元405。
更具体的,公钥加密单元405从预先存储在其中的初始私钥SK_0040产生公钥PK_0040。公钥加密单元405经过控制单元402和通信单元401传送其预先存储其中的自己的设备ID“ID_0040”和产生的公钥PK_0040到认证机构70。
(存储卡10的登记)
在服务定购处理和登记处理中,公钥加密单元405与存储卡10依照来自控制单元402的指令建立SAC。
公钥加密单元405产生私钥Ks_B并计算Kp_B=Ks_B*G(mod p),以产生公钥Kp_B。公钥加密单元405经过SAC传送产生的公钥Kp_B到存储卡10。这里,假设已经给出了椭圆曲线的等式y2=x3+ax+b(modp)。
公钥加密单元405从存储卡10经过SAC来接收公钥PK_B,并基于接收的公钥PK_B产生公钥证书Cert_B(140)。Cert_B(140)的数据结构在图6A中示出。公钥加密单元405经过SAC传送产生的Cert_B(140)到存储卡10。
<结算处理>
在用存储卡10执行的结算处理中,公钥加密单元405依照来自控制单元402的指令与存储卡10建立SAC。
(6)结算单元406
结算单元406从控制单元402接收图14所示的结算请求信息410。结算单元406从结算请求信息410读取货币量1200。结算单元406产生表示“1200 yen”的支付量通知信息并输出该产生的支付量通知信息到控制单元402。
结算单元406接收相减完成通知信息,该信息表示已经完成了经过控制单元402和通信单元401从存储卡10中对于电子货币信息的相减。在接收到相减完成通知信息的时候,结算单元406产生如图15所示的电子收据(REC_1)420,并输出产生的电子收据(REC_1)420到控制单元402。
电子收据(REC_1)420包括设备ID(SID_0321B)、成员号码NO_0010、结算号码0322001、货币量1200以及使用日期2005/3/22。
服务ID(SID_0321B)表示用存储卡10登记的服务的类型。成员号码(NO_0010)表示存储卡10的成员号码。使用号码(0322001)表示相关结算处理是用存储卡10在3月22日执行的第一结算处理。货币量(1200)表示结算处理中支付的货币量。使用日期(2005/3/22)表示执行结算处理的日期。
5.内容服务器2(50)
内容服务器2(50)是服务器设备,其经过网络80发行如音乐数据的内容。
图13C示出初始证书Cert_0050(340)的数据结构,该初始证书是内容服务器2(50)从认证机构70接收的公钥证书。如图13C所示,Cert_0050(340)包括用于唯一地标识内容服务器2(50)的设备ID(ID_0050)、内容服务器2(50)的公钥PK_0050、以及由认证机构70对设备ID(ID_0050)和公钥PK_0050所产生的签名数据SIG_0050CA。
内容服务器2(50)首先使用初始证书Cert_0050建立与存储卡10的SAC,并经过SAC传送公钥证书Cert_C(参见图7A)到存储卡10。下面,内容服务器2(50)基于Cert_C,使用存储卡10产生的Cert_C’(参见图7B)建立与存储卡10的SAC,并经过SAC传送加密的内容和加密的内容密钥到存储卡10。
内容服务器2(50)的功能和结构与内容服务器1(30)一样。因此,没有示出其结构且在此省略其详细说明。
6.结算服务器2(60)
结算服务器2(60)是对于内容服务器2(50)提供到存储卡10的内容执行结算支付的设备。
图13D示出初始证书Cert_0060(360)的数据结构,其是结算服务器2(60)从认证机构70接收的公钥证书。如图13B所示,Cert_0040(320)包括用于唯一地标识结算服务器2(60)的设备ID(ID_0060)、结算服务器2(60)的公钥PK_0060、以及由认证机构70对设备ID(ID_0060)和公钥PK_0060所产生的签名数据SIG_0060CA。
结算服务器2(60)首先使用初始证书Cert_0060建立与存储卡10的SAC,并经过SAC传送公钥证书Cert_D(参见图8A)到存储卡10。下面,结算服务器2(60)基于Cert_D,使用存储卡10产生的Cert_D’(参见图8B)建立与存储卡10的SAC,并经过SAC对存储卡10执行结算处理。
结算服务器2(60)的功能和结构与结算服务器1(40)一样。因此,没有示出其结构并且在此省略其详细说明。
7.认证机构70
认证机构70是这样一个设备,其在对于认证的交换数据发行签名,所述认证用于认证网络80上的数据源是可靠的组织或是可靠的设备。
<操作>
下面描述内容提供系统1执行的操作。
1.整个系统
图16是流程图,示出整个内容提供系统1执行的操作。
首先,存储卡10、内容服务器1(30)、结算服务器1(40)、内容服务器2(50)以及结算服务器2(60)中的每个从认证机构70(CA)获得初始证书(步骤S1)。下面对于每个应用程序,每个设备重复步骤S2到S4。
存储卡10以及对应的服务器对于每个应用程序执行服务定购处理以及登记处理(步骤S3)。
在对于在存储卡10中下载的所有应用程序已经完成了步骤S3之后(步骤S4),存储卡10和服务器执行服务使用处理(步骤S5)。随后,终端设备20再现内容(步骤S6)。
2.初始证书获得处理
图17是流程图,示出在每个设备和认证机构70之间用于获得初始证书的操作。图17所示的操作是图16的流程图中步骤S1的细节。注意到短语“每个设备”表示存储卡10、内容服务器1(30)、结算服务器1(40)、内容服务器2(50)以及结算服务器2(60)中的每个。
首先,每个设备读取初始私钥SK_L。这里L=0010、0030、0040、0050或0060(步骤S101)。下面,每个设备基于初始私钥SK_L产生公钥PK_L(步骤S102)。这里,任何算法都可以用于从初始私钥SK_L产生公钥PK_L。例如,可以使用RSA加密系统。
每个设备传送包括公钥PK_L的信息以及存储其中的其自身设备ID到认证机构70。认证机构70接收包括公钥PK_L以及设备ID的信息(步骤S103)。
认证机构70对于步骤S103中接收的信息发送源(公钥证书的请求源),来确定公钥、邮件地址、用户、用户所属的组织等是否的确存在并且是正确的(步骤S104)。
如果请求源是失效的(步骤S105中的否),认证机构70完成处理。
如果请求源是有效的(步骤S105中的是),认证机构70将签名数据Sig_LCA加到接收的公钥PK_L和设备ID上,以产生初始证书Cert_L(步骤S106)。认证机构70传送产生的初始证书Cert_L到每个作为请求源的设备。每个设备接收初始证书Cert_L(步骤S107)。
每个设备存储接收的初始Cert_L(步骤S108)。更具体的,存储卡10存储Cert_0010到存储单元104的用户区域116中,且内容服务器1(30)、结算服务器1(40)、内容服务器2(50)以及结算服务器2(60)分别在各自的证书管理单元中存储Cert_0030、Cert_0040、Cert_0050和Cert_0060。
从认证机构70接收到公钥证书的时候,存储卡10、内容服务器1(30)、结算服务器1(40)、内容服务器2(50)以及结算服务器2(60)中的每个执行下一步骤S2。
3.服务定购以及登记处理
图18和图19是示出存储卡10、内容服务器1(30)、结算服务器1(40)、内容服务器2(50)以及结算服务器2(60)中执行的服务定购和登记处理的操作的流程图。注意到图18和图19所示的操作是图16的流程图中步骤S3的细节。
存储卡10中,发生对于内容服务器1(30)、结算服务器1(40)、内容服务器2(50)以及结算服务器2(60)的服务定购请求(步骤S150)。服务定购请求在例如应用程序下载到存储卡10中的时候发生。
为了简化,内容服务器1(30)、结算服务器1(40)、内容服务器2(50)以及结算服务器2(60)中的每个在下面的描述中可以称作“服务器”或“每个服务器”。
存储卡10的鉴别单元106鉴别其中插入存储卡10的终端设备20(步骤S151)。此后,存储卡10和每个服务器执行建立SAC的处理(步骤S152)。
存储卡10使用随机号码产生器产生对于每个应用程序特有的私钥SK_X(X=A,B,C或D)(步骤S153)。
公钥加密单元107基于私钥SK_X计算PK_X=SK_X*G(mod p)来产生公钥PK_X(步骤S154)。下面,存储卡10使用会话密钥作为加密密钥来加密产生的公钥PK_X(步骤S155),并经过终端设备20和网络80来传送加密的公钥PK_X到每个服务器。每个服务器接收加密的公钥PK_X(步骤S156)。
每个服务器使用会话密钥解密加密的公钥PK_X(步骤S157)。
下面,对于从存储卡10接收的公钥PK_X,每个服务器产生公钥证书Cert_X(步骤S158)。随后,每个服务器使用随机号码产生器来产生私钥Ks_X(步骤S159),并从产生的私钥Ks_X来产生公钥Kp_X=Ks_X*G(步骤S160)。每个服务器使用会话密钥作为加密密钥来加密公钥证书Cert_X以及公钥Kp_X(步骤S161),并经过网络80和终端设备20传送加密的Cert_X和Kp_X到存储卡10。存储卡10接收加密的Cert_X和Kp_X(步骤S162)。
每个服务器对于存储卡10产生登记信息并管理该信息(步骤S163)。
存储卡10使用会话密钥解密接收的Cert_X和Kp_X(步骤S164),并使用解密的Kp_X鉴别解密的公钥证书Cert_X中包括的签名数据Sig_0010X(步骤S165)。
如果签名鉴别失败(步骤S166中的否),存储卡10返回步骤S3中的处理。如果签名鉴别成功(步骤S166中的是),存储卡10对于Cert_X产生签名数据Sig_XsDex(步骤S167),并将签名数据Sig_XsDex加到Cert_X上以产生Cert_X’(步骤S168)。
存储卡10在存储单元104的用户区域116中存储产生的Cert_X’(步骤S169)。
4.SAC建立处理1
图20和图21是流程图,示出在存储卡10和每个服务器之间建立SAC的操作,所述服务器用于服务定购和登记处理。图20和21所示的操作是图18流程图中步骤S152的细节。
这里,假设Gen()是密钥产生函数,且Y是对于系统唯一的参数。此外,假设满足(X,Gen(Y,Z))=Gen(Y,Gen(X,Z))。该密钥产生函数可以通过公知的技术实现。因此,这里就不详细描述了。
首先,存储卡10的访问控制单元109从用户区域116读取初始证书Cert_0010(步骤S201)。访问控制单元109经过输入/输出单元101、终端设备20和网络80传送初始证书Cert_0010到每个服务器。每个服务器的通信单元接收初始证书Cert_0010(步骤S202)。
每个服务器的公钥加密单元使用认证机构70的公钥PK_CA,将签名认证算法用于初始证书Cert_0010中包括的签名数据Sig_0010CA,以鉴别签名数据(步骤S203)。注意到这里假设每个服务器都知道认证机构70的公钥PK_CA。如果鉴别的结果失败(步骤S204中的否),每个服务器结束处理。如果鉴别的结果成功(步骤S204中的是),每个服务器的公钥加密单元经过控制单元从CRL存储单元读取CRL(步骤S205),并判断公钥Cert_0010中包括的ID_0010是否用CRL登记了。
如果判断ID_0010用CRL登记(步骤S206中的是),每个服务器结束处理。如果判断ID_0010没有用CRL登记(步骤S206中的否),每个服务器的公钥加密单元经过控制单元从证书管理单元读取初始证书Cert_L(步骤S207)。每个服务器经过网络80和终端设备20来传送初始证书Cert_L到存储卡10,且存储卡10的输出/输出单元101接收Cert)_L。
在接收到公钥证书Cert_L的时候,存储卡10的公钥加密单元107将签名鉴别算法用于使用认证机构70的公钥PK_CA的Cert_L中包括的签名数据Sig_LCA上,以鉴别签名(步骤S209)。注意到存储卡10知道认证机构70的公钥PK_CA。如果鉴别失败(步骤S210中的否),存储卡10结束处理。如果鉴别成功(步骤S210中的是),公钥加密单元107读取其中存储的CRL(步骤S211),并判断公钥证书Cert_L中包括的ID_L是否用CRL登记。
如果判断ID-L用CRL登记(步骤S212中的是),存储卡10结束处理。如果判断ID_L没有用CRL登记(步骤S212中的否),存储卡10继续处理。
步骤S207的处理之后,每个服务器的公钥加密单元产生随机号码Cha_B(步骤S213)。每个服务器的通信单元经过网络80和终端设备20传送随机号码Cha_B到存储卡10,且存储卡10的输入/输出单元101接收随机号码Cha_B(步骤S214)。
在接收到随机号码Cha_B的时候,存储卡10的公钥加密单元107经过访问控制单元109将随机号码Cha_B输出到TRM控制单元112。TRM控制单元112经过内部存储输入/输出单元113,从内部存储器114读取初始私钥SK_0010。TRM控制单元112使用初始私钥SK_0010将签名算法应用于随机号码Cha_B以产生签名数据Sig_a(步骤S215)。TRM控制单元112输出产生的签名数据Sig_a到访问控制单元109。
访问控制单元109经过输入/输出单元101、终端设备20和网络80传送产生的签名数据Sig_a到每个服务器,且每个服务器的通信单元接收签名数据Sig_a(步骤S216)。
接收到签名数据Sig_a的时候,每个服务器的公钥加密单元使用步骤S202接收到的Cert_0010中包括的公钥PK_0010,应用签名鉴别算法到签名数据Sig_a,以鉴别签名(步骤S217)。如果鉴别的结果失败(步骤S218的否),每个服务器结束处理。如果鉴别的结果成功(步骤S218的是),每个服务器继续处理。
同时,步骤S215的处理之后,存储卡10通过公钥加密单元107产生随机号码Cha_A(步骤S219)。公钥加密单元107通过终端设备20和网络80传送产生的随机号码Cha_A到每个服务器,且每个服务器的通信单元接收随机号码Cha_A(步骤S220)。
每个服务器的公钥加密单元接收随机号码Cha_A,并使用其中存储的私钥SK_L应用签名算法到所接收的随机号码Cha_A,以产生签名数据Sig_b(步骤S221)。每个服务器经过网络80和终端设备20传送产生的签名数据Sig_b到存储卡10,且存储卡101的输入/输出单元接收签名数据Sig_b(步骤S222)。
接收到签名数据Sig_b的时候,存储卡10的公钥加密单元107使用步骤S208中接收到的Cert_L中包括的公钥PK_L,应用签名鉴别算法到签名数据Sig_b,以鉴别签名(步骤S223)。如果鉴别的结果失败(步骤S224的否),存储卡10结束处理。如果鉴别的结果成功(步骤S224的是),存储卡10的公钥加密单元107产生随机号码“a”(步骤S225),并使用产生的随机号码“a”产生Key_A=Gen(a,Y)(步骤S226)。存储卡10经过终端设备20和网络80传送产生的Key_A到每个服务器,且每个服务器的通信单元接收Key_A(步骤S227)。
接收到Key_A,每个服务器的公钥加密单元产生随机号码“b”(步骤S228),并使用产生的随机号码“b”产生Key_B=Gen(b,Y)(步骤S229)。每个服务器的通信单元经过网络80和终端设备20传送公钥加密单元产生的Key_B到存储卡10,且存储卡10的输出/输出单元101接收Key_B(步骤S230)。
此外,每个服务器的公钥加密单元使用步骤S228中产生的随机号码“b”和步骤S227中接收的Key_A产生Key_AB=Gen(b,Key_A)=Gen(b,Gen(a,Y))(步骤S231),并输出产生的密钥Key_AB到控制单元作为会话密钥(步骤S232)。此后,每个服务器执行的处理返回图18中的步骤S153,并继续处理。
同时,步骤S230中接收到Key_B之后,存储卡10的公钥加密单元107使用Key_B以及步骤S225中产生的随机号码“a”,产生Key_AB=Gen(a,Key_B)=Gen(a,Gen(b,Y))(步骤S233),并将产生的Key_AB作为会话密钥(步骤S234)。此后,存储卡10执行的处理返回图18中的步骤S153并继续处理。
5.用于服务使用处理的操作
图22和图23是示出服务使用处理的操作的流程图。注意到图22和23所示的操作是图16中流程图的步骤S5的细节。
从终端设备20接收到内容请求的时候(步骤S301),存储卡10依照请求的内容开始应用程序A或应用程序C(步骤S302)。
存储卡10鉴别终端设备20(步骤S303),并随后执行处理以与对应于应用程序A或应用程序C的内容服务器1(30)或内容服务器2(50)建立SAC(步骤S304)。
内容服务器1(30)或内容服务器2(50)中无论哪个与存储卡10建立了SAC,均从加密内容存储单元读取加密的内容(步骤S305),且从内容密钥存储单元读取内容密钥(步骤S306)。
下面,内容服务器1(30)或内容服务器2(50)使用对于SAC共享的会话密钥来加密内容密钥,以产生加密的内容密钥(步骤S307)。内容服务器1(30)或内容服务器2(50)经过网络80和终端设备20传送加密的内容和加密的内容密钥到存储卡10,且存储卡10接收加密内容以及加密的内容密钥(步骤S308)。
存储卡10的访问控制单元109在用户区域116中存储加密的内容(步骤S309)。公钥加密单元107使用会话密钥解密加密的内容以产生内容密钥(步骤S310)。随后,访问控制单元109在安全区域115中存储解密的内容密钥(步骤S311)。
内容服务器1(30)或内容服务器2(50)产生结算请求信息(步骤S312)。内容服务器1(30)经过网络80传送产生的结算请求信息到结算服务器1(40),且内容服务器2(50)传送产生的结算请求信息到结算服务器2(40)(步骤S313)。此后,内容服务器1(30)执行的处理和内容服务器2(50)执行的处理返回图16的流程图。
结算服务器1(40)或结算服务器2(60)接收结算请求信息(步骤S401)。结算服务器1(40)或结算服务器2(60)基于接收的结算请求信息识别存储卡10,并传送结算请求到存储卡10。存储卡10接收结算请求(步骤S402)。
如果结算请求来自结算服务器1(40),存储卡10开始应用程序B,且结算请求来自结算服务器2(60),存储卡10开始应用程序D(步骤S403)。
下面,存储卡10鉴别终端设备20(步骤S404),并随后对与结算服务器1(40)或结算服务器2(60)建立SAC而执行处理(步骤S405)。
结算服务器1(40)或或结算服务器2(60)中无论哪个与存储卡10建立了SAC都产生支付量通知信息(步骤S406),并使用对SAC共享的作为加密密钥的会话密钥来加密产生的支付量通知信息,以产生加密的支付量通知信息(步骤S407)。结算服务器1(40)或结算服务器2(60)传送产生的加密支付量通知信息到存储卡10,且存储卡10接收加密支付量通知信息(步骤S408)。
存储卡10的公钥加密单元107使用会话密钥解密支付量通知信息(步骤S409),并指示访问控制单元109执行对电子货币信息相减的过程。访问控制单元109指示TRM控制单元112执行对电子货币信息的相减,且TRM控制单元112从内部存储器114中存储的电子货币信息表示的数量减去支付量(步骤S410)。
此后,存储卡10传送相减完成通知到结算服务器1(40)或结算服务器2(60),且结算服务器(40)或结算服务器2(60)接收该结算服务器2(步骤S411)。
结算服务器1(40)或结算服务器2(60)的结算单元中接受到相减完成通知的任意一个产生电子收据(步骤S412),并使用会话密钥加密产生的电子收据,以产生加密的电子收据(步骤S413)。结算服务器1(40)或结算服务器2(60)传送加密的电子收据到存储卡10,且存储卡10接收加密的电子收据(步骤S414)。
存储卡10的公钥加密单元107使用会话密钥解密加密的电子收据(步骤S415),并在安全区域115中存储电子收据(步骤S416)。
通过存储卡10、结算服务器1(40)以及结算服务器2(60)执行的处理返回图16中的流程图。
6.SAC建立处理2
图24、25和26是流程图,示出存储卡10和每个服务器为了使用服务而建立SAC所执行的操作。图24、25和26所示的操作是图22流程图中步骤S304以及图23中流程图步骤S405的细节。
这里,假设Gen()是密钥产生函数,且Y是对于系统唯一的参数。此外,假设满足(X,Gen(Y,Z))=Gen(Y,Gen(X,Z))。
首先,存储卡10读取用户区域116中存储的公钥证书Cert_X’(步骤S601)。这里,X是A、B、C或D,且存储卡10读取对应于正在运行的应用程序的公钥证书。
存储卡10经过终端设备20和网络80传送Cert_X’到每个服务器,且每个服务器的通信单元接收该Cert_X’(步骤S602)。
每个服务器鉴别接收的Cert_X’中包括的签名数据1,并且判断该签名数据1是否是服务器自身的(步骤S603)。如果鉴别失败(步骤S604中的否),服务器结束处理。如果鉴别成功(步骤S604中的是),则服务器使用与存储卡10的公钥PK_0010来鉴别Cert_X’中包括的签名数据2。
如果鉴别失败(步骤S606中的否),服务器结束处理。如果鉴别成功(步骤S606中的是),则服务器使用登记信息检查Cert_X’中包括的服务ID以及成员号码(步骤S705)。如果存储卡10没有登记(步骤S706中的否),服务器结束处理。
存储卡肯定登记了(步骤S706中的是),服务器从证书管理单元读取自己的初始证书Cert_L(步骤S707)。服务器经过网络80和终端设备20传送初始证书Cert_L到存储卡10,且存储卡10接收Cert_L(步骤S708)。
接收到初始证书Cert_L时,存储卡10的公钥加密单元107使用认证机构70的公钥PK_CA鉴别Cert_L中包括的签名数据Sig_LCA(步骤S709)。如果鉴别的结果失败(步骤S710的否),存储卡10结束处理。如果鉴别的结果成功(步骤S710中的是),公钥加密单元107经过访问控制单元109从用户区域116读取CRL(步骤S711),并判断初始证书Cert_L中包括的ID_L是否用CRL登记(步骤S712)。
如果判断ID_L用CRL登记(步骤S712中的是),存储卡10结束处理。如果判断ID_L没有用CRL登记(步骤S712中的否),存储卡10继续处理。
步骤S707的处理之后,每个服务器的公钥加密单元产生随机号码Cha_D(步骤S713)。每个服务器经过网络80和终端设备20传送随机号码Cha_D到存储卡10,且存储卡10接收随机号码Cha_D(步骤S714)。
接收到Cha_D的时候,存储卡10的公钥加密单元107计算
R=(rx,ry)=Cha_D*G(步骤S715),
并通过下式计算S
S×Cha_D=m+rx×SK_X(mod q)(步骤S716)。
这里,q是椭圆曲线E的阶,m是存储卡10传送给每个服务器的信息,且SK_X是存储卡10的私钥,其对应于每个应用程序,即对应于每个服务器。
存储卡10从获得的R1和S产生签名数据Sig_d=(R1,S)(步骤S717),并输出产生的签名数据Sig_d和信息m到每个服务器,且服务器接收签名数据Sig_d和信息m(步骤S718)。
每个服务器的公钥加密单元计算
m*G+rx*PK_X,
还计算
S*R1(步骤S719)。
公钥加密单元判断是否满足S*R1=m*G+rx*PK_X,以识别传送签名数据Sig_d和消息m的存储卡10(步骤S720)。此等式可以从下面的式子推导出来:
S*R1={((m+rx×SK_X)/Cha_D)×Cha_D}*G
=(m+rx×SK_X)*G
=m*G+(rx×SK_X)*G
=m*G+rx*PK_X。
如果S*R1≠m*G+rx*PK_X(步骤S720中的否),每个服务器结束处理。如果S*R1=m*G+rx*PK_X(步骤S720中的是),每个服务器继续处理。
同时,在步骤S718中传送Sig_d和m到每个服务器之后,存储卡10的公钥加密单元107产生随机号码Cha_E(步骤S721),并经过终端设备20和网络80传送产生的随机号码Cha_E到每个服务器。每个服务器的通信单元接收Cha_E(步骤S722)。
经过控制单元接收到随机号码Cha_E的时候,每个服务器的公钥加密单元计算
R2=(rx,ry)=Cha_E*G(步骤S723),
并通过下式计算S’:
S’×Cha_E=m’+rx×Ks_X(mod q)(步骤S724)。这里m’是每个服务器传送给存储卡10的消息,且Ks_X是每个服务器的私钥。
每个服务器从获得的R2和S’产生签名数据Sig_e=(R2,S’),并输出产生的签名数据Sig_e和消息m’到存储卡10。存储卡10接收签名数据Sig_e和消息m’(步骤S726)。
存储卡10的公钥加密单元107计算
m’*G+rx*Kp_X(步骤S731)。这里Kp_X是通过计算Kp_X=Ks_X*G产生的每个服务器的公钥。
公钥加密单元107还计算
S’*R2(步骤S731)。
公钥加密单元107判断是否满足S*R2=m*G+rx*Kp_X,以识别传送了签名数据Sig_e和消息m’的服务器(步骤S732)。此等式可以从下式推导出:
S*R2={((m’+rx×Ks_X)/Cha_E)×Cha_E}*G
=(m’+rx×Ks_X)*G
=m’*G+(rx×Ks_X)*G
=m’*G+rx*Kp_X。
如果S*R2≠m*G+rx*Kp_X(步骤S732中的否),存储卡10结束处理。如果S*R2=m*G+rx*Kp_X(步骤S732中的是),公钥加密单元107产生随机号码“d”(步骤S733),并使用随机号码“d”产生Key_D=Gen(d,Y)(步骤S734)。存储卡10经过终端设备20和网络80传送用公钥加密单元107产生的Key_D到每个服务器,且每个服务器的通信单元接收Key_D(步骤S735)。
接收到Key_D的时候,每个服务器的公钥加密单元产生随机号码“e”(步骤S736),并使用随机号码“e”产生Key_E=Gen(e,Y)(步骤S737)。每个服务器的通信单元经过终端设备20和网络80传送产生的Key_E到存储卡10,且存储卡10接收Key_E(步骤S738)。
每个服务器的公钥加密单元使用步骤S736产生的随机号码“e”和步骤S735接收到的Key_D来产生Key_DE=Gen(e,Key_D)=Gen(e,Gen(d,Y))(步骤S741),并输出产生的Key_DE到控制单元作为会话密钥(步骤S742)。此后,每个服务器继续处理,返回图22或图23。
同时,在步骤S738中接收到Key_E时,存储卡10的公钥加密单元107使用Key_E以及步骤S733中产生的随机号码“d”产生Key_DE=Gen(d,Key_E)=Gen(d,Gen(e,Y))(步骤S739),并将产生的Key_DE作为会话密钥(步骤S740)。此后,存储卡10继续处理,返回图22或图23。
7.终端设备20的鉴别
图27是流程图,示出存储卡10执行的终端设备20的鉴别。注意到图27中的操作示出图18中流程图步骤S151,图22中流程图的步骤S303和图23中流程图的步骤S404的细节。
存储卡10的鉴别单元106产生随机号码R_0(步骤S501)。鉴别单元106在其中保存产生的随机号码R_0并还输出随机号码R_0到终端设备20。终端设备20接收随机号码R_0(步骤S502)。
接收到随机号码R_0之后,终端设备20的鉴别单元205使用随机号码R_0作为加密密钥将加密算法E用于其中存储的鉴别密码PW_0,以产生密文E2(步骤S503)。同时,鉴别单元106使用步骤S501产生的随机号码R_0作为加密密钥将加密算法E用于与终端设备20共享的鉴别密码PW_0,以产生密文E1(步骤S504)。
终端设备20的鉴别单元205输出步骤S503产生的密文E2到存储卡10,且存储卡10接收密文E2(步骤S505)。接收到密文E2的时候,存储卡的鉴别单元106比较接收的密文E2和步骤S504产生的密文E1(步骤S506)。
如果密文E1和密文E2一样(步骤S507的是),就表示存储卡10在终端设备20的鉴别中成功,且鉴别单元106输出信号到命令处理单元105,该信号表示“鉴别成功”(步骤S508)。
如果密文E1和密文E2不一样(步骤S507中的否),这就表示存储卡10在终端设备20的鉴别中失败,且鉴别单元106输出信号到命令处理单元105,该信号表示“鉴别不成功”(步骤S509),并结束处理。
<其他变形>
本发明基于上面的实施例而描述。然而,上述的仅是实现本发明的一个实施例,且本发明不限于此。下面的变形例子同样包括在本发明之中。
(1)在上述实施例中,存储卡10具有这样的结构,其用于对每个应用程序产生一对私钥和公钥。然而,这个结构并不是必须的。存储卡10可以获得一对外部设备产生的私钥和公钥,诸如是由认证机构产生的。
(2)在上述实施例中,存储卡10具有不加密内容密钥而存储内容密钥的结构。然而,这个结构并不是必须的。存储卡10可以用会话密钥解密加密的内容密钥,并在存储内容密钥之前以另一密钥来加密内容密钥。
(3)上述实施例具有这样的结构,其中存储加密内容的区域和用于解密加密内容的解密单元包括在存储卡10中。然而,这种结构不是必须的。本发明可以具有这样一种结构,其中存储加密内容的区域和用于解密加密内容的解密单元包括在终端设备20中。使用存储卡10和终端设备20之外设备的任何结构,以及例如便携介质也是可以接受的,只要它们可以实现与上述实施例的一样的功能。
如果在这种情况下,本发明可以构建为安全地执行通过存储卡10和终端设备20所执行的内容接收和传送,且存储卡10和所述其他设备和便携介质通过SAC进行内容接收和传送。
(3)上述实施例具有这样一种结构,其中存储卡10插入终端设备20,且存储卡10从每个服务器经过终端设备20接收服务。然而,本发明可以具有这样一种结构,其中终端设备20通过自身与每个服务器建立SAC并从每个服务器接收服务。此外,具有与存储卡10一样的功能的LSI可以在终端设备20中实现。
(4)上述实施例具有通过公钥密码系统建立SAC的结构。然而,本发明不限于此。可以使用共同密钥密码系统而不是公钥密码系统。
如果是这种情况,将采用使用共同密钥密码系统的MAC(消息鉴别码)的产生/鉴别而不是采用签名的产生/鉴别。MAC的产生/鉴别可以使用非专利文献1公开的公知技术来实现。
(5)在上述实施例中,存储卡10鉴别每个服务器的签名数据,并基于鉴别结果存储从服务器接收到的公钥证书Cert_A、Cert_B、Cert_C和Cert_D。然而,这种结构并不是必须的。本发明包括其中存储卡存储公共证书而不鉴别签名数据的结构(即,忽略图18中的步骤S165和图19中的S166)。
(6)上述实施例具有这样的结构,其中存储卡10将其自己的签名数据(实施例中的“签名数据2”)加到从每个服务器获得的公钥证书Cert_A、Cert_B、Cert_C或Cert_D上,以产生Cert_A’、Cert_B’、Cert_C’和Cert_D’。因此,在使用服务的时候,每个服务器可以通过鉴别签名数据1和签名数据2来判断Cert_A’、Cert_B’、Cert_C’或Cert_D’是不是服务器所提供的证书,以及存储卡是否是有效的设备。
然而,此结构并非必须。存储卡10可以在其中存储公共证书Cert_A、Cert_B、Cert_C和Cert_D而不执行任何处理。如果是这种情况,每个服务器仅鉴别签名数据1以提供服务。
在上述实施例中,添加签名数据2的情况下,可以具有这样一种结构,其中在建立SAC中省略质询响应鉴别。
此外,存储卡10可以选择是否添加签名数据2,或执行SAC建立中的质询响应鉴别,或执行签名数据2的添加以及建立SAC中质询响应鉴别的两者,并依照所选方法执行控制。
(7)在上面的实施例中,通过终端设备20的再现单元206执行内容解码。然而,解码可以在存储卡10中执行。
(8)在上述实施例中,内容服务器和结算服务器分别从独立的两个设备构建而成。然而,本发明包括这样一种情形,其中使用包括两个服务器的功能的一个服务器。此外,内容服务器和结算服务器可以经过LAN彼此通信,且每个服务器和存储卡10可以经过网络80彼此通信。此外,一个设备可以具有分别对应于多个应用程序的多个功能。
(9)本发明可以是上面示出的方法。此外,该方法可以是计算机实现的计算机程序,并且可以是计算机程序的数字信号。此外,本发明可以是计算机可读记录介质装置,诸如软盘、硬盘、CD-ROM(紧凑只读盘存储器),以及MO(磁光盘)、DVD、DVD-ROM、DVD RAM、BD(蓝光光盘)或半导体存储器,其存储计算机数字信号。此外,本发明可以是记录在任意一个上述记录介质装置上的计算机程序或数字信号。
此外,本发明可以是在电通信线路、无线或有线通信线路、或在网络上传送的计算机程序或数字信号,其中网络的代表性例子是互联网。
此外,本发明可以是包括微处理器和存储器的计算机系统,该存储器存储计算机程序,且微处理器依照计算机程序操作。
此外,通过传送程序或数字信号到记录介质装置上,或通过网络等传送程序或数字信号,程序或数字信号可以通过另一独立计算机系统执行。
(10)如图28所示,上面实施例中存储卡10的所有功能块可以实现为LSI 1000。此外,部分功能块可以实现为LSI。每个功能可以分别实现为一片芯片,或部分或全部功能可以实现为一片芯片。这里描述的LSI中的任意一个可以依照集成度而称作IC、系统LSI、超大LSI、或甚大LSI。
此外,集成电路并不限于LSI,而可以实现为专用电路或通用电路。可以使用在制造LSI之后可以编程的FPGA(现场可编程门阵列),或可以使用可重新配置的处理器,其中LSI中电路元件的连接和设置是可重新配置的。
此外,如果由于半导体技术的发展或其改变,使得出现了取代LSI的集成电路技术,则该技术可以用于功能块的集成。生物技术是一种可能的应用。
(11)此外,本发明可以是上述实施例和修改的任意组合。