信息安全装置和信息安全系统的制作方法

文档序号:7946919阅读:280来源:国知局
专利名称:信息安全装置和信息安全系统的制作方法
技术领域
本发明涉及一种用于实现安全可靠的发送和接收内容的技术。
背景技术
当终端设备使用内容供应者提供的服务时,终端设备和属于内容供应者的服务器执行双向验证。如果双向验证成功,终端设备和服务器共享私有密钥,由此建立所谓的SAC(安全验证通道),这是安全的数据传输通道。终端设备和服务器彼此之间经由SAC发送和接收内容。这样的技术被专利文献1公开。
最近几年中,内容服务供应者的数量正在增加。因此,需要一种系统,以支持一个终端设备使用多个内容供应者所提供的服务的情况。
专利文献1日本已公开专利文献No.11-234259。

发明内容
因此本发明的目的是提供一种信息安全装置和信息安全系统,用于一个终端设备使用多个内容供应者提供服务的情况。
上述目的通过信息安全装置实现,该信息安全装置基于满足条件的一组整数的逆运算的复杂性,以安全可靠的形式管理信息,该信息安全装置包括私有密钥产生单元,用于产生私有密钥;参数接收单元,用于接收分别确定多个条件的多个参数,以及公共密钥产生单元,用于利用私有密钥,从满足多个参数确定的多个条件的多组整数中,产生公共密钥。
通过所述的结构,信息安全装置从私有密钥中产生多个公共密钥。因此,在产生多个公共密钥的情况下,该结构具有的优势是,应当产生和管理的密钥数比传统设备要少,在传统设备中,私有密钥和公共密钥彼此一一对应。
这里,信息安全装置可以经由网络连接至多个服务器,可以分别从多个服务器接收多个参数,且这些参数彼此不同,公共密钥产生单元可以利用各个参数,产生彼此不同的多个公共密钥。
通过所述的结构,信息安全装置通过从各个服务器接收不同的多个参数,从一个私有密钥产生不同的多个公共密钥。因此,该结构具有的优势是,应当产生和管理的密钥的个数比传统设备的要少,在传统设备中,对于每个与设备通信的服务器,产生一对私有密钥和公共密钥。
这里,信息安全装置可以还包括公共密钥发送单元,用于将公共密钥发送至各个源服务器,这些源服务器是各个参数的来源;公共密钥证书接收单元,用于从各个服务器接收公共密钥证书,每个公共密钥证书包括每个公共密钥和每个服务器的签名;以及密钥存储单元,用于存储私有密钥和公共密钥证书。
通过所述的结构,信息安全装置的密钥存储单元中存储的密钥数小于传统设备的密钥数,传统设备中,对于每个与设备通信的服务器,储存一对私有密钥和公共密钥。这意味着可以减少存储区的容量,因此可以减少费用。
这里,信息安全装置还包括内容请求单元,用于从密钥存储单元读出多个公共密钥证书中的一个,并将包括读出的公共密钥证书的内容请求发送至源服务器,该源服务器已经发布读出的公共密钥证书;以及内容获取单元,用于利用私有密钥和读出的公共密钥证书中包含的公共密钥,以安全可靠的方式从源服务器获取内容。
通过所述的结构,信息安全装置可以通过从存储的多个公共密钥证书中选择一个公共密钥证书,并利用一个私有密钥和所选择的公共密钥证书中包含的公共密钥,以安全的方式从相应的服务器接收内容。
这里,内容获取单元包括验证单元,用于将签名数据发送至源服务器,其中该签名数据利用私有密钥产生,并利用公共密钥由源服务器验证,该验证单元也用于验证源服务器;密钥共享单元,如果验证单元执行的验证成功,用于与源服务器共享密钥信息;接收单元,用于从源服务器接收加密的内容,该内容基于密钥信息加密;以及解密单元,用于基于密钥信息对加密的内容进行解密。
通过所述的结构,信息安全装置,通过执行与服务器的双向验证,以及验证后以安全方式共享密钥信息来建立与服务器的安全数据发送通道。
这里,密钥存储单元可以是插入在信息安全装置中的便携式存储卡。公共密钥产生单元可以将私有密钥和公共密钥证书写入便携式存储卡,该便携式存储卡可以包括安全存储区,该存储区可以防止外部篡改和破译,并且该安全存储区存储私有密钥。
通过所述的结构,信息安全装置中包括的存储设备通过便携式存储卡实现。该信息安全装置可以通过在存储卡包含的防篡改模块中存储私有密钥,来以安全的方式持有私有密钥。
这里,信息安全装置还包括存储卡验证单元,用于当存储卡插入信息安全装置时,验证存储卡;禁止写入单元,如果存储卡验证单元执行的验证失败,则用于禁止公共密钥产生单元将私有密钥和公共密钥证书写入存储卡。
通过所述的结构,信息安全装置仅当存储卡的验证成功时,将私有密钥和公共密钥证书写入存储卡。因此,该结构防止私有密钥被写入未授权的存储卡以及被暴露。
这里,信息安全装置的安全性可以基于椭圆曲线离散对数问题,参数接收单元接收参数,这些参数组成椭圆曲线。公共密钥产生单元通过对于每个参数,在私有密钥上利用椭圆曲线执行乘法,可以产生公共密钥。
通过所述的结构,信息安全装置能够利用提供高安全性的椭圆曲线密码系统,以安全可靠的方式,获取内容。
这里,信息安全装置的安全性基于RSA密码系统,私有密钥产生单元产生私有密钥d,参数接收单元接收多组质数(P,Q)作为参数,公共密钥产生单元通过对于每组质数,计算N=PQ以及还从ed=1mod(P-1)(Q-1)中计算e,来产生多组公共密钥(N,e)。
通过所述的结构,信息安全装置利用RSA密码系统作为公共密钥密码系统,因此,本发明可以通过多种用途的计算机系统实现。


图1表示信息安全系统1的结构;图2是表示终端设备10的结构的功能结构图;图3A表示密码表120的数据结构;图3B表示CRL130的数据结构;图4是表示存储卡20的结构的功能结构图;图5是表示服务器30的结构的功能结构图;图6是表示信息安全系统1执行的整体操作的流程图,该流程图延续至图15;图7是表示用于验证存储卡20、由终端设备10执行的操作的流程图;图8是表示用于发布公共密钥证书,由认证机构(CA)和每个设备(终端设备,服务器30,服务器40和服务器50)执行的操作的流程图;图9A表示公共密钥证书140的数据结构(Cert_0010);图9B表示公共密钥证书150的数据结构(Cert_0030);图9C表示公共密钥证书160的数据结构(Cert_0040);图9D表示公共密钥证书170的数据结构(Cert_0050);图10是表示终端设备10和服务器在预约服务和注册时、执行的操作的流程图,该流程图延续至图11中的流程图;图11是表示终端设备10和服务器在预约服务和注册时、执行的操作的流程图,该流程图是图10的延续;图12A表示由服务器30向终端设备10发布的公共密钥证书210(Cert_A)的数据结构;图12B表示由服务器40向终端设备10发布的公共密钥证书220(Cert_B)的数据结构;图12C表示由服务器50向终端设备10发布的公共密钥证书230(Cert_C)的数据结构;图13是表示由终端设备10和服务器在预约服务和注册时执行的、用于SAC建立的处理的操作的流程图,该流程图延续至图14;图14是表示由终端设备10和服务器在预约服务和注册时执行的、用于SAC建立的处理的操作的流程图,该流程图是图13的延续;图15是表示信息安全系统1执行的整体操作的流程图,该流程图是图6的延续;图16是表示由终端设备10和服务器在使用服务时执行的、用于SAC建立的处理的操作的流程图,该流程图延续至图17;图17是表示由终端设备10和服务器在使用服务时执行的、用于SAC建立的处理的操作的流程图,该流程图是图16的延续,并延续至图18;图18是表示由终端设备10和服务器在使用服务时执行的、用于SAC建立的处理的操作的流程图,该流程图是图17的延续;以及图19是表示为了产生椭圆曲线的系统参数、由认证机构执行的操作的流程图。
发明的最佳实施方式这里描述作为本发明实施例的信息安全系统1。信息安全系统1是其中一个终端设备使用多个内容供应者提供的服务的系统。
下面参照附图,描述信息安全系统1。
结构图1表示信息安全系统1的结构。如图1所示,信息安全系统1包括终端设备10,存储卡20,服务器30,服务器40和服务器50。将存储卡20插入终端设备10的存储卡槽后可使用。终端设备10和服务器30,40和50彼此经由网络60连接。网络60例如是因特网。
终端设备10和存储卡20属于使用内容分发服务的用户。每个服务器30,40和50属于不同的内容供应者。内容供应者提供给用户内容分发服务。
终端设备10,存储卡20,服务器30,40和50以安全可靠的方式处理内容。因此,这些设备有时通常称为信息安全装置。
1、终端设备10接下来详细描述终端设备10的结构。
图2是功能性地表示终端设备10的结构的功能结构图。如图2所示,终端设备10包括通信单元101,操作输入单元102,控制单元103,存储卡输入/输出单元104,存储卡验证单元105,CRL存储单元106,公共密钥加密单元107,存储单元108和再现单元109。
终端设备10更具体的是计算机系统,该系统包括微处理器,ROM,RAM,硬盘,驱动单元,网络连接单元,MPEG解码器,MPEG编码器,存储卡槽等等。
(1)通信单元101通信单元101是包括网络浏览器的网络连接单元。通信单元101经由网络60连接至服务器30,40和50。
通信单元101经由网络60从服务器30接收信息,并将接收的信息输出至控制单元103。通信单元101也从控制单元103接收信息,并经由网络60将接收的信息输出至服务器30。同样,通信单元101经由网络60从服务器40接收信息,并将接收的信息输出至控制单元103。通信单元101也从控制单元103接收信息,并经由网络60将接收的信息输出至服务器40。同样,通信单元101经由网络60从服务器50接收信息,并将接收的信息输出至控制单元103。通信单元101也从控制单元103接收信息,并经由网络60将接收的信息输出至服务器50。
这里,通信单元101发送至每个服务器的信息更具体的是预约服务请求、使用服务请求、用于在终端设备10和每个服务器之间建立SAC的签名数据、密钥信息、等等。通信单元101从每个服务器接收的信息更具体的是用于和每个服务器建立SAC的签名数据、密钥信息、用于椭圆曲线的系统参数、执行验证和密钥共享后从每个服务器发送的内容,等等。
此外,通信单元101经由网络60连接至认证机构(下文称为“CA”)。通信单元101以下述方式将信息发送至CA并从CA接收信息。
通信单元101始终保存从CA接收的最新的CRL(证书撤销列表),并经由控制单元103在CRL存储单元106中存储接收的最新的CRL。
通信单元101经由控制单元103从公共密钥加密单元107接收公共密钥“PK_0010”,并将接收的公共密钥发送至CA。通信单元101也接收公共密钥证书“Cert_0010”,并将接收的公共密钥证书输出至控制单元103,其中该公共密钥证书“Cert_0010”对应于来自CA的公共密钥“PK_0010”在该说明书中,“用于椭圆曲线的系统参数是椭圆曲线Ey2=x3+ax2+b中包含的“a”和“b”,质数“p”,质数p的阶数“q”,以及椭圆曲线E上的任意点(基点)“G”。
(2)操作输入单元102操作输入单元102包括,例如用于接收用户操作的按钮。基于接收的用户操作,操作输入单元102产生对应于接收的操作的操作信号,并将产生的操作信号输出至控制单元103。
这里,操作信号更具体的是,代表预约服务请求的信号,代表使用服务请求的信号,等等。
(3)控制单元103控制单元103包括微处理器,ROM,RAM等等。控制单元103利用执行计算机程序的微处理器,通过执行下述处理,来控制整个终端设备10。
(a)从存储卡输入/输出单元104接收信号,该信号指示检测到插入存储卡20,控制单元103向存储卡验证单元105输出指令,以执行存储卡20的验证。
(b)基于从存储卡验证单元105接收的代表“验证通过”的信号,控制单元103从CA接收公共密钥证书。更具体地,控制单元103经由通信单元101发送公共密钥加密单元107输出的公共密钥“PK_0010”和控制单元103中预先存储的控制单元103自身的设备ID“ID_0010”至CA。控制单元103经由通信单元101从CA接收对应于公共密钥“PK_0010”的公共密钥证书“Cert_0010”,并经由存储卡输入/输出单元104将接收的公共密钥证书输出至存储卡20。
(c)控制单元103从操作输入单元102接收操作信号,并根据接收的操作信号执行处理。
例如,基于从操作输入单元102接收的操作信号,其中该操作信号指示用于预约服务器30,服务器40或服务器50提供的服务的预约服务请求,控制单元103向存储卡输入/输出单元104输出指令,以从存储卡20读出公共密钥证书“Cert_0010”,并将指令输出至公共密钥加密单元107,以建立SAC,并将指令输出至公共密钥加密单元107,以执行预约服务。
基于从操作输入单元102接收的信号,其中该信号指示利用服务器30,服务器40或服务器50提供的服务的使用服务请求,控制单元103输出指令至存储卡输入/输出单元104,以读出用于服务SK的私有密钥和从对应于来自存储卡20的请求的服务器接收的公共密钥证书。此外,控制单元103输出指令至公共密钥加密单元107,以建立SAC,并输出指令至公共密钥加密单元107,以获取内容。
(d)在终端设备10和服务器30,服务器40或服务器50之间建立SAC后,控制单元103在终端设备10和每个服务器之间发送和接收信息时,从公共密钥加密单元107接收会话密钥。将接收的会话密钥用作加密密钥或解密密钥,用于对发送至服务器的信息进行加密,或者对从服务器接收的加密信息进行解密。
(4)存储卡输入/输出单元104存储卡输入/输出单元104包括存储卡槽。基于检测到存储卡20插入存储卡槽,存储卡输入/输出单元向控制单元103输出代表检测到的信号。存储卡输入/输出单元104在存储卡20插入存储卡槽的状态下,也执行控制单元103和存储卡20之间的信息的输入和输出。
(5)存储卡验证单元105存储卡验证单元105包括微处理器,ROM,RAM等等。ROM或RAM存储如图3A所示的密码表120。
密码表120包括一个或多个密码信息组。每个密码信息组包括存储卡号码和验证密码。存储卡号码用于在存储卡插入终端设备10的状态下,识别存储卡可用。在终端设备10和存储卡之间共享验证密码,其中该存储卡由对应于验证密码的存储卡号码识别。验证密码是用于验证存储卡的256位的数据。
从控制单元1 03接收信号,该信号指示存储卡20插入存储卡输入/输出单元104,存储卡验证单元105从密码表120读出对应于存储卡20的密码信息组121,并从密码信息组121读出验证密码PW_0。存储卡验证单元105也产生56位的随机数R_0。存储卡验证单元105将产生的随机数R_0经由控制单元103和存储卡输入/输出单元104输出至存储卡20。同时,存储卡验证单元105利用随机数R_0作为加密密钥,将加密算法E应用于验证密码PW_0,以产生加密的文本E1。然后,存储卡验证单元105存储产生的加密文本E1。这里,加密算法E例如是DES(数据加密标准)。
经由控制单元103和存储卡输入/输出单元104从存储卡20接收加密文本E2,存储卡验证单元105将接收的加密文本E2和存储的加密文本E1进行比较。如果E1和E2相同,存储卡验证单元105输出代表“验证通过”的信号至控制单元103,如果E1和E2不同,则存储卡验证单元105输出代表“验证失败”的信号至控制单元103。
(6)CRL存储单元106CRL存储单元106包括RAM,并在其中存储CRL。CRL是无效设备的列表,诸如已经执行未授权操作的设备和私有密钥已经暴露的设备。
CRL由CA管理。终端设备10经由网络60从CA接收CRL,并在CRL存储单元106中存储CRL。这里,终端设备10始终保存从CA中接收的最新的CRL。终端设备10将CRL存储单元106中已经存储的旧CRL用更新的CRL替代。
CRL的细节公开在American National Standards Institute,American National Standard for Financial Services,ANSX9.57PublicKey Cryptography for the Financial IndustryCertificateManagement,1997。
(7)公共密钥加密单元107
公共密钥加密单元107包括微处理器,ROM,RAM,随机数发生器,等等。
在向服务器30,40和50发送预约服务请求时,公共密钥加密单元107执行用于建立与每个服务器的SAC的处理。并且,在向服务器30,40和50发送使用服务请求时,公共密钥加密单元107执行用于建立与每个服务器的SAC的处理。这里使用的公共密钥密码系统是椭圆曲线密码系统和RSA密码系统。
椭圆曲线离散对数问题接下来描述椭圆曲线离散对数问题,其用于椭圆曲线密码系统安全性的基础。
假设E(GF(p))是定义在有限域GF(p)上的椭圆曲线,当椭圆曲线E的阶数被一个大的质数整除时,椭圆曲线E上的基点G则设定为基点。这样,离散对数问题用于计算满足下述方程且存在的整数x;Y=x*G,其中Y是椭圆曲线E上的给定的元素。
这里,p是质数,GF(p)是包括p元素的有限域。在该说明书中,符号“*”代表椭圆曲线中包含的元素重复相加,“x*G”意思是以下述方程所示的方式,将椭圆曲线中包含的基点G相加x次,x*G=G+G+G+...+G因为用于包含大量元素的有限域GF(p)的离散对数问题非常难,因此公共密钥密码系统的安全性基于离散对数问题。
离散对数问题的细节公开在Neal Koblitz,“A Course in NumberTheory and Cryptography”,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={(3x12+a)/2y1}2-2x1,y3={(3x12+a)/2y1}(x1-x3)-y1。
注意,上述的运算是有限域上的运算,其中椭圆曲线定义在该有限域上。利用椭圆曲线的计算公式的细节在“Efficient Elliptic CurveExponentiation”in Miyaji,Ono and Cohen,Advances inCryptology-Proceedings of ICICS’97,Lecture Notes in ComputerScience,pp.282-290,Springer-Verlag;1997中描述。
预约服务请求下面描述当终端设备10向服务器30发送预约服务请求时的公共密钥加密单元107。公共密钥加密单元107从控制单元103接收随机数R_0010,并存储接收的随机数。随机数R_0010是终端设备10自身的私有密钥,用于建立SAC。注意,随机数R_0010存储在存储卡20的安全区中,它经由存储卡输入/输出单元104从控制单元103读出。公共密钥加密单元107将RSA密码系统用作公共密钥密码系统的算法,并在终端设备10和服务器30之间建立SAC。后面描述细节。利用SAC,公共密钥加密单元107经由网络60,通信单元101和控制单元103从服务器30接收用于椭圆曲线的系统参数“a1,b1,p1,q1和G1”。作为具体示例,给定下面的值作为参数。
a1=-3b1=16461p1=20011q1=20023G1=(1,7553)。
此外,公共密钥加密单元107产生用于服务SK的私有密钥。公共密钥加密单元107利用产生的用于服务SK的私有密钥和系统参数,计算公共密钥PK_A=SK*G1(mod p1)。公共密钥加密单元107经由控制单元103和存储卡输入/输出单元104,在存储卡20中存储产生的SK,并经由控制单元103,通信单元101和网络60,利用与服务器30建立的SAC,将计算的公共密钥PK_A发送至服务器30。
下面描述当终端设备10向服务器40发送预约服务请求时的公共密钥加密单元107。公共密钥加密单元107从控制单元103接收随机数R_0010,并利用RSA密码系统,建立与服务器40的SAC,其中随机数R_0010是终端设备10自身的私有密钥。基于建立的SAC,公共密钥加密单元107从控制单元103接收用于服务SK的私有密钥,并利用已经与服务器40建立的SAC,经由网络60,通信单元101和控制单元103从服务器40接收用于椭圆曲线的系统参数“a2,b2,p2,q2和G2”。
作为具体示例,给定下面的值作为参数。
a2=-3b2=16461p2=20011q2=20023G2=(18892,5928)。
公共密钥加密单元107基于接收的SK和系统参数计算公共密钥PK_=SK*G2(mod p2),并经由控制单元103,通信单元101和网络60,利用与服务器40建立的SAC,将计算的公共密钥PK_B发送至服务器40。
下面描述当终端设备10向服务器50发送预约服务请求时的公共密钥加密单元107。公共密钥加密单元107从控制单元103接收随机数R_0010,并利用RSA密码系统建立与服务器50的SAC,其中随机数R_0010是终端设备10自身的私有密钥。基于建立SAC,公共密钥加密单元107从控制单元103接收SK,并利用已经与服务器50建立的SAC,经由网络60,通信单元101和控制单元103从服务器50接收用于椭圆曲线的系统参数“a3,b3,p3,q3和G3”。
作为具体示例,给定下面的值作为参数。
a3=-3b3=16461
p3=20011q3=20023G3=(8898,13258)。
公共密钥加密单元107基于SK和这些系统参数,计算公共密钥PK_C=SK*G3(mod p3),并经由控制单元103,通信单元101和网络60,利用与服务器50建立的SAC,将计算的公共密钥PK_C发送至服务器50。
如上所述,利用在向服务器30发送预约服务请求时产生的用于服务SK的一个私有密钥和从服务器接收的各个系统参数组,终端设备10产生与服务器一一对应的三个公共密钥PK_A,PK_B,PK_C。这里,在分别从服务器接收的系统参数组中,基点G1,G2和G3彼此不同,因此由终端设备10产生的三个公共密钥彼此不同。
使用服务请求下面描述当终端设备10向服务器30发送使用服务请求时的公共密钥加密单元107。公共密钥加密单元107从控制单元103接收SK,Cert_A和Pk_30,并利用椭圆曲线密码系统作为公共密钥密码系统的算法,建立与服务器30的SAC。SK是用于终端设备10的服务的私有密钥,它存储在存储卡20的安全区。如图12A所示的Cert_A是从服务器30向终端设备10发布的公共密钥证书。Cert_A包括终端设备10向服务器30释放的公共密钥PK_A,以及服务器30产生的签名数据。Cert_A存储在存储卡20的公共密钥存储区204c中。Pk_30是服务器30的公共密钥,它存储在存储单元108中。后面描述用于建立SAC的处理的细节。
下面描述当终端设备10向服务器40发送使用服务请求时的公共密钥加密单元107。公共密钥加密单元107从控制单元103接收SK,Cert_B和Pk_40,并利用椭圆曲线密码系统作为公共密钥密码系统的算法,建立与服务器40的SAC。如图12B所示的Cert_B是服务器40向终端设备10发布的公共密钥证书。Cert_B包括终端设备10向服务器40释放的公共密钥PK_B,以及服务器40产生的签名数据。Cert_B储在存储卡20的公共密钥存储区204c中。Pk_40是服务器40的公共密钥,它存储在存储单元108中。
下面描述当终端设备10向服务器50发送使用服务请求时的公共密钥加密单元107。公共密钥加密单元107从控制单元103接收SK,Cert_C和Pk_50,并利用椭圆曲线密码系统作为公共密钥密码系统的算法,建立与服务器50的SAC。如图12C所示的Cert_C是服务器50向终端设备10发布的公共密钥证书。Cert_C包括终端设备10向服务器50释放的公共密钥PK_C,以及服务器50产生的签名数据。Cert C存储在存储卡20的公共密钥存储区204c中。Pk_50是服务器50的公共密钥,它存储在存储单元108中。
(8)存储单元108存储单元108从控制单元103接收公共密钥Pk_30,Pk_40和Pk_50,并存储接收的公共密钥。Pk_30是服务器30的公共密钥。Pk_40是服务器40的公共密钥。Pk_50是服务器50的公共密钥。
(9)再现单元109再现单元109包括音频记录器,视频记录器,缓冲器,等等。如图2所示,再现单元109连接至外部输出设备,并将解码的内容输出至外部输出设备。输出设备更具体的是监视器和扬声器。
2、存储卡20存储卡20是一种卡片形状的存储器,将利用闪存作为记录介质。图4是功能性地表示存储卡20的结构的功能结构图。如图4所示,存储卡20包括输入/输出单元201,存储控制单元202,验证单元203和存储器204。
(1)输入/输出单元201输入/输出单元201包括多个插针端子。在存储卡20插入到终端设备10的存储卡输入/输出单元104的状态下,利用多个插针端子,输入/输出单元201输出从存储卡输入/输出单元104接收的数据至存储控制单元202,并输出从存储控制单元202接收的数据至存储卡输入/输出单元104。
例如,当存储卡20插入终端设备10时,输入/输出单元201经由存储控制单元202,接收储存在验证单元203中的存储卡号码“20”,并将接收的存储卡号码“20”输出至存储卡输入/输出单元104。在后面描述信息安全系统1执行操作的部分描述输入/输出单元201发送或接收的数据。
(2)存储控制单元202根据经由输入/输出单元201从终端设备10接收的指令,存储控制单元202从存储器204读出数据。然后,存储控制单元202经由输入/输出单元201输出读出的数据至终端设备10。存储控制单元202也经由输入/输出单元201从终端设备10接收数据,并将接收的数据存储在存储器204中。
存储控制单元202经由输入/输出单元201从终端设备10接收随机数R_0,并将接收的随机数R_0输出至验证单元203。存储控制单元202也接收加密的文本E2,并将接收的E2输出至输入/输出单元201,以及经由输入/输出单元201输出至终端设备10。
(3)验证单元203验证单元203包括微处理器,ROM,RAM等等。ROM或RAM存储用于验证的计算机程序,微处理器执行该程序。注意,ROM预先存储存储卡号码“20”和验证密码“PW_0”。存储卡号码“20”用于识别存储卡20。PW_0是验证单元203和终端设备10之间共享的秘密数据,并用于验证单元203和终端设备10的存储卡验证单元105之间执行的挑战应答型验证。
验证单元203经由输入/输出单元201从终端设备10接收随机数R_0,并利用接收的随机数R_0作为私有密钥,将加密算法E应用于验证密码PW_0,以产生加密的文本E2。验证单元203经由存储控制单元202和输入/输出单元201输出产生的加密文本E2至终端设备10。
这里,加密算法E,例如是DES。
(4)存储器204存储器204,更具体的是由EEPROM等构造的存储设备。存储器204包括安全区204a,内容存储区204b和公共密钥存储区204c。
安全区204a是防篡改存储区,该存储区物理上或逻辑上都防止内部破译和篡改。安全区204a在其中存储终端设备10的私有密钥R_0010,和用于服务SK的私有密钥。注意,安全区204a的存储容量与存储器204的整个存储容量相比非常小。
内容存储区204b存储终端设备10从服务器30,服务器40和服务器50获取的内容。
公共密钥存储区204c在其中存储从CA获取的公共密钥证书Cert_0010,从服务器30获取的公共密钥证书Cert_A,从服务器40获取的公共密钥证书Cert_B,以及从服务器50获取的公共密钥证书Cert_C。
3、服务器30服务器30是属于内容供应者的设备。基于从终端设备10接收的预约服务请求,服务器30注册终端设备10,其中终端设备10经由网络60连接至服务器30。基于从已经注册的终端设备10接收的使用服务请求,服务器30向终端设备10提供内容。
图5是功能性地表示服务器30的结构的功能结构图。如图5所示,服务器30包括通信单元301,控制单元302,CRL存储单元303,Cert管理单元304,注册信息管理单元305,公共密钥加密单元306和内容存储单元307。
服务器30,更具体的是包括微处理器,ROM,RAM,硬盘单元等的计算机系统。
(1)通信单元301通信单元301是用于网络连接的单元,包括网络浏览器。通信单元301经由网络60连接至终端设备10。
通信单元301从终端设备10接收信息,并将接收的信息输出至控制单元302。通信单元301也从控制单元302接收信息,并将接收的信息输出至终端设备10。
通信单元301从终端设备10接收的信息,更具体的是公共密钥PK_A,用于建立SAC的签名数据,密钥信息,等。通信单元301输出至终端设备10的信息,更具体的是公共密钥证书Cert_A,用于建立SAC的签名数据,密钥信息,用于椭圆曲线的系统参数,内容,等。
此外,通信单元301经由网络60连接至CA,并以下述方式发送信息至CA和从CA接收信息。
通信单元301持续经由网络60从CA接收更新的CRL,并经由控制单元302将接收的CRL存储在CRL存储单元303。
通信单元301经由控制单元302从公共密钥加密单元306接收公共密钥“PK_0030”,并经由网络60输出接收的公共密钥至CA。通信单元301也经由网络60从CA接收公共密钥证书“Cert_0030”,其与公共密钥“PK_0030”对应,并将接收的公共密钥证书输出至控制单元302。
通信单元301经由网络60从CA获取用于椭圆曲线的系统参数,并输出所获取的系统参数至控制单元302。
(2)控制单元302控制单元302包括微处理器,ROM,RAM。控制单元103利用执行计算机程序的微处理器,控制整个服务器30。
(a)在控制单元302与终端设备10通信之前,由CA向控制单元302发布公共密钥证书。更具体地,通信单元301经由通信单元301发送从公共密钥加密单元306中输出的公共密钥“PK_0030”和预先存储在控制单元302中的控制单元302的设备ID“ID_0030”至CA。控制单元302经由通信单元301,从CA接收对应于公共密钥“PK_0030”的公共密钥证书“Cert_0030”,并将接收的公共密钥证书输出至Cert管理单元304。
(b)基于从终端设备10接收的预约服务请求,控制单元302从Cert管理单元304读出“Cert_0030”。此外,控制单元302输出指令至公共密钥加密单元306,以建立与终端设备10的SAC。SAC建立后,控制单元302利用从公共密钥加密单元306接收的会话密钥,对用于椭圆曲线的系统参数“a1,b1,p1,q1和G1”进行加密。系统参数从CA获取。然后,控制单元302经由通信单元301和网络60,将加密的系统参数发送至终端设备10。
作为具体示例,给出下述值作为参数。
a1=-3b1=16461p1=20011q1=20023G1=(1,7553)。
(c)作为用于建立SAC的处理的一部分,控制单元302从CRL存储单元303读出更新的CRL,并判断验证目标,即终端设备10是否是无效设备。
(d)基于从终端设备10接收的包括Cert_A的使用服务请求,控制单元302判断Cert_A是否确信是由服务器30自身向终端设备10发布的公共密钥证书。这里,控制单元302查阅由注册信息管理单元305管理的注册信息。如果从终端设备10接收的Cert_A是正确的,控制单元302命令公共密钥加密单元306建立SAC。
(e)在服务器30和终端设备10之间建立SAC,用于向和从终端设备10发送和接收信息后,控制单元302从公共密钥加密单元306接收会话密钥。利用接收的会话密钥作为加密密钥或解密密钥,控制单元302加密信息,并将信息发送至终端设备10,并且对从终端设备10接收的信息进行解密。例如,在服务器30和终端设备10之间建立SAC用于提供服务后,控制单元302从公共密钥加密单元306接收会话密钥,并从内容存储单元307读出内容。控制单元302利用会话密钥,对读出的内容加密,以产生加密的内容,并经由通信单元301将产生的加密的内容发送至终端设备10。
(3)CRL存储单元303CRL存储单元303包括RAM,并在其中存储CRL。CRL是无效设备的ID列表,其中无效设备诸如是执行未授权操作的设备和私有密钥已经暴露的设备。CA经由网络60发送CRL至服务器30。这里,服务器30始终保存从CA接收的更新的CRL。服务器30将已经存储在CRL存储单元303中的旧的CRL代替为更新的CRL。在下面的说明书中,如终端设备10的CRL存储单元106存储的,CRL存储单元303存储如图3B所示的CRL_130作为更新的CRL。
(4)Cert管理单元304Cert管理单元304经由通信单元301和控制单元302从CA接收公共密钥证书Cert_0030,并在其中存储接收的Cert_0030。
(5)注册信息管理单元305注册信息管理单元305管理有关终端设备的注册信息,其中公共密钥加密单元306向该终端设备发布公共密钥证书。注册信息包括注册的终端设备的公共密钥,分配给终端设备的会员号码,与用户相关的信息,等等。注册信息用于管理注册的终端设备和用户。控制单元302也使用注册信息,用于校验从终端设备10接收的Cert。
(6)公共密钥加密单元306公共密钥加密单元306包括微处理器,ROM,RAM和随机数发生器。
在服务器30与终端设备10通信前,公共密钥加密单元306利用随机数发生器产生随机数R_0030,并基于产生的随机数R_0030,产生公共密钥PK_0030。公共密钥加密单元306经由控制单元302和通信单元301向CA发送产生的公共密钥PK_0030。
终端设备10的注册公共密钥加密单元306产生私有密钥Ks_30,并从控制单元302接收用于椭圆曲线的系统参数。公共密钥加密单元306利用私有密钥Ks_30和这些系统参数,计算Kp_30=Ks_30*G1(mod p1),由此产生公共密钥Kp_30。公共密钥加密单元306输出产生的公共密钥Kp_30至控制单元302。
在预约服务和注册时,基于从终端设备10接收的公共密钥PK_A,公共密钥加密单元306基于接收的公共密钥PK_A,产生公共密钥证书Cert_A,并将产生的Cert_A输出至控制单元302。
为终端设备10提供服务基于从控制单元302接收指令以建立SAC,公共密钥加密单元306建立与终端设备10的SAC,并产生会话密钥。建立SAC的细节随后描述。
(7)内容存储单元307
内容存储单元307,更具体的是存储内容的硬盘驱动单元。
4、服务器40服务器40是属于内容供应者的设备,该内容供应者区别于服务器30属于的内容供应者。基于从终端设备10接收的预约服务请求,服务器40注册终端设备10,其中该终端设备经由网络60连接至服务器40。服务器40也存储内容。基于从已经注册的终端设备10接收的使用服务请求,服务器40提供内容至终端设备10。服务器40更具体的是包括微处理器,ROM,RAM,和硬盘单元等的计算机系统。服务器40的结构与图5所示的服务器30的结构相同。因此,这里不再列举服务器40的结构。下面主要将重点放在服务器40和服务器30的不同之处,来描述服务器40。
(a)在与终端设备10通信之前,服务器40产生并发送公共密钥PK_0040至CA,并且公共密钥证书Cert_0040由CA发布至服务器40。图9C中的公共密钥证书160表示了Cert_0040的数据结构。从CA接收的Cert_0040用于在终端设备10和服务器40之间建立SAC。
(b)服务器40从CA接收用于椭圆曲线的系统参数。这里,服务器40接收的一组系统参数对于服务器40是唯一的。
更具体地,服务器40接收下述系统参数a2=-3b2=16461p2=20011q2=20023G2=(18892,5928)服务器40产生私有密钥Ks_40,利用产生的私有密钥Ks_40和从CA接收的系统参数,执行椭圆曲线计算Kp_40=Ks_40*G2(modp2),由此产生公共密钥Kp_40。
建立与终端设备10的SAC之后,服务器40发送从CA接收的系统参数和产生的公共密钥Kp_40至终端设备10。
(c)服务器40从终端设备10接收公共密钥PK_B,并发布用于接收的公共密钥PK_B的公共密钥证书Cert_B。如图12B示出的公共密钥证书220示出了Cert_B的数据结构。
(d)基于从终端设备10接收的包括Cert_B的使用服务请求,服务器40校验Cert_B。如果Cert_B的校验成功,服务器40建立与终端设备10的SAC,并输出内容至终端设备10。
5、服务器50服务器50是属于内容供应者的设备,该内容供应者与服务器30和服务器40属于的各个内容供应者不同。基于从终端设备10接收的预约服务请求,服务器50注册终端设备10,其中该终端设备经由网络60连接至服务器50。服务器50也存储内容。基于从已经注册的终端设备10接收的使用服务请求,服务器50提供内容至终端设备10。服务器50更具体的是包括微处理器,ROM,RAM,硬盘单元等的计算机系统。服务器50的结构与图5所示的服务器30的结构相同。因此,这里不再列举服务器50的结构。下面主要将重点放在服务器50和服务器30和40的不同之处,来描述服务器50。
(a)在与终端设备10通信之前,服务器50产生和发送公共密钥PK_0050至CA,并且公共密钥证书Cert_0050由CA发布至服务器50。图9D中的公共密钥证书170表示了Cert_0050的数据结构。从CA接收的Cert_0050用于建立与终端设备10的SAC。
(b)服务器50从CA接收用于椭圆曲线的系统参数。这里,服务器50接收的一组系统参数对于服务器50是唯一的。
更具体地,服务器50接收下述系统参数A3=-3B3=16461P3=20011Q3=20023G3=(8898,13258)。
服务器50产生私有密钥Ks_50,利用产生的私有密钥Ks_50和从CA接收的系统参数,执行椭圆曲线计算Kp_50=Ks_50*G3(modp3),由此产生公共密钥Kp_50。
立与终端设备10的SAC之后,服务器50发送从CA接收的系统参数和产生的公共密钥Kp_50至终端设备10。
(c)服务器50从终端设备10接收公共密钥PK_C,并发布用于接收的公共密钥PK_C的公共密钥证书Cert_C。如图12C示出的公共密钥证书230示出了Cert_C的数据结构。
(d)基于从终端设备10接收的包括Cert_C的使用服务请求,服务器50校验Cert_C。如果Cert_C的校验成功,服务器50建立与终端设备10的SAC,并输出内容至终端设备10。
操作接下来描述信息安全系统1执行的操作。
(1)整个系统的操作(用于预约服务和注册)图6和图15是表示整个信息安全系统1操作的流程图。图6表示在“预约服务”和“注册”时信息安全系统1的操作。图15表示在“使用服务”时信息安全系统1的操作。
首先,当存储卡插入终端设备10的存储卡输入/输出单元104时(步骤S101),终端设备10验证存储卡20(步骤S102)。如果存储卡20的验证失败(步骤S103中的NG),终端设备10结束处理。如果存储卡20的验证成功(步骤S103中的OK),由CA向终端设备10发布公共密钥证书(步骤S104)。
由CA先向服务器30发布公共密钥证书(步骤S105)。同样,由CA先向服务器40发布公共密钥证书(步骤S106)。同样,由CA先向服务器50发布公共密钥证书(步骤S107)。
接下来,终端设备10和服务器30执行预约服务和注册(步骤S108)。接下来,终端设备10和服务器40执行预约服务和注册(步骤S109)。接下来,终端设备10和服务器50执行预约服务和注册(步骤S110)。
这些处理用于“预约服务”和“注册”。
该处理延续至图15。但是,为了方便起见,首先参照图7中的流程图描述用于预约服务和注册的处理细节,然后描述图15。
(2)存储卡20的验证这里,参照图7中的流程图,描述存储卡20的验证。注意,这里描述图6的步骤S102中执行的操作细节。
在存储卡20插入终端设备10的存储卡输入/输出单元104的状态下,终端设备10的存储卡验证单元105产生随机数R_0(步骤S201),并在其中保持产生的随机数R_0。同时,存储卡验证单元105也经由存储卡输入/输出单元104输出产生的随机数R_0至存储卡20,并且存储卡20接收随机数R_0(步骤S202)。
基于经由输入/输出单元201和存储控制单元202接收的随机数R_0,存储卡20的验证单元203利用随机数R_0作为加密密钥,将加密算法E应用于存储在验证单元203的验证密码PW_0,以产生加密的文本E2(步骤S203)。同时,存储卡验证单元105利用步骤S201中产生的随机数R_0作为私有密钥,将加密算法E应用于存储卡20和存储卡验证单元105之间共享的验证密码PW_0,以产生加密文本E1(步骤S204)。
存储卡20的验证单元203将在步骤S203中产生的加密文本E2发送至终端设备10,终端设备10接收加密文本E2(步骤S205)。终端设备10的存储卡验证单元105经由存储卡输入/输出单元104和控制单元103接收加密的文本E2,并将接收的加密文本E2和步骤S204中产生的加密文本E1作比较(步骤S206)。
如果加密文本E1和加密文本E2相同(步骤S207中的YES),这意味着终端设备10已经成功验证存储卡20,存储卡验证单元105输出代表“验证通过”的信号至控制单元103(步骤S208)。然后,终端设备10返回至图6中的步骤S103,并继续处理。
如果加密文本E1和加密文本E2步不同(步骤S207中的NO),这意味着终端设备10验证存储卡20失败,存储卡验证单元105输出代表“验证失败”的信号至控制单元103(步骤S209)。然后,终端设备10返回至图6中的步骤S103,并继续处理。
(3)从CA接收公共密钥证书(Cert)的处理这里,参照图8中的流程图,描述终端设备10和服务器30,40和50分别从CA接收公共密钥证书的处理。注意,这里描述图6的步骤S104,S105,S106和S107中执行的操作的细节。
终端设备10和服务器30,40和50中的每个公共密钥加密单元通过每个的随机数发生器产生随机数R_L(步骤S301),并从产生的随机数R_L产生公共密钥PK_L(步骤S302)。这里,对于终端设备10,给定L=0010,对于服务器30,给定L=0030,对于服务器40,给定L=0040,对于服务器50,给定L=0050。注意,用于从随机数R_L产生公共密钥PK_L的算法不限于此。例如,可以使用RSA密码系统。
终端设备10和服务器30,40和50中每个的公共密钥加密单元输出产生的公共密钥PK_L至每个控制单元。每个控制单元经由通信单元发送公共密钥PK_L和存储在控制单元中包括控制单元自身的设备ID的信息至CA。CA从每个中接收公共密钥PK_L和包括设备ID的信息(步骤S303)。
至于步骤S303中接收的信息的来源(公共密钥证书的请求源),CA校验公共密钥,邮箱地址,用户,以及用户属于的组织的存在性和正确性(步骤S304)。
如果请求源没有授权(步骤S305中为NO),则CA结束处理。
如果请求源被授权(步骤S305中为YES),CA将签名数据Sig_LCA增加至接收的公共密钥PK_L和设备ID,并产生公共密钥证书Cert_L(步骤S306)。CA发送产生的公共密钥证书Cert_L至每个请求源,即终端设备10和服务器30,40和50。终端设备10和服务器30,40和50中的每一个接收公共密钥证书Cert_L(步骤S307)。
终端设备10经由控制单元103和存储卡输入/输出单元104,将接收的公共密钥证书Cert_0010存储在存储卡20的公共密钥存储区204c中(步骤S308)。这里,终端设备10从CA接收的公共密钥证书Cert_0010的数据结构如图9A所示。如图9A所示,Cert_0010包括ID_0010,PK_0010和Sig_0010CA。注意,ID_0010是终端设备10的设备ID。
服务器30经由控制单元302,将在步骤S307中接收的公共密钥证书Cert_0030存储在Cert管理单元304中(步骤S308)。图9B示出了服务器30从CA接收的公共密钥证书Cert_0030的数据结构。如图9B所示,Cert_0030包括ID_0030,PK_0030和Sig_0030CA。注意,ID_0030是服务器30的设备ID。
同样,服务器40和服务器50分别在内部存储公共密钥证书Cert_0040和Cert_0050(步骤S308)。图9C示出了服务器40从CA接收的公共密钥证书Cert_0040的数据结构。图9D示出了服务器50从CA接收的公共密钥证书Cert_0050的数据结构。
基于从CA接收的公共密钥证书,在步骤S108中终端设备10和服务器30开始处理。在步骤S109中,服务器40开始处理,在步骤S110中服务器50开始处理。
(4)预约服务和注册参照图10和图11示出的流程图,下面描述终端设备10和服务器30之间的预约服务和注册(图6中步骤S108),终端设备10和服务器40之间的预约服务和注册(图6中步骤S109),终端设备10和服务器50之间的预约服务和注册(图6中步骤S110)。在这部分中,每个服务器30,40和50有时简称为“服务器”。
终端设备10经由操作输入单元102从用户接收输入,引起对服务器的预约服务请求(步骤S401)后,在终端设备10和服务器之间建立SAC(步骤S402)。
服务器从CA接收用于椭圆曲线的系统参数(步骤S403)。这里,服务器30从CA获取的系统参数是“a1,b1,p1,q1和G1”,服务器40从CA获取的系统参数是“a2,b2,p2,q2和G2”,服务器50从CA获取的系统参数是“a3,b3,p3,q3和G3”。
服务器的控制单元利用会话密钥作为加密密钥,将获取的系统参数加密,其中步骤S402中建立SAC的处理中,终端设备10和服务器之间共享该加密密钥(步骤S404)。注意,这里使用的加密算法,例如是DES(数据加密标准)。服务器的控制单元经由通信单元和网络60将加密的系统参数发送至终端设备,终端设备10的通信单元101接收这些系统参数(步骤S405)。
终端设备10的控制单元103利用会话密钥作为解密密钥,对加密的系统参数解密,其中步骤S402中建立SAC的处理中,终端设备10和服务器之间共享该解密密钥(步骤S406)。如果终端设备10的公共密钥加密单元107已经产生用于服务SK的私有密钥,且存储卡20的安全区204a存储SK(步骤S407中为YES),则处理前进至步骤S409。如果终端设备10的公共密钥加密单元107还没有产生用于服务SK的私有密钥,且存储卡20的安全区204a没有存储SK(步骤S407中为NO),则公共密钥加密单元107通过随机数发生器,产生用于服务的私有密钥(步骤S408)。
公共密钥加密单元107利用用于服务SK的私有密钥和从服务器获取的系统参数,通过计算下述方程,产生公共密钥PK_N(步骤S409)。
PK_N=SK*G(mod p),其中N=A,B和C注意,用于服务SK的私有密钥是在步骤S408中产生的密钥数据,或者是已经产生并存储在存储卡20的安全区204a中的密钥数据。
PK_A是基于从服务器30接收的系统参数,产生的公共密钥。PK_B是基于从服务器40接收的系统参数,产生的公共密钥。PK_C是基于从服务器50接收的系统参数,产生的公共密钥。
接下来,终端设备10的控制单元103利用会话密钥作为加密密钥,对产生的公共密钥PK_N加密(步骤S410),并经由通信单元101和网络60将加密的PK_N发送至服务器,服务器的通信单元接收加密的公共密钥PK_N(步骤S411)。服务器的控制单元利用会话密钥,对加密的公共密钥PK_N进行解密(步骤S412)。
接下来,服务器的公共密钥加密单元产生公共密钥证书Cert_N,用于从终端设备10接收的公共密钥PK_N(步骤S413)。然后,公共密钥加密单元利用随机数发生器,产生私有密钥Ks_M(M=30,40和50),并基于产生的私有密钥Ks_M计算公共密钥Kp_M=Ks_M*G(步骤S415)。标记G代表椭圆曲线的基点。服务器的控制单元利用会话密钥作为加密密钥,对公共密钥证书Cert_N和公共密钥Kp_M加密,并经由通信单元和网络60将加密的Cert_N和Kp_M发送至终端设备10,终端设备10的通信单元101接收加密的Cert_N和Kp_M(步骤S417)。
终端设备10的控制单元103利用会话密钥,对接收的Cert_N和Kp_M进行解密(步骤S418),并经由存储卡输入/输出单元104将解密的公共密钥证书Cert_N存储在存储卡20的安全区204a中(步骤S419),以及将服务器的公共密钥Kp_M存储在存储单元108中(步骤S420)。
同时,服务器的注册信息管理单元产生有关终端设备10的注册信息,并管理注册信息(步骤S421)。注册信息包括终端设备的公共密钥和分配给终端设备10的会员号,等。
接下来,参照图12,描述每个服务器产生,并发布至终端设备10的公共密钥证书Cert_N。
图12A表示服务器30向终端设备10发布的Cert_A的数据结构。如图12A所示,Cert_A包括服务ID“SID_0123A”,会员号“NO_0001”,公共密钥“PK_A”和签名数据“Sig_A”。
服务ID“SID_0123A”代表在服务器30提供的服务中,终端设备10使用的服务类型。会员号“NO_0001”是分配给终端设备的号码,用以从多个在服务器30注册的终端设备中识别终端设备。公共密钥“PK_A”是基于从服务器30接收的用于椭圆曲线的系统参数和用于服务SK的私有密钥,由终端设备10产生的密钥数据。签名数据“Sig_A”是通过将签名算法应用于“SID_0123A”,“NO_0001”和“PK_A”服务器30产生的数据。
图12B表示服务器40向终端设备10发布的Cert_B的数据结构。如图12B所示,Cert_B包括服务ID“SID_0321B”,会员号“NO_0025”,公共密钥“PK_B”和签名数据“Sig_B”。
服务ID“SID_0321B”代表在服务器40提供的服务中,终端设备10使用的服务类型。会员号“NO_0025”是分配给终端设备的号码,用以从多个在服务器40注册的终端设备中识别终端设备。公共密钥“PK_B”是基于从服务器40接收的用于椭圆曲线的系统参数和用于服务SK的私有密钥,由终端设备10产生的密钥数据。签名数据“Sig_B”是通过将签名算法应用于“SID_0321B”,“NO_0025”和“PK_B”服务器40产生的数据。
图12C表示服务器50向终端设备10发布的Cert_C的数据结构。如图12C所示,Cert_C包括服务ID“SID_0132C”,会员号“NO_3215”,公共密钥“PK_C”和签名数据“Sig_C”。
服务ID“SID_0132C”代表在服务器50提供的服务中,终端设备10使用的服务类型。会员号“NO_3215”是分配给终端设备的号码,用以从多个在服务器50注册的终端设备中识别终端设备。公共密钥“PK_C”是基于从服务器50接收的用于椭圆曲线的系统参数和用于服务SK的私有密钥,由终端设备10产生的密钥数据。签名数据“Sig_C”是通过将签名算法应用于“SID_0132C”,“NO_3215”和“PK_C”服务器50产生的数据。
(5)SAC1的建立这里,参照图13和图14中示出的流程图,描述在预约服务和注册时,在终端设备10和每个服务器之间建立SAC的操作。注意,这里描述图10中步骤402的细节。
这里,Gen()是密钥产生函数,Y是系统唯一的参数。满足Gen(X,Gen(Y,Z))=Gen(Y,Gen(X,Z))。因为密钥产生函数利用公知的技术可以实现,因此这里不描述。
首先,终端设备10的控制单元103经由存储卡输入/输出单元104,从存储卡20读出公共密钥证书Cert_0010(步骤S501)。终端设备10的通信单元101经由网络60将Cert_0010发送至服务器,服务器的通信单元接收Cert_0010(步骤S502)。服务器利用CA的公共密钥PK_CA,将签名校验算法应用于包含在公共密钥证书Cert_0010中的签名数据Sig_0010CA(步骤S503)。这里,假设CA的公共密钥PK_CA已经为服务器所知。如果校验失败(步骤S504中为NO),服务器结束处理。如果校验成功(步骤S504中为YES),服务器的控制单元从CRL存储单元中读出CRL(步骤S505),并判断公共密钥证书Cert_0010中包含的ID_0010是否列于CRL中。
如果判断出ID_0010列于CRL中(步骤S506中为YES),服务器结束处理。如果判断出ID_0010未列于CRL中(步骤S506中为NO),则服务器的控制单元从Cert管理单元读出公共密钥证书Cert_L(步骤S507)。控制单元经由通信单元和网络60将公共密钥证书Cert_L发送至终端设备10,终端设备10的通信单元接收Cert_L(步骤S508)。
基于接收的公共密钥证书Cert_L,终端设备10的控制单元103利用CA的公共密钥PK_CA,将签名校验算法应用于包含在Cert_L中的签名数据Sig_LCA(步骤S509)。这里,假设CA的公共密钥PK_CA已经为终端设备10所知。如果校验失败(步骤S510中为NO),终端设备10结束处理。如果校验成功(步骤S510中为YES),控制单元103从CRL存储单元106中读出CRL(步骤S511),并判断公共密钥证书Cert_L中包含的接收的ID_L是否列于CRL中。
如果判断出ID_L列于CRL中(步骤S512中为YES),终端设备10结束处理。如果判断出ID_L未列于CRL中(步骤S512中为NO),则终端设备10继续处理。
步骤S507中的处理后,服务器的公共密钥加密单元产生随机数Cha_B(步骤S513)。服务器的通信单元经由网络60发送随机数Cha_B至终端设备10,终端设备10的通信单元101接收随机数Cha_B(步骤S514)。
基于接收的随机数Cha_B,终端设备10的控制单元103经由存储卡输入/输出单元104从存储卡20的安全区204a读出私有密钥R_0010,并输出读出的私有密钥R_0010和接收的随机数Cha_B至公共密钥加密单元107。公共密钥加密单元107利用私有密钥R_0010,将签名算法应用于随机数Cha_B,以产生签名数据Sig_a(步骤S515)。通信单元101经由网络60将由公共密钥加密单元107产生的签名数据Sig_a发送至服务器,服务器的通信单元接收签名数据Sig_a(步骤S516)。
基于经由控制单元接收的签名数据Sig_a,服务器的公共密钥加密单元利用在步骤S502中接收的且包含在Cert_0010中的公共密钥PK_0010,将签名校验算法应用于签名数据Sig_a(步骤S517)。如果校验失败(步骤S518中为NO),服务器结束处理。如果校验成功(步骤S518为YES),服务器继续处理。
同时,跟在步骤S515中的处理后,终端设备10通过公共密钥加密单元107产生随机数Cha_A(步骤S519)。公共密钥加密单元107经由控制单元103,通信单元101和网络60将产生的随机数Cha_A发送至服务器,服务器的通信单元接收随机数Cha_A(步骤S520)。
服务器的控制单元输出接收的随机数Cha A至公共密钥加密单元,公共密钥加密单元利用存储在公共密钥加密单元内部的私有密钥R_L,将签名算法应用于接收的随机数Cha_A,由此产生签名数据Sig_b(步骤S521)。服务器经由控制单元,通信单元和网络60将产生的签名数据Sig_b发送至终端设备10,终端设备10的通信单元101接收签名数据Sig_b(步骤S522)。
基于经由控制单元103接收的签名数据Sig_b,终端设备10的公共密钥加密单元107利用在步骤S508中接收的且包含在Cert_L中的公共密钥PK_L,将签名校验算法应用于签名数据Sig_b(步骤S523)。如果校验失败(步骤524中为NO),终端设备10结束处理。如果校验成功(步骤S524中为YES),终端设备10的公共密钥加密单元107产生随机数“a”(步骤S525),并利用产生的随机数“a”,产生Key_A=Gen(a,Y)(步骤S526)。终端设备10的通信单元101经由网络60将公共密钥加密单元107产生的Key_A发送至服务器,服务器的通信单元接收Key_A(步骤S527)。
基于接收的Key_A,服务器的公共密钥加密单元产生随机数“b”(步骤S528),并利用产生的随机数“b”产生Key_B=Gen(b,Y)(步骤S529)。服务器的通信单元经由网络60将公共密钥加密单元产生的Key_B发送至终端设备10,终端设备10的通信单元接收Key_B(步骤S530)。服务器的公共密钥加密单元也利用步骤S528中产生的随机数“b”和步骤S527中接收的Key_A,产生Key_AB=Gen(b,Key_A)=Gen(b,Gen(a,Y))(步骤S531),并将产生的Key_AB输出至控制单元作为会话密钥(步骤S532)。
然后,如图10所示,服务器返回至步骤S403,并继续处理。
同时,基于步骤S530中接收的Key_B,终端设备10的公共密钥加密单元107基于Key_B和在步骤S525中产生的随机数“a”,产生Key_AB=Gen(a,Key_B)=Gen(a,Gen(b,Y)),并将产生的Key_AB作为会话密钥输出至控制单元103(步骤S534)。然后,终端设备10返回至图10中的步骤S406,并继续处理。
(6)整个系统的操作2(用于使用服务)接下来参照附图15中所示的流程图,描述整个信息安全系统1执行的操作,其中图15是图6的延续。注意,图15中所示的操作是用于整个信息安全系统1执行的操作中的“使用服务”的操作。在这部分,每个服务器30,40和50有时简称为“服务器”。
终端设备10经由操作输入单元102从用户接收输入,引起对于服务器的使用服务请求(步骤S601)后,控制单元103经由存储卡输入/输出单元104从存储卡20的安全区204a,读出由用户指定的服务器产生的公共密钥证书Cert_N(N=A,B or C)(步骤S602)。控制单元103经由通信单元101和网络60,将读出的公共密钥证书Cert_N发送至指定的服务器,服务器的通信单元接收公共密钥证书Cert_N(步骤S603)。
基于接收的公共密钥证书Cert_N,服务器的控制单元以下述形式判断接收的Cert_N是否正确(步骤S604)。控制单元从注册管理单元读出对应于终端设备10的注册信息,并判断终端设备10的服务ID,会员号和公共密钥是否与注册的信息相同。并且,控制单元将包含在Cert_N中的签名数据Sig_N输出至公共密钥加密单元。基于接收的Sig_N,公共密钥加密单元将签名校验算法应用于接收的Sig_N,以校验Sig_N,并输出校验结果。
如果Cert_N的校验失败(步骤S605中为NG),服务器结束处理。如果Cert_N的校验成功(步骤S605中为YES),服务器和终端设备10执行建立SAC的处理(步骤S606)。
建立与终端设备10的SAC后,服务器的控制单元从内容存储单元读出内容(步骤S607),并利用会话密钥作为加密密钥,将读出的内容加密,其中加密密钥在步骤S606中被与终端设备10共享(步骤S608)。这里使用的加密算法,例如是DES。服务器的通信单元经由网络60发送加密的内容至终端设备10,终端设备10的通信单元101接收加密的内容(步骤S609)。
基于接收的加密的内容,终端设备10的控制单元103利用会话密钥作为解密密钥,对接收的内容解密,其中解密密钥在步骤S606中被与服务器共享(步骤S610)。控制单元103经由存储卡输入/输出单元104在存储卡20的内容存储区204b中存储解密的内容(步骤S611)。
(7)SAC2的建立这里,参照图16,图17和图18中的流程图,描述在使用服务时,在终端设备10和每个服务器之间建立SAC的操作。注意,这里描述图15中步骤S606的细节。
这里,Gen()是密钥产生函数,Y是系统唯一的参数。满足Gen(X,Gen(Y,Z))=Gen(Y,Gen(X,Z))。
首先,终端设备10的控制单元103经由存储卡输入/输出单元104,从存储卡20读出公共密钥证书Cert_0010(步骤S701)。终端设备10的通信单元101经由网络60将Cert_0010发送至服务器,服务器的通信单元接收Cert_0010(步骤S702)。服务器的公共密钥加密单元利用CA的公共密钥PK_CA,将签名校验算法应用于包含在公共密钥证书Cert_0010中的签名数据Sig_0010CA(步骤S703)。如果校验失败(步骤S704中为NO),服务器结束处理。如果校验成功(步骤S704中为YES),服务器的控制单元从CRL存储单元中读出CRL(步骤S705),并判断公共密钥证书Cert_0010中包含的ID_0010是否列于CRL中。
如果判断出ID_0010列于CRL中(步骤S706中为YES),服务器结束处理。如果判断出ID_0010未列于CRL中(步骤S706中为NO),则服务器的控制单元从Cert管理单元读出公共密钥证书Cert_L(步骤S707)。控制单元经由通信单元和网络60将公共密钥证书Cert_L发送至终端设备10,终端设备10的通信单元接收Cert_L(步骤S708)。
基于接收的公共密钥证书Cert_L,终端设备10的控制单元103利用CA的公共密钥PK_CA,将签名校验算法应用于包含在Cert_L中的签名数据Sig_LCA,以校验签名(步骤S709)。如果校验失败(步骤S710中为NO),终端设备10结束处理。如果校验成功(步骤S710中为YES),控制单元103从CRL存储单元106中读出CRL(步骤S711),并判断公共密钥证书Cert_L中包含的接收的ID_L是否列于CRL中。
如果判断出ID_L列于CRL中(步骤S712中为YES),终端设备10结束处理。如果判断出ID_L未列于CRL中(步骤S712中为NO),则终端设备10继续处理。
步骤S707中的处理后,服务器的公共密钥加密单元产生随机数Cha_D(步骤S713)。服务器的通信单元经由网络60发送随机数Cha_D至终端设备10,终端设备10的通信单元101接收随机数Cha_D(步骤S714)。
基于接收的随机数Cha_D,公共密钥加密单元107计算R1=(rx,ry)=Cha_D*G(步骤S715),并通过下述计算SS×Cha_D=m+rx×SK(mod q)(步骤S716)。这里,q是椭圆曲线E的阶数,m是终端设备发送至服务器的消息,SK是经由存储卡输入/输出单元104从存储卡20的安全区204a读出的用于终端设备10的服务的私有密钥。
终端设备从获取的R1和S中,产生签名数据Sig_d=(R1,S),并输出产生的签名数据Sig_d和消息m至服务器,服务器接收签名数据Sig_d和消息m(步骤S718)。
服务器的公共密钥加密单元计算m*G+rx*PK_N,并计算S*R1(步骤S719)。
服务器的公共密钥加密单元通过判断是否满足S*R1=m*G+rx*PK_N识别已经发送数据的终端设备10(步骤S720)。该方程从下述推导出S*R1={((m+rx×SK)/Cha_D)×Cha_D}*G=(m+rx×SK)*G
=m*G+(rx×SK)*G=m*G+rx*PK_N。
如果S*R1≠m*G+rx*PK_N(步骤S720中为NO),服务器结束处理。如果S*R1=m*G+rx*PK_N(步骤S720中为YES),服务器继续处理。
同时,在步骤S718中,终端设备10发送Sig_d和m至服务器后,公共密钥加密单元107产生随机数Cha_E(步骤S721),并经由控制单元103,通信单元101和网络60,输出产生的随机数Cha_E至服务器,服务器的通信单元接收Cha_E(步骤S722)。
基于经由控制单元接收的随机数Cha_E,服务器的公共密钥加密单元计算R2=(rx,ry)=Cha_E*G(步骤S723)并通过下述计算S’S’×Cha_E=m’+rx×Ks_M(mod q)(步骤S724)。
这里,m’是服务器发送至终端设备10的消息,Ks_M(M=30,40 or50)是服务器的私有密钥。更具体地,Ks_30是服务器30的私有密钥,Ks_40是服务器40的私有密钥,Ks_50是服务器50的私有密钥。
服务器从获取的R2和S’产生签名数据Sig_e=(R2,S’)(步骤S725),并输出产生的签名数据Sig_e和消息m’至终端设备10,终端设备接收签名数据Sig_e和消息m’(步骤S726)。
终端设备的公共密钥加密单元107计算m’*G+rx*kp_M(步骤S731)这里,Kp_M(M=30,40 or 50)是通过计算Kp_M=Ks_M*G产生的每个服务器的公共密钥。更具体地,Kp_30是服务器30的公共密钥,Kp_40是服务器40的公共密钥,Kp_50是服务器50的公共密钥。
公共密钥加密单元107还计算S’*R2(步骤S731)。
公共密钥加密单元107通过判断是否满足S’*R2=m’*G+rx*kp_M,识别已经发送数据的终端设备10(步骤S732)。该方程从下述推导出S’*R2={((m’+rx×Ks_M)/Cha_E)×Cha_E}*G
=(m’+rx×Ks_M)*G=m’*G+(rx×Ks_M)*G=m’*G+rx*Kp_M。
如果S’*R2≠m’*G+rx*kp_M(步骤S732中为NO),终端设备10结束处理。如果S’*R2=m’*G+rx*kp_M(步骤S732中为YES),公共密钥加密单元107产生随机数“d”(步骤S733),并利用产生的随机数“d”产生Key_D=Gen(d,Y)(步骤S734)。终端设备10的通信单元101经由网络60发送公共密钥加密单元107产生的Key_D至服务器,服务器的通信单元接收Key_D(步骤S735)。
基于接收的Key_D,服务器的公共密钥加密单元产生随机数“e”(步骤S736),并利用产生的随机数“e”,产生Key_E=Gen(e,Y)(步骤S737)。服务器的通信单元经由网络60,输出公共密钥加密单元产生的Key_E至终端设备10,终端设备10的通信单元接收Key_E(步骤S738)。服务器的公共密钥加密单元利用步骤S735中产生的随机数“e”和步骤S735中接收的Key_D,产生Key_DE=Gen(e,Key_D)=Gen(e,Gen(d,Y))(步骤S741),并将产生的Key_DE作为会话密钥输出至控制单元(步骤S742)。这之后,服务器返回至图15中的步骤S607,并继续处理。
同时,基于步骤S738中接收的Key_E,终端设备10的公共密钥加密单元107从Key_E和步骤S733中产生的随机数“d”,产生Key_DE=Gen(d,Key_E)=Gen(d,Gen(e,Y))(步骤S739),并将产生的Key_DE作为会话密钥输出至控制单元103(步骤S740)。这之后,终端设备10返回图15中的步骤S610,并继续处理。
(7)产生用于椭圆曲线的系统参数的操作在信息安全系统1中,认证机构(CA)具有向每个设备发布公共密钥证书的功能,用于产生适于加密的系统参数,以及将产生的系统参数发送至每个服务器的功能。这里,“用于椭圆曲线的系统参数”代表椭圆曲线Ey2=x3+ax+b中包含的“a”和“b”,质数“p”,p的阶数“q”,以及椭圆曲线E上的基点“G”。尤其在该系统中,CA为每个服务器产生唯一的参数组。
参照图19所示的流程图,描述由CA执行的操作,用于产生用于椭圆曲线的系统参数。
CA中包括的椭圆曲线管理设备产生随机数(步骤S801),产生a,b,质数q和基点G,这些确定椭圆曲线(步骤S802),并利用产生的参数,计算椭圆曲线的阶数(步骤S803)。
接下来,利用导出的阶数,通过判断是否满足下述安全椭圆曲线的条件,来判断椭圆曲线的安全性。
如果椭圆曲线在有限域上,椭圆曲线防止所有存在的破译的条件是(条件1)椭圆曲线的阶数不是p,不是p-1以及不是p+1。
(条件2)椭圆曲线的阶数是很大的质数。
根据“Encryption,Zero Knowledge Interactive Proof,andArithmetic”(pp.155-156,supervised by Information Processing Societyof Japan,edited by Tatsuaki Ohta and Kazuo Ohta,Kyoritsu Shyuppanco.,Ltd,1995),如果上述条件满足,则需要指数时基,用于破解有关阶数的最大质数的加密。
如果条件1和条件2都不满足(步骤S804中为NG),则处理返回至步骤S801,并重复随机数的产生,产生用于椭圆曲线的系统参数,计算椭圆曲线的阶数,并判断条件。
如果条件1和条件2满足(步骤S804中为OK),椭圆曲线管理设备将新产生的系统参数和已经产生并存储的系统参数作比较(步骤S805)。如果新产生的参数组与任意一组已经存储的系统参数相同(步骤S806中为YES),则椭圆曲线管理设备丢弃产生的系统参数(步骤S807),并返回至步骤S801,并继续处理。
如果新产生的参数组与任意一组已经存储的系统参数不同(步骤S806中为NO),则椭圆曲线管理设备存储新产生的系统参数组,同时,发送这些参数至服务器30,40或50(步骤S808)。
注意,每次在椭圆曲线管理设备从服务器30,40或50接收请求时,椭圆曲线管理设备执行上述处理。
这允许每个服务器30,40或50获取用于椭圆曲线的唯一一组系统参数。
<总结>
如上所述,本发明中,假设用于SAC的公共密钥密码系统例如是椭圆曲线密码系统。在椭圆曲线密码系统中,产生私有密钥后,计算公共密钥。私有密钥和系统参数用于计算公共密钥,当私有密钥相同时,如果系统参数不同,则产生不同的公共密钥。
在本发明中,提供内容分发服务的服务器发送用于服务器自身服务的系统参数至使用该服务的终端设备。如果存在多个这样的提供内容分发服务的服务器,那么终端设备从每个服务器获取不同的系统参数组。
终端设备从已经存储在终端设备的私有密钥和接收的参数,计算公共密钥,并发送计算的公共密钥至服务器。接收公共密钥的服务器通过将签名与公共密钥相加,产生公共密钥证书,并返回公共密钥证书至终端设备。
变形以上根据本发明的实施例描述了本发明。但是,本发明当然不限于上述实施例。本发明包括下述变形。
(1)在上述实施例中,在终端设备10从每个服务器获取的用于椭圆曲线的系统参数中,每个服务器的G是不同的。但是,本发明并不限于此。每个服务器中,至少质数p或基点G必须不同。当然,本发明包括对于每个服务器,参数组中包含的每个参数都不同的情况。本发明中,对于每个服务器,区别终端设备10接收的用于椭圆曲线的系统参数组的目的是对于每个服务器产生不同的公共密钥。区分系统参数自身不是本发明的目的。
(2)上述发明具有一种结构,在该结构中,终端10从私有密钥SK和系统参数产生公共密钥PK_A,PK_B和PK_C。但是,公共密钥不一定由终端设备10产生。本发明也包括下述情况。
(a)服务器产生公共密钥的情况首先,在终端设备10和每个服务器之间建立SAC。
终端设备10产生用于服务SK的私有密钥,并经由SAC,将产生的用于服务的私有密钥以安全可靠的方式发送至每个服务器。
每个服务器从终端设备10的用于服务SK的私有密钥和从CA获取的用于椭圆曲线的系统参数,产生对应于用于服务SK的私有密钥的公共密钥。每个服务器通过将每个服务器自身的签名增加至产生的公共密钥,产生公共密钥证书,并将产生的公共密钥证书返回至终端设备10。
(b)认证机构(CA)产生公共密钥的情况首先,在终端设备10和CA之间建立SAC。
CA产生三组不同的系统参数。终端设备10产生用于服务SK的私有密钥,并经由SAC,以安全可靠的方式,将产生的用于服务SK的私有密钥发送至CA。
基于从终端设备10接收的私有密钥SK,CA从一个私有密钥SK和三组系统参数,产生三个不同的公共密钥。CA将产生的三个公共密钥发送至终端设备。
基于接收的三个公共密钥,终端设备分别发送三个公共密钥至服务器30,40和50。每个服务器从终端设备接收公共密钥,并通过将签名增加至接收的公共密钥,产生公共密钥证书,以及将产生的公共密钥证书返回至终端设备10。
(3)用于在建立SAC时产生签名数据和校验签名数据的公共密钥密码系统并不限于椭圆曲线密码系统。本发明包括使用RSA密码系统作为公共密钥密码系统的结构。下面描述使用RSA密码系统的实施例。
RSA密码系统的基本点公共密钥N,e私有密钥P,Q,dN=P×Q,(e,(P-1)(Q-1))=1ed=1mod(P-1)(Q-1)加密C=E(M)=Memod N解密M=D(C)=Cdmod N操作下面描述终端设备10执行的操作,用于从服务器30,服务器40和服务器50接收公共密钥证书。
(步骤1)终端设备10任意选择两个大的且彼此不同的质数P1和Q1。终端设备10也通过随机数发生器等产生私有密钥d,等。
(步骤2)终端设备10计算N1=P1×Q1。终端设备10也从e1d≡1mod(P1-1)(Q1-1)计算e1。
(步骤3)终端设备10发送公共密钥(N1,e1)至服务器30,并从服务器30接收公共密钥证书,以及存储公共密钥证书。
(步骤4)终端设备10删除P1和Q1,并在安全存储区存储私有密钥d。
(步骤5)终端设备10选择两个大的,且分别不同于P1和Q1的质数P2和Q2。
(步骤6)终端设备10计算N2=P2×Q2。终端设备10也从e2d≡1mod(P2-1)(Q2-1)计算e2。
(步骤7)终端设备10发送公共密钥(N2,e2)至服务器40,并从服务器40接收公共密钥证书,以及存储公共密钥证书。
(步骤8)终端设备10删除P2和Q2。
(步骤9)终端设备10选择两个大的,且分别不同于P1和Q1以及P2和Q2的质数P3和Q3。
(步骤10)终端设备10计算N3=P3×Q3。终端设备10也从e3d≡1mod(P3-1)(Q3-1)计算e3。
(步骤11)终端设备10发送公共密钥(N3,e3)至服务器50,并从服务器50接收公共密钥证书,以及存储公共密钥证书。
(步骤12)终端设备10删除P3和Q3。
这样,终端设备10可以产生或获取多个具有大的质数的组(P,Q),取代用于椭圆曲线的参数系统,并根据RSA密码系统的算法,从一个私有密钥d和多个质数组(P,Q)产生多个公共密钥(N,e)。换言之,终端设备10能从一个私有密钥产生多个公共密钥,建立与每个服务器的SAC,并不仅根据椭圆曲线密码系统,而且根据RSA密码系统,利用产生的公共密钥发送和接收内容。
(4)在上述使用RSA密码系统的变形中,每个服务器可以产生公共密钥,取代终端设备10产生多个公共密钥。
(5)在实施例中,终端设备和每个服务器具有它们经由网络60从CA接收CRL的结构。但是,获取CRL的方式并不限于此。CRL可以经由无线电电波接收,或它可以记录在记录介质上并分发。
(6)私有密钥,公共密钥和内容可以存储在终端设备的存储区中,取代存储在存储卡中。但是,至少私有密钥应当存储在安全存储区中。
(7)上述实施例中,终端设备10具有产生私有密钥和公共密钥以及建立SAC的功能。但是,终端设备10不一定需要执行这些处理。本发明包括具有IC芯片的存储卡(下文中称为“IC存储卡”)执行产生私有密钥和公共密钥,以及建立SAC等处理的情况,其中该存储卡插入在连接至网络的终端设备中。
下面描述本发明的实施例,其中使用了IC存储卡。
IC存储卡插入在终端设备中,它可以经由终端设备和服务器30,服务器40和服务器50通信。
IC存储卡包括存储区和控制单元,该控制单元由IC芯片,ROM,RAM等构成。注意,存储区的一部分是安全区,用于防止外部的篡改和破译。
事先,IC存储卡经由终端设备与CA通信,从CA接收由CA发布的公共密钥证书,该公共密钥证书包括存储卡的设备ID,IC存储卡的公共密钥,以及由CA产生的签名数据,并且IC存储卡在存储区存储接收的公共密钥证书。
此外,IC存储卡在存储区中存储服务器30释放的公共密钥,服务器40释放的公共密钥和服务器50释放的公共密钥。
(预约服务请求)下面描述当IC存储卡向服务器30发送预约服务请求时,控制单元执行的处理。
控制单元利用RSA密码系统作为公共密钥密码系统的算法,建立与服务器30的SAC。以与上述实施例中建立SAC的方式一样,执行SAC的建立,在所述实施例中由终端设备10执行的处理这里由IC存储卡执行。
利用在IC存储卡和服务器30之间建立的SAC,控制单元经由终端设备从服务器30接收系统参数“a1,b1,p1,q1和G1”。
控制单元产生用于服务的私有密钥,并利用产生的用于服务的私有密钥和系统参数,计算公共密钥。控制单元将产生的用于服务的私有密钥写入安全区,并利用在IC存储卡和服务器30之间建立的SAC,经由终端设备,将计算的公共密钥发送至服务器30。这之后,控制单元经由终端设备,从服务器30接收公共密钥证书,并将接收的公共密钥证书写入存储区。
接下来描述当IC存储卡发送预约服务请求至服务器40时,控制单元执行的处理。
控制单元建立与服务器40的SAC,并利用已建立的SAC,经由终端设备从服务器40接收用于椭圆曲线的系统参数“a2,b2,p2,q2和G2”。
控制单元从安全区读出用于服务的私有密钥,并利用读出的用于服务的私有密钥和系统参数,计算公共密钥。控制单元利用在IC存储卡和服务器40之间建立的SAC,经由终端设备,将计算的公共密钥发送至服务器40。这之后,控制单元经由终端设备从服务器40接收公共密钥证书,并将接收的公共密钥证书写入存储区。
接下来描述当IC存储卡向服务器50发送预约服务请求时,控制单元执行的处理。
控制单元建立与服务器50的SAC,并利用已建立的SAC,经由终端设备从服务器50接收用于椭圆曲线的系统参数“a3,b3,p3,q3和G3”。
控制单元从安全区读出用于服务的私有密钥,并利用读出的用于服务的私有密钥和系统参数,计算公共密钥。控制单元利用在IC存储卡和服务器50之间建立的SAC,经由终端设备,将计算的公共密钥发送至服务器50。这之后,控制单元经由终端设备从服务器50接收公共密钥证书,并将接收的公共密钥证书写入存储区。
这样,利用向服务器30发送预约服务请求时产生的用于服务的一个私有密钥和从服务器接收的系统参数,IC存储卡产生三个不同的分别对应于服务器的公共密钥。
(使用服务请求)下面描述IC存储卡向服务器30发送使用服务请求时,控制单元执行的处理。
控制单元从存储区读出用于服务的私有密钥,公共密钥证书(由服务器30发布)和服务器30的公共密钥,并利用读出的密钥信息,建立与服务器30的SAC。以与上述实施例中建立SAC一样的方式,执行建立SAC,实施例中由终端设备10执行的处理这里由IC存储卡执行。注意,SAC建立的处理中使用的公共密钥密码系统的算法是椭圆曲线密码系统。
控制单元利用在IC存储卡和服务器30之间建立的SAC,经由终端设备从服务器30接收加密的内容,并对接收的加密内容进行解密,以及将解密的内容存储在存储区中。
接下来描述IC存储卡向服务器40发送使用服务请求时,控制单元执行的处理。
控制单元从存储区读出用于服务的私有密钥,公共密钥证书(由服务器40发布)和服务器40的公共密钥,并利用读出的密钥信息,建立与服务器40的SAC。
控制单元利用在IC存储卡和服务器40之间建立的SAC,经由终端设备从服务器40接收加密的内容,并对接收的加密内容进行解密,以及将解密的内容存储在存储区中。
接下来描述IC存储卡向服务器50发送使用服务请求时,控制单元执行的处理。控制单元从存储区读出用于服务的私有密钥,公共密钥证书(由服务器50发布)和服务器50的公共密钥,并利用读出的密钥信息,建立与服务器50的SAC。
控制单元利用在IC存储卡和服务器50之间建立的SAC,经由终端设备从服务器50接收加密的内容,并对接收的加密内容进行解密,以及将解密的内容存储在存储区中。
这样,将IC存储卡插入其中的终端设备和其他设备能够再现从服务器30,40和50获取的内容。
(8)在上述实施例中,CA产生不同的用于每个服务器的参数组,并将产生的参数组发送至每个服务器。但是,不一定需要服务器从外部,诸如CA获取系统参数。服务器自身产生系统参数的结构也是可接受的。
在服务器自身产生系统参数的情况下,终端设备对于每个服务器(供应者)产生不同的公共密钥。因此,可以给每个服务器分配不同的ID,服务器基于分配的ID,产生系统参数。
(9)本发明可以是上述方法,并且,本发明可以是计算机程序,其用计算机实现该方法,本发明可以是包括计算机程序的数字信号。
本发明可以是计算机可读记录介质,诸如移动盘,硬盘,CD_ROM,MO,DVD,DVD-ROM,BD(Blu-ray Disc)和半导体存储器,其上记录有计算机程序或数字信号。并且,本发明可以是记录在记录介质上的计算机程序或数字信号。
本发明经由网络等发送计算机程序或数字信号,其中网络以诸如电力通信线路,无线或有线通信线路,以及因特网为代表。
本发明可以是包括微处理器和存储器的计算机系统,其中存储器存储上述计算程序,微处理器根据计算程序操作。
并且,可以通过将其上记录有程序或数字信号的存储介质发送至计算机系统,或经由网络等将程序或数字信号发送至计算机系统,由其他独立的计算机系统执行程序或数字信号。
(10)本发明也包括由上述任意实施例和变形组合的结构。
工业适用性上述的信息安全系统用于经由无线电,网络等分发数字内容的工业,该数字内容诸如电影和音乐,作为在其中用户使用多个服务供应者的系统。
权利要求
1.一种信息安全装置,基于对满足条件的一组整数的逆运算的复杂性、以安全可靠的方式管理信息,所述信息安全装置包括私有密钥产生单元,用于产生私有密钥;参数接收单元,用于接收分别确定多个条件的多个参数;以及公共密钥产生单元,用于利用所述私有密钥,从满足所述多个条件的多组整数中产生多个公共密钥,其中所述多个条件由所述多个参数确定。
2.根据权利要求1所述的信息安全装置,其中所述信息安全装置经由网络连接至多个服务器;所述多个参数分别从所述多个服务器接收,且所述多个参数彼此不同,以及公共密钥产生单元利用所述各个参数,产生彼此不同的多个公共密钥。
3.根据权利要求2所述的信息安全装置,还包括公共密钥发送单元,用于将公共密钥发送至各个源服务器,其中这些源服务器是各个参数的来源;公共密钥证书接收单元,用于从所述各个服务器接收多个公共密钥证书,每个公共密钥证书包括每个公共密钥和每个服务器的签名;以及密钥存储单元,用于存储所述私有密钥和所述多个公共密钥证书。
4.根据权利要求3所述的信息安全装置,还包括内容请求单元,用于从密钥存储单元读出所述多个公共密钥证书中的一个,并将包括所述读出的公共密钥证书的内容请求发送至已经发布所述读出的公共密钥证书的源服务器;以及内容获取单元,用于利用私有密钥和包含在所述读出的公共密钥证书中的所述公共密钥,以安全可靠的方式从所述源服务器获取内容。
5.根据权利要求4所述的信息安全装置,其中所述内容获取单元包括验证单元,用于将签名数据发送至所述源服务器,并验证所述源服务器,其中所述签名数据利用所述私有密钥产生,并利用所述公共密钥由所述源服务器验证;密钥共享单元,如果由所述验证单元执行的所述验证成功,则用于与所述源服务器共享密钥信息;接收单元,用于从所述源服务器接收加密的内容,所述加密的内容基于所述密钥信息被加密;以及解密单元,用于基于所述密钥信息对所述加密的内容进行解密。
6.根据权利要求3所述的信息安全装置,其中所述密钥存储单元是插入到所述信息安全装置中的便携式存储卡,所述公共密钥产生单元将所述私有密钥和所述公共密钥证书写入所述便携式存储卡,以及所述便携式存储卡包括防止外部篡改和破译的安全存储区,并将所述私有密钥存储在所述安全存储区中。
7.根据权利要求6所述的信息安全装置,还包括存储卡验证单元,用于当所述存储卡插入所述信息安全装置时,验证所述存储卡;以及禁止写入单元,如果由所述存储卡验证单元执行的验证失败,则用于禁止所述公共密钥产生单元将所述私有密钥和所述公共密钥证书写入所述存储卡。
8.根据权利要求1的所述信息安全装置,其中所述信息安全装置的安全性基于椭圆曲线离散对数问题,所述参数接收单元接收组成椭圆曲线的多个参数,以及所述公共密钥产生单元,在所述私有密钥上利用所述椭圆曲线,通过对于每个参数执行乘法,产生所述多个公共密钥。
9.根据权利要求8所述的信息安全装置,其中所述私有密钥产生单元产生私有密钥SK,所述参数接收单元接收多组参数,每组包括组成所述椭圆曲线y2=x3+ax+b的a和b,质数p,和椭圆曲线上的基点G,以及所述公共密钥产生单元,通过对于每组参数计算SK*G(mod p),产生所述公共密钥。
10.根据权利要求1所述的信息安全装置,其中所述信息安全装置的安全性基于RSA密码系统,所述私有密钥产生单元产生私有密钥d,所述参数接收单元接收多组质数(P,Q)作为所述多个参数,以及所述公共密钥产生单元对于每组所述质数,通过计算N=PQ,以及还从ed≡1mod(P-1)(Q-1)计算e,以产生所述多组公共密钥(N,e)。
11.一种存储卡,基于一组满足条件的整数的逆运算的复杂性,以安全可靠的形式管理信息,所述存储卡包括私有密钥产生单元,用于产生私有密钥;参数接收单元,用于接收分别确定多个条件的多个参数;公共密钥产生单元,用于利用所述私有密钥,从满足所述多个条件的多组整数中产生公共密钥,其中所述多个条件由所述多个参数确定,以及私有密钥存储单元,用于在防止外部篡改和破译的区域中存储所述私有密钥。
12.根据权利要求11所述的存储卡,其中所述存储卡插入经由网络连接至多个服务器的终端设备中,所述多个参数分别经由所述终端设备从所述多个服务器接收,且所述多个参数彼此不同;以及所述公共密钥产生单元利用各个参数产生彼此不同的多个公共密钥。
13.根据权利要求12所述的存储卡,其中所述存储卡利用所述私有密钥和所述公共密钥,以安全可靠的方式,经由所述终端设备从每个服务器获取内容。
14.一种信息安全系统,基于一组满足条件的整数的逆运算的复杂性,以安全可靠的方式管理信息,所述信息安全装置包括私有密钥产生单元,用于产生私有密钥;参数接收单元,用于接收分别确定多个条件的多个参数;以及公共密钥产生单元,用于利用所述私有密钥,从满足所述多个条件的多组整数中产生多个公共密钥,其中所述多个条件由所述多个参数确定。
15.一种用于信息安全装置的密钥产生方法,其中所述信息安全装置基于一组满足条件的整数的逆运算的复杂性,以安全可靠的方式管理信息,所述密钥产生方法包括如下步骤产生私有密钥;接收分别确定多个条件的多个参数;以及利用所述私有密钥,从满足所述多个条件的多组整数中产生多个公共密钥,其中所述多个条件由所述多个参数确定。
16.一种用于信息安全装置的密钥产生程序,其中所述信息安全装置基于一组满足条件的整数的逆运算的复杂性,以安全可靠的方式管理信息,所述密钥产生程序包括如下步骤产生私有密钥;接收分别确定多个条件的多个参数;以及利用所述私有密钥,从满足所述多个条件的多组整数中产生多个公共密钥,其中所述多个条件由所述多个参数确定。
17.一种用于信息安全装置的计算机可读记录介质,其中该记录介质上记录有密钥产生程序,所述信息安全装置基于一组满足条件的整数的逆运算的复杂性,以安全可靠的方式管理信息,所述密钥产生程序包括如下步骤产生私有密钥;接收分别确定多个条件的多个参数;以及利用所述私有密钥,从满足所述多个条件的多组整数中产生多个公共密钥,其中所述多个条件由所述多个参数确定。
全文摘要
一种信息安全装置,基于满足条件的一组整数的逆运算的复杂性,以安全可靠的形式管理信息。该信息安全装置包括私有密钥产生单元,用于产生私有密钥;参数接收单元,用于接收分别确定多个条件的多个参数;和公共密钥产生单元,用于利用所述私有密钥从满足多个条件的多组整数中产生多个公共密钥,其中所述多个条件由所述多个参数确定。
文档编号H04L9/28GK1954544SQ20058001559
公开日2007年4月25日 申请日期2005年3月11日 优先权日2004年3月16日
发明者中野稔久, 大森基司 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1