Warwickford和Michael Baum所写的1997年12月24日发表于PearsonEducation的“Secure Electronic Commerce:Building theInfrastructure for Digital Signatures and Encryption”。
具体实施方式
1.第一实施例
以下描述作为与本发明有关的一个实施例的更新系统10。
1.1 更新系统10的结构
如图1所示,更新系统10由终端装置100、服务器装置400和证书管理装置600组成,上述装置通过因特网彼此连接。
终端装置100其中存储包括用于重放由视频和声音组成的内容的进程的内容重放程序,和表示该程序的代的版本信息。
内容重放程序经历了开发公司意图改善的重复尝试。每当作出任何改善的时候,开发公司发布用于将该内容重放程序从旧一代更新到新一代的更新程序。这样,从开发出内容重放程序到开发出该内容重放程序的最新版本的时间段过程中,应该有几代相同的内容重放程序。使用版本信息来标识每代的内容重放程序。
当插入存储该内容的DVD(数字通用光盘)时,终端装置100根据该内容重放程序重放该内容。终端装置100通过因特网20连接到服务器装置400。服务器装置400其中存储了用于将该内容重放程序更新到新一代的更新程序。基于终端装置100的请求,服务器装置400将更新程序传送到终端装置100。
终端装置100通过经历一系列更新程序的下载、更新程序有效性检验以及更新程序的安装,来更新存储在其中的内容重放程序。
所述的更新程序的一系列下载、检验和安装在本发明中称为“更新”。然而取决于从其获得更新程序的一方,更新还可以另外包括已获得的更新程序的解密处理、压缩的更新程序的解压缩处理。此外,在某些情况下,更新不包括下载处理。
终端装置100判断是否通过更新程序执行更新。
当判断为肯定之后,终端装置100计算下载所需的时间(下载时间)。
终端装置100中存储了终端装置100的用户或制造公司设置好的下载允许时间、检验允许时间和安装允许时间。终端装置100比较计算的下载时间和下载允许时间,当计算的下载时间被判断为不大于该下载允许时间时,执行该更新程序的下载,而当计算的下载时间被判断为大于该下载允许时间时,挂起下载该更新程序的处理。
还通过首先比较计算的检验所需时间和检验允许时间,以确定是否执行该检验,而执行有效检验处理。类似地,通过首先比较计算的安装所需时间和安装允许时间,以确定是否执行该安装,而执行安装处理。
一旦挂起任何处理,例如在用户已结束重放相应内容之后,执行该处理。
1.2 DVD500a、DVD500b和DVD500c
有三种类型的DVD插入终端装置100,也就是DVD500a、DVD500b和DVD500c,其分别是能够记录大量数据的便携式光盘介质。
根据插入终端装置100的DVD类型,关于存储在终端装置100中的内容重放程序的更新程序的获得方法发生变化。
当插入DVD500a时,终端装置100发送存储在终端装置100中的内容重放程序的版本信息。作为响应,服务器装置400比较接收的版本信息和服务器装置400存储的最新版本信息。当判断服务器装置400中存储的最新版本信息较新时,服务器装置400发送更新程序,而终端装置100接收该更新程序。
当插入DVD500b时,终端装置100比较存储在终端装置100中的内容重放程序的版本信息和存储在DVD500b中的内容重放程序的版本信息505b。当版本信息505b较新时,终端装置100从服务器装置400获取更新程序。
当插入DVD500c时,终端装置100比较终端装置100中存储的内容重放程序的版本信息144和存储在DVD500c中的版本信息505c。当版本信息505c较新时,终端装置100从DVD500c获取更新程序。
如后面所示,参照图2详细描述了分别存储在DVD500a、DVD500b和DVD500c中的程序和数据的结构。
例如DVD500a存储诸如影片等的内容501a
DVD500b存储内容501b、版本信息505b和程序大小表530b。
版本信息505b表示适于重放内容501b的一代内容重放程序。这里,假定版本信息505b与存储在服务器装置400中的最新版本信息相同。
程序大小表530b是由多条程序大小信息531b、532b...组成的,每条程序大小信息由旧版本信息和程序大小构成。程序大小表示已加密并压缩的更新程序(“加密压缩更新程序”)的大小。加密压缩更新程序通过对更新程序压缩且加密而生成,该更新程序包括将内容重放程序从旧版本信息表示的代更新到由版本信息505b表示的代的过程。
DVD500c存储了内容501c和程序文件503c。程序文件503c包括版本信息505c、压缩更新程序506c和程序大小507c。版本信息505c表示用于重放内容501c的一代内容重放程序。在这里,假定版本信息505c与服务器装置400中存储的最新版本信息完全相同。
通过压缩更新程序生成压缩更新程序506c。更新程序用于将终端装置100中存储的内容重放程序更新成版本信息505c表示的该代更新程序。程序大小507c表示压缩更新程序的大小。
虽然附图中未示出,DVD500a、DVD500b和DVD500c分别存储了程序标识符,该标识符标识用于重放其(DVD500a、DVD500b和DVD500c)存储的内容的内容重放程序。
1.3 服务器装置400
如图3所示,服务器装置400由通信加密/解密单元401、验证单元402、通信单元403、输入单元405、控制单元407、信息存储单元410和显示单元413组成。
(1)信息存储单元410
信息存储单元410由硬盘单元构成,并且包括内容存储单元412和程序存储单元415。
内容存储单元412存储例如影片等的视频内容。
程序存储单元415存储例如程序更新表420、程序文件夹AI430和程序文件夹B440,如图4所示。
程序文件夹B440存储例如更新程序441和445,该程序是由计算机程序的开发公司创建的。
程序文件夹AI430存储了例如程序文件431和435。程序文件431由加密压缩更新程序432和校验数据433构成。
通过使用程序密钥对压缩更新程序执行加密算法E1,生成加密压缩更新程序432,其中该压缩更新程序是通过对更新程序441执行压缩算法P而生成。加密算法E1依照例如DES(数据加密标准)。DES是公知技术,因此省略了对其的解释。
校验数据433由160字节的散列值组成,该散列值是通过将加密压缩更新程序432代入散列函数而生成的。散列函数是例如SHA-1。散列函数SHA-1是公知技术,因此省略了对其的解释。注意上述的签名生成方法仅是例子,还可以采用其他方法。
程序文件435由通过更新程序445生成的加密压缩程序436和校验数据437构成。
如图5所示,程序更新文件420由多条程序信息421、422、423...组成。每条程序信息由计算机程序的标题、该程序的最新版本信息、更新日期、更新模式、与相应程序的更新模式相对应的更新中使用的程序文件的文件名、该程序文件的存储位置、包括在该程序文件中的加密压缩更新程序的程序大小,和用于生成该加密压缩更新程序的程序密钥。程序大小的单位是兆字节。
(2)通信单元403
通信单元403连接到因特网20,并执行连接到因特网20的外部装置与控制单元407或验证单元402中任一个之间的信息发送/接收。
在这里,外部装置具体是终端装置100。
(3)验证单元402
如图6所示,验证单元402由验证控制单元471和内部存储器472构成。
内部存储器472由ROM和硬盘构成。内部存储器472存储认证机构公共密钥PK_CA_473、与公共密钥证书Cert_B_480所认证的公共密钥成对的服务器秘密密钥SK_B_474、CRL(证书撤销列表)475和认证由认证机构发布的服务器装置400的公共密钥PK_B_489的公共密钥证书Cert_B_480。
公共密钥证书Cert_B_480由认证机构的证书管理装置600发布,并且例如根据ITU(国际电信同盟)推荐的X.509版本1格式而创建。公共密钥证书Cert_B_480包括表示X.509签名(signature)格式的一代的证书格式481、唯一地分配给该证书的序列号No.482、标识在生成认证机构签名数据490中使用的签名算法的签名算法标识符483、作为已发布的公共密钥证书Cert_B_480的认证机构的标识符的认证机构名484、公共密钥证书Cert_B_480的到期日期485、作为与公共密钥证书Cert_B_480认证的公共密钥成对的秘密密钥的所有者的标识符的所有者名称486、包括公共密钥证书Cert_B_480认证的公共密钥PK_B_489和使用公共密钥PK_B_489在签名生成中使用的签名算法标识符488的所有者密钥信息487、以及认证机构签名数据490。非专利参考文献1中公开了X.509版本1格式,因此其为公众所公知。因此省略了对其的详细描述。
验证控制单元471在每天的固定时间,通过通信单元403,从认证机构指定的URL或目录服务获得CRL,以便将内部存储器472中的CRL 475改写成新的CRL。在控制单元407和终端装置100之间的通信开始之前,验证控制单元471以下面的方式建立与外部装置共享会话密钥的SAC(安全验证通道)。
下面的SAC建立方法仅是一个实例,其他方法是可能的。
将Gen()设定为密钥生成函数,而将Y设置成对该系统唯一的参数。假定密钥生成函数Gen()满足下面的关系:
“Gen(x,Gen(z,Y))=Gen(z,Gen(x,Y))
可以通过任何公知技术实现密钥生成函数,因此省略了其详细解释。在非专利参考文献1和非专利参考文献2中公开了作为公共密钥分发系统的密钥生成函数的一个实例。
验证控制单元471通过通信单元403从终端装置100接收公共密钥证书Cert_A,并且从控制单元407接收用于SAC建立的指令。首先,验证控制单元471读取认证机构公共密钥PK_CA_473,并通过对包括在所接收的公共密钥证书Cert_A中的认证机构签名数据Sig_CA执行签名检验算法V,来执行签名检验。当检验结果表示失败时,验证控制单元471结束关于SAC建立的处理。
当检验结果表示成功时,验证控制单元471从内部存储器472读出CRL 475,并判断所接收的公共密钥证书Cert_A中包括的序列号是否已在读出的CRL中注册。
当判断结果是肯定的时(即当序列号已在CRL中注册时),验证控制单元471结束该用于SAC建立的处理。
相反,当判断结果是否定的时(即当序列号没有在CRL中注册时),验证控制单元471从内部存储器472中读出公共密钥证书Cert_B_480,并通过通信单元403将公共密钥证书Cert_B_480发送到终端装置100。
接下来,验证控制单元471生成随机数Cha_B,并通过通信单元403将随机数Cha_B发送到终端装置100。
接下来,验证控制单元471通过通信单元403从终端装置100接收签名数据Sig_A,并且通过使用在所接收的公共密钥证书Cert_A中包括的公共密钥PK_A对所接收的签名数据Sig_A执行签名检验算法V,来执行签名检验。当检验结果表示失败时,结束用于SAC建立的处理。
接下来,验证控制单元471通过通信单元403从终端装置100接收随机数Cha_A,从内部存储器472读出服务器秘密密钥SK_B_474,通过使用服务器秘密密钥SK_B_474对所接收的随机数Cha_A执行签名生成算法S,来生成签名数据Sig_B,并且通过通信单元403将所生成的签名数据Sig_B发送到终端装置100。
接下来,验证控制单元471接收使用密钥生成函数G()和对系统唯一的参数Y生成的Key_A。
验证控制单元471生成随机数“b”,并使用所生成随机数“b”生成Key_B=Gen(b,Y)。接下来,验证控制单元471通过通信单元403将所生成的Key_B发送到终端装置100。
接下来,验证控制单元471使用所接收的Key_A和随机数“b”生成会话密钥Key_AB=Gen(b,Key_A)。
接下来,验证控制单元471将所生成的会话密钥输出到通信加密/解密单元401,并且将报告SAC建立成功的控制信号输出到控制单元407。
(4)控制单元407
控制单元407由微处理器、RAM、ROM等构成,其未在附图中具体地示出。RAM和ROM分别存储计算机程序。控制单元407通过微处理器根据计算机程序工作而实现其功能。
当通过通信单元403从终端装置100接收到公共密钥证书Cert_A时,控制单元407将所接收到的Cert_A输出到验证单元402,以命令SAC建立。控制单元407还从验证单元402接收报告SAC建立成功的控制信号。
另外,控制单元407通过通信单元403从终端装置100接收加密标题和加密版本信息。当已经接收到上述这些条信息时,控制单元407将该加密标题和加密版本信息输出到通信加密/解密单元401,并命令通信加密/解密单元401执行解密。控制单元407从通信加密/解密单元401接收标题和版本信息,从包括所接收的标题的程序信息中读出最新的版本信息,并比较所读出的最新版本信息和所接收到的版本信息。当所接收的版本信息和该最新版本信息表示相同的代时,获得比较结果“0”。
当所接收的版本信息表示比该读出的最新版本信息较旧的代时,控制单元407获取比较结果“1”。接下来,控制单元407选择包括所接收的标题并且所接收的版本信息与在更新模式中更新前的版本信息匹配的程序信息421。然后控制单元407读出包括在所选择的程序信息421中的程序大小,并将该程序大小和所获得的比较结果发送到终端装置装置100。
当从终端装置100接收到加密标题、加密版本信息和下载请求时,控制单元407将该加密标题和该加密版本信息输出到通信加密/解密单元401,并命令通信加密/解密单元401执行解密。当从通信加密/解密单元401接收到标题和版本信息时,控制单元407基于所接收的标题和版本信息从程序更新表420中选择程序信息421,读出包括在所选择的程序信息中的程序密钥,将该程序密钥输出到通信加密/解密单元401,并命令通信加密/解密单元401执行加密。当从通信加密/解密单元401接收到加密的程序密钥时,控制单元407基于包括在所选择的程序信息中的文件名和存储位置,读出用于更新的程序文件431。接下来,控制单元407将程序文件431和该加密的程序密钥通过通信单元403发送到终端装置100。
(5)通信加密/解密单元401
通信加密/解密单元401从验证单元402接收会话密钥,并存储所接收的会话密钥。当接收到新的会话密钥时,通信加密/解密单元401删除存储的会话密钥,并存储新的会话密钥作为代替。
当通信加密/解密单元401从控制单元407接收到加密标题、加密版本信息和用于解密的指令时,通信加密/解密单元401通过使用该会话密钥对该加密标题和该加密版本信息执行解密算法D2,生成标题和版本信息,并将该标题和版本信息输出到控制单元407。
当从控制单元407接收到程序密钥和用于加密的指令时,通信加密/解密单元401通过使用会话密钥对接收的程序密钥执行加密算法E3,生成加密程序密钥,并将生成的程序密钥输出到控制单元407。
在这里,解密算法D2用于对使用加密算法E2加密的加密数据进行解密。例如,加密算法E2和E3是依据DES(数据加密标准)的。DES是公知技术,因此省略了对其的解释。
(6)输入单元405和显示单元413
输入单元405从服务器装置400的操作者接收数据或指令的输入,并将所接收到的数据或指令输出到控制单元407。
显示单元413根据控制单元407的控制显示各种类型的信息。
1.4 终端装置100
如图7所示,终端装置100包括通信加密/解密单元101、验证单元102、通信单元103、输入/输出单元104、外部操作接收单元105、更新控制单元106、主控制单元107、主存储单元110、硬盘单元111、时间管理单元112、视频生成单元113、电源控制单元115和供电单元116。
终端装置100由微处理器、RAM、ROM等构成,其在附图中并未具体地示出。RAM、ROM、主存储单元110和硬盘单元111分别存储计算机程序。终端装置100通过微处理器根据该计算机程序工作而实现其功能。
如图1所示,终端装置100连接到监视器120。另外,DVD500a、DVD500b和DVD500c插入终端装置100。
根据是否已插入任何DVD和根据插入终端装置100中的DVD类型,存储在终端装置100中的内容重放程序的更新方法会改变。
(i)没有DVD插入或插入DVD500a的情况
终端装置100从服务器装置400获得存储在服务器装置400中的最新版本信息和存储在终端装置100中的内容重放程序的版本信息的比较结果。
·如果比较结果是“1”,表示存储在终端装置100中的版本信息是比存储在服务器装置400中的最新版本信息较旧的代,则终端装置100从服务器装置400获得更新程序。
·如果比较结果是“0”,表示存储在终端装置100中的版本信息与存储在服务器装置400中的最新版本信息是同一代的,则终端装置100不需执行更新。
注意存储在服务器装置400中的最新版本信息是内容重放程序的开发公司管理的,并且在必要时进行更新。因此,原则上不存在存储在终端装置100中的版本信息比存储在服务器装置400中的最新版本信息的代更新的情况。
这样,如果内容重放程序是“适用的”,这意味着内容重放程序是最新一代的。
(ii)插入DVD500b的情况
终端装置100比较存储在DVD500b中的版本信息505b和存储在终端装置100中的内容重放程序的版本信息。
·当比较结果显示存储在终端装置100中的版本信息与存储在DVD500b的版本信息505b相比是较旧的代时,终端装置100从服务器装置400获得更新程序。
·当比较结果显示存储在终端装置100中的版本信息与存储在DVD500b的版本信息505b是同一代时,终端装置100不执行更新。
这样,如果内容重放程序是“适用的”,这意味着内容重放程序与DVD中存储的版本信息相比是同一代或较新的。这还意味着该内容重放程序是适用于该内容重放的代。
在这里,假定存储在DVD500b中的版本信息505b与存储在服务器装置400中的最新版本信息是同一代的,而且存储在终端装置100中的版本信息不会比存储在DVD500b中的版本信息505b中的最新版本信息更新。
(iii)当插入DVD500c的情况
终端装置100比较存储在DVD500c中的版本信息和存储在终端装置100中的内容重放程序的版本信息。
·当比较结果显示存储在终端装置100中的版本信息是比存储在DVD500c中的版本信息505c较旧的代时,终端装置100从DVD500c获得更新程序。
·当比较结果显示存储在终端装置100中的版本信息与存储在DVD500c中的版本信息505c的版本相同时,终端装置100不执行更新。
这样,如果内容重放程序是“适用的”,这意味着内容重放程序与存储在该DVD中的版本信息表示的代相同或比其较新。
然而,根据存储在终端装置100中的内容重放程序的版本信息,必需的更新程序是不同的。因此假定各种情况在DVD500c中准备各种更新程序。上述更新程序的实例有:从版本1.0到版本4.0的更新程序、从版本2.0到版本4.0的更新程序以及从版本3.0到版本4.0的更新程序。由于DVD的容量有特定限制,该方法并不理想。在当前实施例中,将DVD500c设计为存储用于更新存储在终端装置100中的内容重放程序的更新程序,而且存储在终端装置100中的版本信息永远不能比存储在DVD500c中版本信息505c中存储的最新版本信息的代更新。后面将陈述(i)—(iii)的细节。
(1)供电单元116
供电单元116连接到外部电源(例如,电源出口),而且根据来自电源控制单元115的用于开始供电的指令,开始对终端装置100的每个单元供电,而且根据用于停止供电的指令,停止对终端装置100的每个单元的供电。
(2)输入/输出单元104
在主控制单元107控制下,输入/输出单元104分别从DVD500a、DVD500b和DVD500c读出内容501a、501b和501c,并将内容501a、501b或501c输出到主控制单元107。
另外,在更新控制单元106控制下,输入/输出单元104从DVD500b读出版本信息505b,并将版本信息505b输出到更新控制单元106。
另外,在更新控制单元106控制下,输入/输出单元104从DVD500c读出程序文件503c,并将程序文件503c输出到更新控制单元106。
(3)外部操作接收单元105
外部操作接收单元105检测用户对重放按钮等的按压。根据上述对按钮的按压的检测,外部操作接收单元105将对应于被检测到已按压的按钮的操作指令信息输出到主控制单元107。
(4)主存储单元110和硬盘单元111
主存储单元110由RAM构成,其中存储例如待处理信息(pendinginformation)131、内容重放程序132和并行标记(parallel flag)133(参见图8)。
待处理信息131表示下列状态的一种:下载、检验和安装均被挂起的状态;从检验到安装被挂起的状态;解密和安装被挂起的状态;仅有安装被挂起的状态;没有处理被挂起的状态。“A”对应于下载、检验和安装均被挂起的状态,“B”对应于从检验到安装被挂起的状态,“C”对应于解密和安装被挂起的状态,“D”对应于仅有安装被挂起的状态,“E”对应于没有处理被挂起的状态。
内容重放程序132由表示内容的重放过程的多个计算机指令构成。
并行标记133表示微处理器是否能够与其他处理(内容重放等)并行地执行更新。“1”表示该并行处理是可能的,而“0”表示该并行处理是不可能的。
硬盘单元111由非易失性存储器构成。如图9所示,硬盘单元111存储了例如内容重放程序142、程序文件150和程序密钥160。
内容重放程序142包括标题143、版本信息144和程序单元145。标题143是用于标识内容重放程序142的标题,版本信息144表示内容重放程序142的代。程序单元145由表示内容的重放过程的多个计算机指令构成。
程序文件150是通过因特网20从服务器装置400接收的,并且包括加密压缩程序151和校验数据152。通过对包括改变部分或全部内容重放程序142的过程的更新程序进行压缩并加密,生成加密压缩程序151。基于该加密压缩程序151并使用散列函数,生成校验数据152。
程序密钥160是用于解密包括在程序文件150中的加密压缩程序的密钥值。
硬盘单元111存储各种类型的屏幕数据。如图11所示,该屏幕数据用于获得开始屏幕310和设定改变屏幕320。
(5)通信单元103
通信单元103连接到因特网20,并执行主控制单元107、更新控制单元106、验证单元102和连接到因特网20的外部装置之间的信息发送/接收。
在这里,外部装置具体是服务器装置400。
(6)验证单元102
如图10所示,验证单元102由验证控制单元171和内部存储器172构成。
内部存储器172由ROM和硬盘构成。内部存储器172存储由认证机构生成的认证机构公共密钥PK_CA_173、用于认证由认证机构发布的终端装置100的公共密钥PK_A_189的公共密钥证书Cert_A_180、与公共密钥证书Cert_A_180中包括的公共密钥PK_A_189成对的终端秘密密钥SK_A_174、包括无效公共密钥证书的序列号的CRL(证书撤销列表)175、以及CRL更新日期176。
认证机构公共密钥PK_CA_173、终端秘密密钥SK_A_174和公共密钥证书Cert_A_180由终端装置100的制造公司在装载时记录。
公共密钥证书Cert_A_180是由认证机构的证书管理装置600发布的,而且是根据例如由ITU(国际电信同盟)推荐的X.509版本1创建的。公共密钥证书Cert_A_180包括表示X.509签名格式的一代的证书格式181、唯一指定给该证书的序列号182、标识在生成认证机构签名数据190中使用的签名算法的签名算法标识符183、作为已发布公共密钥证书Cert_A_180的认证机构的标识符的认证机构名184、公共密钥证书Cert_A_180的到期日期185,作为与公共密钥证书Cert_A_180认证的公共密钥成对的秘密密钥的所有者的标识符的所有者名186、包括由公共密钥证书Cert_A_180认证的公共密钥PK_A_189和使用公共密钥PK_A_189在签名生成中使用的签名算法标识符188的所有者密钥信息187、以及认证机构签名数据190。非专利参考文献1中公开了X.509版本1格式,因此其是公知的。从而省略了对其的详细描述。
当启动终端装置100之后开始供电时,验证控制单元171比较CRL更新日期176和日期信息。当CRL更新日期176不同于该日期信息时,验证控制单元171通过通信单元103,从认证机构指定的URL或目录服务获得新的CRL,以将内部存储器172中的CRL175改写成新的CRL。在改写CRL175之后,验证控制单元171用该日期信息表示的日期改写CRL更新日期176。
在更新控制单元106或主控制单元107开始与外部装置的数据的发送/接收之前,验证单元102根据从更新控制单元106或主控制单元107接收的用于SAC建立的指令,建立SAC(安全验证通道),该SAC与外部装置共享会话密钥。以下面的方式执行SAC的建立。注意下面的SAC建立方法仅仅是一个实例,还可以采用其他方法。
在这里,设置Gen()作为密钥生成函数,装置Y作为对该系统唯一的参数。假定密钥生成函数Gen()满足下面的关系:
“Gen(x,Gen(z,Y))=Gen(z,Gen(x,Y)
通过任何公知技术,可以执行密钥生成函数,因此省略了对其的详细描述。密钥生成函数的一个实例是Ikeno Shinichi和KoyamaKenji,Denki_Tsushin_Gakkai(Institute of Electric Communication)提出的非专利参考文献2“Gendai Ango Ron(Modernencryption theory)”中公开的Diffie Hellman(DH)公共密钥分发方法。
当已经接收到来自更新控制单元106的SAC建立的指令时,验证控制单元171从内部存储器172中读出Cert_A_180,并通过通信单元103和因特网20将Cert_A_180发送到服务器装置400。接下来,当已经通过通信单元103从服务器装置400中接收服务器装置400的公共密钥证书Cert_B时,验证控制单元171从内部存储器172中读出认证机构公共密钥PK_A_173,并通过对所接收的公共密钥证书Cert_B中所包括的认证机构签名数据Sig_CA执行签名检验算法V来执行签名检验。当检验结果表示失败时,验证控制单元171结束该建立SAC的处理。
当检验结果表示成功时,验证控制单元171从内部存储器172中读出CRL 175,并判断在所接收的公共密钥证书Cert_B中所包括的序列号是否已在读出的CRL 175中注册。
当判断结果是肯定时(即当序列号已在CRL 175中注册时),验证控制单元171结束用于建立SAC的处理。
相反,当判断结果是否定时(即当序列号没有在CRL 175中注册时),验证控制单元171通过通信单元103从服务器装置400中接收随机数Cha_B,从内部存储器172中读出终端秘密密钥SK_A_174,通过使用终端秘密密钥SK_A_174对所接收的随机数Cha_B执行签名生成算法S来生成签名数据Sig_A,并通过通信单元103将所生成的签名数据Sig_A发送到服务器装置400。
接下来,验证控制单元171生成随机数Cha_A,并通过通信单元103将随机数Cha_A发送到服务器装置400。
接下来,验证控制单元171通过通信单元103从服务器装置400接收签名数据Sig_B,并且通过使用在所接收的公共密钥证书Cert_B中包括的公共密钥PK_B对所接收的签名数据Sig_B执行签名检验算法V来执行签名检验。当检验结果表示失败时,验证控制单元171结束用于建立SAC的处理。
当检验结果表示成功时,验证控制单元171生成随机数“a”,并使用所生成的随机数“a”生成Key_A=Gen(a,Y)。接下来,验证控制单元171通过通信单元103将所生成的Key_A发送到服务器装置400。
验证控制单元171从服务器装置400接收使用密钥生成函数G和对该系统唯一的参数Y所生成的Key_B。接下来,验证控制单元171使用所接收的Key_B和随机数“a”生成会话密钥Key_AB=Gen(a,Key_B)。
验证控制单元171将所生成的会话密钥输出到通信加密/解密单元101,并且将表示SAC建立成功的控制信号输出到更新控制单元106。
注意,在关于更新的通信过程中,由更新控制单元106控制验证单元102。在其他通信过程中(例如在内容下载过程中),验证单元102受到主控制单元107的控制。然而,验证单元102在两种情况中所执行的处理是相同的,因此为了简单起见,迄今为止将解释(在(6)验证单元102的标题以下)限制到在关于更新的通信过程中所执行的处理。
(7)监视器120
监视器120接收包括垂直回扫时间和水平回扫时间的视频信号,并根据所接收的视频信号显示视频。
图11示出了监视器120所显示的屏幕的一个实例。开始屏幕310包括两个选择,即开始311和设定改变312。设定改变屏幕320是用于接收关于下载允许时间、检验允许时间以及安装允许时间的设定改变的屏幕,随后对其进行详细论述。此外,设定改变屏幕320用于接收更新频率设定改变以及通信速度设定改变,其中更新频率表示为了更新而与服务器装置400进行通信的时间表,这些将在随后讨论。
(8)主控制单元107
主控制单元107在接收到表示“电源按钮开启”的操作指令信息时,生成开始屏幕310,将所生成的开始屏幕310输出到视频生成单元113,并命令显示开始屏幕310。当已经接收到用于在开始屏幕310中选择开始311作为用户按钮操作的结果的选择操作指令信息时,主控制单元107命令更新控制单元106开始更新处理。
当已经从外部操作接收单元105接收到用于在开始屏幕310中选择设定改变312的操作指令信息时,主控制单元107获得设定改变屏幕320,并将所获得的设定改变屏幕320输出到视频生成单元113,并命令显示设定改变屏幕320。当已经从外部操作接收单元105接收到通过用户的按钮操作得到的表示“每周一”的更新频率时,主控制单元107将表示“每周一”的更新频率输出到更新控制单元106。当已经接收到关于下载允许时间、检验允许时间、安装允许时间或者通信速度设定改变中的任何一个的设定改变时,主控制单元107将所接收的设定改变输出到时间管理单元112。
当完成设定改变的处理时,主控制单元107命令更新控制单元106开始更新。
当已经接收到表示可能进行并行处理的控制信号、表示结束更新处理的控制信号、或者表示挂起更新的控制信号时,主控制单元107通过外部操作接收单元105接收用户的按钮操作。当已经接收到表示按下重放按钮的操作指令信息时,主控制单元107从硬盘单元111读出内容重放程序142,将内容重放程序142写入主存储单元110,从DVD500a、DVD500b和DVD500c中获得与已经写入到主存储单元110中的内容重放程序中所包括的计算机指令一致的内容,并重放所获得的内容。这里,还可以重放存储在硬盘单元111中的内容。
当已经接收到表示按下其他按钮的操作指令信息时,执行相应处理。当从电源控制单元115接收到表示“电源按钮关闭”的操作指令信息时,主控制单元107结束用于内容重放程序的处理,并从主存储单元110中读出待处理信息131。当待处理信息131表示“E”时,“E”意味着没有挂起的处理,主控制单元107向电源控制单元115表示电源关闭。
如果读出的待处理信息不是“E”,则主控制单元107将待处理信息输出到更新控制单元106,并命令重新开始更新。当已经接收到表示结束更新处理的控制信号时,主控制单元107向电源控制单元115命令“电源关闭”。
(9)更新控制单元106
更新控制单元106中存储表示关于通过因特网执行的更新的“每周一”的更新频率。“每周一”的更新频率具体表示当按下电源按钮同时没有插入DVD或者插入DVD500a时,需要通过因特网20询问服务器装置400内容重放程序142是否是最新的代。
另外,当已经从主控制单元107接收到用于更新频率的设定改变信息时,更新控制单元106改变当前存储的更新频率。注意,可以由制造公司在制造终端装置100时设定更新频率。
(更新开始)
当已经从主控制单元107接收到开始更新的指令时,更新控制单元106写入表示没有过程挂起的“E”,作为主存储单元110的待处理信息。
接下来,更新控制单元106读出安装在终端装置100中的微处理器的时钟频率,时钟频率已经存储在更新控制单元106中,并且判断所读出的时钟频率是否是400MHz或者更高。当时钟频率是400MHz或者更高时,应当理解终端100能够与其他处理(例如内容重放)并行地执行更新,因此更新控制单元106设定并行标记“1”。相反地,当时钟频率低于400MHz时,应当理解终端装置100不能执行并行处理,因此更新控制单元106设定并行标记“0”。然后将已经设定的标记写入主存储器110。
接下来,更新控制单元106判断并行标记。当并行标记为“1”时,更新控制单元106将表示可以执行并行处理的控制信号输出到主控制单元107。
接下来,更新控制单元106通过输入/输出单元104判断是否已经插入了DVD。当判断已经插入了DVD时,校检DVD的内容。特别是更新控制单元106判断已经插入了DVD500a、DVD500b和DVD500c中的哪一个,并执行上述处理(i)、(ii)和(iii)。
如下,详细描述上述处理(i)-(iii)。
(i)当没有插入DVD或者当已经插入了DVD500a
更新控制单元106根据以下过程(i-a)到(i-g)执行更新处理或者挂起更新处理。
(i-a)对于更新的必要性进行判断
更新控制单元106获得表示当前日期和天的数据信息,并将在所获得的日期信息中包含的天与已经存储在其中的表示“每周一”的更新频率进行比较。当该日期信息中包含的天不是“周一”时,则更新控制单元106输出表示结束更新处理的控制信号并结束更新处理。
该日期信息中包含的天是“周一”时,更新控制单元106命令验证单元102执行SAC建立。当已经从验证单元102接收到表示SAC建立成功的控制信号时,更新控制单元106从硬盘单元111中读出内容重放程序142的标题143和版本信息144,并将标题143和版本信息144输出到通信加密/解密单元101,并命令通信加密/解密单元101执行加密。当已经从通信加密/解密单元101接收到加密的标题和加密的版本信息时,更新控制单元106将加密的标题和加密的版本信息通过通信单元103发送到服务器装置400。
接下来,更新控制单元106从服务器装置400接收在终端装置100中的版本信息与在服务器装置400中存储的最新版本信息之间的比较结果以及程序大小。当比较结果为“0”时,应该理解为不需要更新,因此更新控制单元106向主控制单元107输出表示结束更新处理的控制信号,并结束更新处理。当比较结果为“1”时,应该理解为需要进行更新。
然后更新控制单元106判断并行标记。当并行标记为“0”时,更新控制单元106开始(i-b)的处理。当并行标记为“1”时,更新控制单元106则开始(i-c)的处理。
(i-b)下载时间的预测
更新控制单元106向时间管理单元112输出从服务器装置400接收的程序大小,并命令时间管理单元112预测下载时间。然后,更新控制单元106从时间管理单元112接收时间管理单元112所预测的下载时间与下载允许时间的比较结果。当该比较结果表示所预测的下载时间在下载允许时间之内时,更新控制单元106开始(i-c)的处理。
当该比较结果表示所预测的下载时间超出了下载允许时间时,更新控制单元106写入“A”作为主存储单元110的待处理信息,“A”表示将这些过程从下载挂起,并将表示挂起更新的控制信号输出到主控制单元107。
(i-c)下载
接下来,更新控制单元106命令验证单元102执行SAC建立。当已经从验证单元102接收到表示SAC建立成功的控制信号时,更新控制单元106从硬盘单元111读出内容重放程序142的标题143和版本信息144,并将标题143和版本信息144输出到通信加密/解密单元101,并命令通信加密/解密单元101执行加密。当已经从通信加密/解密单元101接收到加密的标题和加密的版本信息时,更新控制单元106将加密的标题和加密的版本信息通过通信单元103发送到服务器装置400,并请求下载。
然后更新控制单元106从服务器装置400通过通信单元103接收程序文件和加密的程序密钥。这里,从服务器装置400发送的程序文件包括加密的压缩更新程序和使用加密的压缩更新程序生成的校验数据。
更新控制单元106将加密的程序密钥输出到通信加密/解密单元101,并命令通信加密/解密单元101执行解密。当已经接收到程序密钥时,更新控制单元106将所接收到的程序密钥和程序文件发送到主存储单元110。
接下来,更新控制单元106判断并行标记。当并行标记为“1”时,更新控制单元106开始(i-e)的处理。当并行标记为“0”时,更新控制单元106开始(i-d)的处理。
(i-d)检验时间的预测
更新控制单元106命令时间管理单元112预测检验时间,即对在所接收的程序文件中包括的校验数据进行检验所必需的时间。然后更新控制单元106从时间管理单元112接收所预测的检验时间与检验允许时间的比较结果。当所接收到的比较结果表示所预测的检验时间在检验允许时间之内时,更新控制单元106开始(i-e)的处理。
当该比较结果表示所预测的检验时间超过检验允许时间时,更新控制单元106写入“B”作为主存储单元110的待处理信息,“B”表示将过程从检验挂起。然后更新控制单元106从主存储单元110读出程序密钥和程序文件,并将程序密钥和程序文件写入硬盘单元111。
(i-e)检验
接下来,更新控制单元106采用如下方式对在所接收的程序文件中所包括的校验数据进行检验。
首先,更新控制单元106从主存储单元110读出加密的压缩更新程序,将该加密的压缩更新程序代入散列函数,从而生成160字节的散列值。散列函数例如为SHA-1。在此所采用的散列函数与服务器装置400所采用的散列函数相同。
接下来,更新控制单元106从主存储单元110读出在所接收的程序文件中所包括的校验数据,并将计算得到的散列值与校验数据进行比较。当所计算得到的散列值与校验数据不匹配时,则判断校验数据的检验失败。当所计算得到的散列值与校验数据匹配时,判断校验数据的检验成功。
当校验数据的检验判断为失败时,更新控制单元106从主存储单元110删除程序密钥和程序文件,并判断并行标记。当并行标记判断为“1”时,更新控制单元106再次执行从(i-c)的处理。当并行标记判断为“0”时,更新控制单元106写入“A”作为主存储单元110的待处理信息,“A”表示将这些过程从下载挂起,并将表示挂起更新的控制信号输出到主控制单元107。
当校验数据的检验判断为成功时,更新控制单元106判断并行标记。当并行标记判断为“0”时,更新控制单元106开始(i-f)的处理。当并行标记为“1”时,更新控制单元106判断内容是否正在由主控制单元107控制进行重放。当判断结果为否定时,将控制转到处理(i-f)。当判断结果为肯定时,更新控制单元106写入“C”作为主存储单元110的待处理信息,“C”表示将解密和安装的过程挂起,并将表示挂起更新的控制信号输出到主控制单元107。接下来,更新控制单元106从主存储单元110读出加密的压缩更新程序和程序密钥,并将加密的压缩更新程序和程序密钥写入硬盘单元111。
(i-f)安装时间的预测
接下来,更新控制单元106命令时间管理单元112预测安装时间。接下来,更新控制单元106从时间管理单元112接收所预测的安装时间与安装允许时间之间的比较结果。当该比较结果表示所预测的安装时间在安装允许时间之内时,更新控制单元106开始(i-g)的处理。当该比较结果表示所预测的安装时间超过安装允许时间时,更新控制单元106写入“C”作为主存储单元110的待处理信息,“C”表示将解密和安装的过程挂起。并将表示挂起更新的控制信号输出到主控制单元107。接下来,更新控制单元106从主存储单元110读出加密的压缩更新程序和程序密钥,并将加密的压缩更新程序和程序密钥写入硬盘单元111。
(i-g)安装
更新控制单元106从主存储单元110读出程序密钥和加密的压缩更新程序,并通过使用程序密钥对加密的压缩更新程序执行解密算法D1来生成压缩更新程序。这里,解密算法D1是用于对采用以下描述的加密算法E1所生成的密文进行解密的算法。加密算法E1是依据例如DES(数据加密标准)。
接下来,更新控制单元106通过对压缩更新程序执行解压缩算法Z来生成更新程序。解压缩算法Z是用于对采用以下描述的压缩算法P所压缩的数据进行解压缩的算法。这里,压缩算法P是例如Huffman编码和行程编码。Huffman编码和行程编码都是公知技术,因此省略相关的解释。
更新控制单元106根据所生成的更新程序改写在硬盘单元111中所存储的内容重放程序142的全部或者部分。从而安装完成。
当安装完成时,更新控制单元106输出表示结束更新处理的控制信号并结束更新处理。
(ii)在DVD500b的情况中
当判断已经插入了DVD500b时,根据以下过程执行更新。
(ii-a)对于更新的必要性进行判断
更新控制单元106从DVD500b中读出版本信息505b,并读出在硬盘单元111中所存储的内容重放程序142中包括的版本信息144。然后,更新控制单元106将版本信息505b与版本信息144进行比较。当版本信息144与版本信息505b表示相同的代时,更新控制单元106判断不需要更新。因此,更新控制单元106输出表示结束更新处理的控制信号,并结束更新处理。
当版本信息144是比版本信息505b旧的代时,更新控制单元106判断需要执行更新。然后更新控制单元106判断并行标记。当并行标记为“1”时,控制转到(ii-c)的处理。当并行标记为“0”时,控制转到(ii-b)的处理。
(ii-b)下载时间的预测
更新控制单元106通过输入/输出单元104从DVD500b读出程序大小表530b,选择包括与版本信息144匹配的先前版本信息的程序大小信息531b,将在所选择的程序大小信息531b中所包括的程序大小507b输出到时间管理单元112,并命令时间管理单元112预测下载时间。接下来,更新控制单元106从时间管理单元112接收所预测的下载时间与下载允许时间的比较结果。当该比较结果表示所预测的下载时间在下载允许时间之内时,更新控制单元106开始(ii-c)的处理。
当该比较结果表示所预测的下载时间超出了下载允许时间时,更新控制单元106写入“A”作为主存储单元110的待处理信息,“A”表示将这些过程从下载挂起,并将表示挂起更新的控制信号输出到主控制单元107。
然后执行从(ii-c)下载到(ii-g)安装的处理。然而,该处理与已经描述的(i-c)到(i-g)的处理相同,从而这里省略相关解释。
(iii)在DVD500c的情况中
当判断已经插入了DVD500c时,根据以下过程(iii-a)到(iii-c)执行更新。
注意,以下过程是在每次插入DVD500c时执行的。然而,以下过程也可以按照规律(例如每周一或者每个月的第10天)执行。
(iii-a)对于更新的必要性进行判断
更新控制单元106从DVD500c中读出程序文件503c,并从硬盘单元111中读出内容重放程序142中包括的版本信息144,然后,更新控制单元106将版本信息144与程序文件503c中包括的版本信息505c进行比较。
当版本信息144与版本信息505c表示相同的代时,更新控制单元106判断不需要更新。因此,更新控制单元106输出表示结束更新处理的控制信号,并结束更新处理。
当版本信息144是比版本信息505c旧的代时,更新控制单元106判断需要执行更新。然后更新控制单元106判断并行标记。当并行标记为“0”时,控制转到(iii-b)的处理。
当并行标记为“1”时,更新控制单元106判断内容是否正在由主控制单元107控制进行播放。当判断结果为肯定时,更新控制单元106写入“D”作为主存储单元110的待处理信息,“D”表示将安装过程挂起,并将从DVD500c中读出的程序文件503c写入到硬盘单元111。
当对内容是否正在重放的判断结果为否定时,控制转到(iii-b)的处理。
(iii-b)安装时间的预测
接下来,更新控制单元106将在程序文件503c中包括的程序大小507c输出到时间管理单元112,并命令时间管理单元112预测安装时间。接下来,更新控制单元106从时间管理单元112接收所预测的安装时间与安装允许时间的比较结果。当该比较结果表示所预测的安装时间在安装允许时间之内时,更新控制单元106开始(iii-c)的处理。当该比较结果表示所预测的安装时间超出了安装允许时间时,更新控制单元106写入“D”作为主存储单元110的待处理信息,“D”表示将更新过程挂起,并将表示挂起更新的控制信号输出到主控制单元107。接下来,更新控制单元106将从DVD500c中读出的程序文件503c写入到硬盘单元111。
(iii-c)安装
更新控制单元106通过对压缩更新程序506c执行解压缩算法Z来生成更新程序。解压缩算法Z是用于对采用压缩算法P所压缩的数据进行解压缩的算法。这里,压缩算法P是例如Huffman编码和行程编码。
接下来,更新控制单元106根据所生成的更新程序改写在硬盘单元111中所存储的内容重放程序142的全部或者部分。从而安装完成。
接下来,更新控制单元106输出表示结束更新处理的控制信号,并结束更新处理。
(重新开始更新)
更新控制单元106从主控制单元107接收待处理信息,并被命令重新开始更新。更新控制单元106根据已经接收到待处理信息<A><B><C><D>中的哪一个,来用以下所述的过程(A)(B)(C)(D)完成更新。
(A)待处理信息<A>
当所接收到的待处理信息为表示将过程从下载挂起的<A>时,更新控制单元106以下述的从(A-a)到(A-c)的过程完成更新处理。
(A-a)下载
更新控制单元106命令验证单元102执行SAC建立。当已经从验证单元102接收到SAC建立成功的控制信号时,更新控制单元106从硬盘单元111读出内容重放程序142的标题143和版本信息144,并将标题143和版本信息144输出到通信加密/解密单元101,并命令通信加密/解密单元101执行加密。当已经从通信加密/解密单元101接收到加密的标题和加密的版本信息时,更新控制单元106将加密的标题和加密的版本信息通过通信单元103发送到服务器装置400,并请求下载。
接下来,更新控制单元106从服务器装置400接收程序文件和加密的程序密钥。程序文件包括加密的压缩更新程序和使用该加密的压缩更新程序生成的校验数据。
更新控制单元106将所接收到的加密的程序密钥输出到通信加密/解密单元101,并命令通信加密/解密单元101执行解密。当已经从通信加密/解密单元101接收到程序密钥时,更新控制单元106将程序密钥和程序文件写入主存储单元110。
(A-b)检验
接下来,更新控制单元106对从服务器装置400接收的程序文件中所包括的校验数据进行检验。该校验数据例如由散列函数与加密的压缩更新程序生成的160字节的散列值组成。校验数据的生成方法和检验方法仅仅是实例,其他方法也是可以采用的。
首先,更新控制单元106读出加密的压缩更新程序,并通过将该加密的压缩更新程序代入散列函数来生成160字节的散列值。散列函数例如为SHA-1。在此所使用的散列函数与服务器装置400所使用的散列函数相同。
接下来,更新控制单元106读出在所接收的程序文件中所包括的校验数据,并将散列值与校验数据进行比较。当散列值与校验数据不匹配时,则认为校验数据的检验失败。当散列值与校验数据匹配时,则认为校验数据的检验成功。
当校验数据的检验失败时,更新控制单元106从主存储单元110中删除程序密钥和程序文件,并从(A-a)重新进行处理。当校验数据的检验成功时,控制转到(A-c)的处理。
(A-c)安装
更新控制单元106从主存储单元110读出程序密钥和加密的压缩更新程序,并通过使用已经读出的程序密钥对加密的压缩更新程序执行解密算法D1来生成压缩更新程序。这里,解密算法D1是用于对采用加密算法E1所生成的密文进行解密的算法。加密算法E1是依据例如DES(数据加密标准)。
接下来,更新控制单元106通过对压缩更新程序执行解压缩算法Z来生成更新程序。解压缩算法Z是用于对采用压缩算法P所压缩的数据进行解压缩的算法。这里,压缩算法P是例如Huffman编码和行程编码。Huffman编码和行程编码都是公知技术,因此省略相关的解释。
接下来,更新控制单元106根据所生成的更新程序改写硬盘单元111中所存储的内容重放程序142的全部或者部分。从而安装完成。
当安装完成时,更新控制单元106输出表示结束更新处理的控制信号并结束更新处理。
(B)待处理信息<B>
当所接收到的待处理信息为表示将过程从检验挂起的<B>时,更新控制单元106从硬盘单元111读出程序文件150和程序密钥160,并将程序文件150和程序密钥160写入主存储单元110。
接下来,以与所述的(A-b)到(A-c)相同的过程,执行校验数据的检验和安装,从而结束更新处理(在此省略相关解释)。
(C)待处理信息<C>
当所接收到的待处理信息为表示挂起解密和安装的<C>时,更新控制单元106从硬盘单元111读出加密的压缩更新程序和程序密钥,并将加密的压缩更新程序和程序密钥写入主存储单元110。
接下来,以与所述的(A-c)相同的过程,更新控制单元106使用该加密的压缩更新程序生成更新程序,并安装所生成的更新程序(在此省略相关解释)。
(D)待处理信息<D>
当所接收的待处理信息为<D>时,更新控制单元106从硬盘单元111读出程序文件。然后更新控制单元106通过对压缩更新程序执行解压缩算法Z来对在所读出的程序文件中所包括的压缩更新程序进行解压缩,从而生成更新程序。这里,所读出的程序文件是从DVD500c中获得的,并包括最新的版本信息、压缩更新程序和程序大小。
接下来,更新控制单元106根据所生成的更新程序改写硬盘单元111中所存储的内容重放程序142的全部或者部分。从而安装完成。
当安装完成时,控制单元106输出表示结束更新处理的控制信号并结束更新处理。
(10)时间管理单元112
如图12所示,时间管理单元112由时间管理控制单元200与存储单元210构成。
(i)存储单元210
如图12所示,存储单元210中存储允许时间设定表215、通信速度220和CPU能力225。
允许时间设定表215包括下载允许时间216、检验允许时间217和安装允许时间218,其已经由制造公司或者终端装置100的用户进行了设定,并且全部以“秒”为单位表示。
通信速度220是用户设定的通信线路的传输速度,以“bps”为单位表示。
CPU能力225包括检验参考时间226和安装参考时间227,其已经由生产公司进行了设定。检验参考时间226表示更新控制单元106处理关于散列值的1024字节的数据所必需的时间是7秒。安装参考时间227表示安装1024字节的数据所必需的时间是15秒。
(ii)时间管理控制单元200
时间管理控制单元200从主控制单元107接收每个允许时间和通信速度的设定改变的信息,并根据所接收到的设定改变信息改写存储单元210的允许时间设定表215或者通信速度220。
时间管理控制单元200中存储了RAM。当已经从更新控制单元106接收到程序大小并被命令预测下载时间时,时间管理控制单元200将该程序大小存储在RAM中。接下来,时间管理控制单元200通过从存储单元210中读出通信速度220并获得程序大小除以通信速度220的商来预测下载时间。接下来,时间管理控制单元200从存储单元210中读出下载允许时间216,将下载允许时间216与所预测的下载时间进行比较,并将该比较结果输出到更新控制单元106。
另外,当由更新控制单元106命令预测检验时间时,时间管理控制单元200使用程序大小和检验参考时间,并假设检验参考时间与程序大小成比例来预测检验时间。然后,时间管理控制单元200从存储单元210读出检验允许时间217,将检验允许时间217与所预测的检验时间进行比较,并将比较结果输出到更新控制单元106。
另外,当由更新控制单元106命令检查安装时间时,时间管理控制单元200使用程序大小和安装参考时间227,假设安装时间与程序大小成比例,来预测安装时间。接下来,时间管理控制单元200读出安装允许时间218,将安装允许时间218与所预测的安装时间进行比较,并将比较结果输出到更新控制单元106。
应该注意的是,下载时间、检验时间、以及安装时间分别是由时间管理单元112估计的预测时间,因此不是总是等于终端装置100用于下载、检验和安装所必需的实际时间。
而且,上述的下载时间、检验时间、以及安装时间的预测方法都分别是一个实例,也可以采用其他方法。
此外,下载时间、检验时间、以及安装时间可以从服务器装置400获得或者从DVD500c获得。在该情况下,时间管理控制单元200将从服务器装置400或者从DVD500c获得的下载时间与在存储单元210中存储的下载允许时间进行比较。对于检验时间和安装时间,也是一样,时间管理控制单元200将从服务器装置400或者从DVD500c获得的相应值与在存储单元210中存储的相应允许时间进行比较。
(11)通信加密/解密单元101
通信加密/解密单元101从验证单元102接收会话密钥,并存储所接收的会话密钥。每次通信加密/解密单元101接收到新的会话密钥时,通信加密/解密单元101删除所存储的会话密钥,并取代地存储新的会话密钥。
当已经从更新控制单元106接收到标题143、版本信息144和对内容重放程序进行加密的指令时,通信加密/解密单元101通过对所接收的标题143和版本信息144执行加密算法E2来生成加密的标题和加密的版本信息,并将所生成的加密的标题和加密的版本信息输出到更新控制单元106。在此所使用的加密算法E2对应于服务器装置400所使用的解密算法D2。
另外,当已经从更新控制单元106接收到加密的程序密钥和解密指令时,通信加密/解密单元101通过使用会话密钥对所接收的加密的程序密钥执行解密算法D3来生成程序密钥。在此所使用的解密算法D3是用于对使用加密算法E3所生成的密文进行解密的算法。
在此,加密算法E2和E3例如都依据DES(数据加密标准)。DES是公知技术,因此在此省略了相关解释。
(12)视频生成单元113
当已经从主控制单元107接收到屏幕和用于显示的指示时,视频生成单元113使用所接收的屏幕生成图像信号,并按照垂直同步信号和水平同步信号将该图像信号输出到监视器120。
(13)电源控制单元115
电源控制单元115检测对电源按钮的按压(即打开或者关闭)。当已经检测到电源按钮的打开时,电源控制单元115控制供电单元116开始供电,并将用于控制供电开始的、表示“电源打开”的操作指令信息输出到主控制单元107。
当已经检测到电源按钮的关闭时,电源控制单元115将表示“电源关闭”的操作指令信息输出到主控制单元107。
当已经从主控制单元107接收到表示“电源关闭”的控制信号时,电源控制单元115命令供电单元116停止供电。
1.5 证书管理装置600
证书管理装置600在认证机构的管理下,生成并发布公共密钥证书Cert_A和Cert_B,其通过根据X.509版本1格式的验证,分别认证终端装置100和服务器装置400的公共密钥。
另外,证书管理装置600公开认证机构公共密钥PK_CA,其用于采用已知的URL或者因特网上的目录服务来检验在公共密钥证书Cert_A和Cert_B中包括的认证机构签名数据190和490。
另外,证书管理装置600创建包括被无效的公共密钥证书的序列号的证书撤销列表(CRL),并使用已知的URL或者因特网上的目录服务来分发所创建的CRL。
1.6 终端装置100的操作
以下描述终端装置100的操作。
(1)终端装置100的操作
以下使用图13-23中的流程图描述终端装置100的操作。
当接收到用户表示按下电源按钮(例如电源打开)的操作指令信息时(步骤S100),根据主控制单元107的指令在监视器120上显示开始屏幕310(步骤S101)。当根据用户的按钮操作从开始屏幕310上显示的选项中选择开始311时(步骤S102),主控制单元107将控制转到步骤S106。当选择了设定改变312时(步骤S102),主控制单元107将设定改变屏幕320显示在监视器120上(步骤S103),并接收例如更新频率、通信速度以及各个允许时间的设定改变的输入(步骤S104)。主控制单元107将所接收到的设定改变输出到更新控制单元106或者输出到时间管理单元112。更新控制单元106使用所接收到的设定改变改写所存储的更新频率,时间管理单元112使用所接收到的设定改变改写所存储的通信速度220和允许时间设定表215(步骤S105)。
接下来,主控制单元107命令开始更新。当已经接收到更新开始的指令时,更新控制单元106写入“E”作为主存储单元110的待处理信息,“E”表示没有过程被挂起(步骤S106)。接下来,更新控制单元106判断安装在终端装置100中的微处理器的时钟频率是否为400MHz或者更大(步骤S107)。当时钟频率为400MHz或者更大时,将并行标记设定为“1”(步骤S108)。当时钟频率低于400MHz时,将并行标记设定为“0”(步骤S109)。
接下来,更新控制单元106判断所设定的并行标记(步骤S110)。当并行标记为“0”时,将控制转到步骤S111。当并行标记为“1”时,更新控制单元106认为能够并行地执行更新和其他处理,并因此将表示能够执行并行处理的控制信号输出到主控制单元107,并将控制转到步骤S111。当已经接收到关于并行处理的控制信号时,主控制单元107将控制转到步骤S195,并且终端装置100并行地执行从步骤S111开始的处理和从步骤S195开始的处理。
接下来,更新控制单元106判断是否已经将DVD插入了终端装置100。当该判断为肯定时,更新控制单元106进一步判断DVD的类型(步骤S111)。
当判断已经插入了DVD500c(步骤S111)时,更新控制单元106从DVD500c读出程序文件503c(步骤S241),并将在程序文件503c中包括的版本信息505c与在硬盘单元111中所存储的版本信息144进行比较(步骤S242)。当版本信息144表示为与版本信息505c是相同的代时(步骤S242:否),认为不需要更新,并将控制转到步骤S195。
当版本信息144表示为比版本信息505c更旧的代时(步骤S242:是),则更新控制单元106判断需要进行更新。
接下来,当并行标记为“1”时,更新控制单元106进一步判断内容是否正在被重放(步骤S245)。当该判断结果为否定时,将控制转到步骤S251。当该判断结果为肯定时(步骤S245),更新控制单元106写入“D”作为主存储单元110的待处理信息,“D”表示挂起安装(步骤S246),并将程序文件503c写入硬盘单元111(步骤S247),并将控制转到步骤S195。
当并行标记为“0”时(步骤S243),更新控制单元106读出在程序文件503c中包括的程序大小507c,并将程序大小507c输出到时间管理单元112,并命令时间管理单元112预测安装时间(步骤S251)。时间管理单元112使用程序大小507c预测安装时间,将所预测的安装时间与由终端装置100的用户或者制造公司设定的安装允许时间进行比较,并将比较结果输出到更新控制单元106(步骤S252)。
更新控制单元106接收比较结果。当比较结果表示所预测的安装时间超过安装允许时间时(步骤S253:否),更新控制单元106将控制转到步骤S246。
当比较结果表示所预测的安装时间在安装允许时间之内时(步骤S253:是),更新控制单元106通过对在程序文件503c中包括的压缩更新程序506c执行解压缩算法Z来生成更新程序(步骤S255)。
接下来,更新控制单元106安装所生成的更新程序(步骤S256),并完成更新。接下来,将控制转到步骤S195。
当判断已经插入DVD500b时(步骤S111),更新控制单元106从DVD500b中读出版本信息505b,并将在硬盘单元111中存储的版本信息144与版本信息505b进行比较(步骤S113)。
当版本信息144表示为与版本信息505b是相同的代时(步骤S113:否),认为不需要更新,并将控制转到步骤S195。当版本信息144表示为比版本信息505b更旧的代时(步骤S113:是),则更新控制单元106判断需要进行更新,并判断并行标记(步骤S135)。
当并行标记为“0”时(步骤S135),更新控制单元106通过参考版本信息144来从DVD500b中存储的程序大小表530b中选择程序大小信息531b。然后更新控制单元106从所选择的程序大小信息531b中读出程序大小507b,并将读出的程序大小507b输出到时间管理单元112,并命令时间管理单元112预测下载时间(步骤S136)。然后,将控制转到步骤S141。
当并行标记为“1”时(步骤S135),更新控制单元106将控制转到步骤S145。
当判断没有插入DVD或者当判断已经插入DVD500a时(步骤S111),更新控制单元106判断在日期信息中所包括的天是否与由用户设定的表示“每周一”的更新频率匹配(步骤S115)。当判断结果为否定时,认为不需要更新,并且将控制转到步骤S195。相反地,当判断结果为肯定时(步骤S115),更新控制单元106命令验证单元102执行SAC建立。
验证单元102与服务器装置400建立与服务器装置400共享会话密钥的SAC,并向更新控制单元106通知SAC建立成功(步骤S116)。
接下来,更新控制单元106从硬盘单元111读出内容重放程序142的标题143和版本信息144(步骤S121),并将标题143和版本信息144输出到通信加密/解密单元101,并命令通信加密/解密单元101执行加密。通信加密/解密单元101接收标题143和版本信息144,并通过使用会话密钥对标题143和版本信息144执行加密算法E2来生成加密的标题和加密的版本信息。然后,通信加密/解密单元101将加密的标题和加密的版本信息输出到更新控制单元106(步骤S122)。
接下来,更新控制单元106将加密的标题和加密的版本信息传送到服务器装置400(步骤S123)。
控制单元407作为服务器装置400的组成部分,在其从终端装置100接收到加密的标题和加密的版本信息之后,命令通信加密/解密单元401通过使用公共密钥被加密的标题和加密的版本信息执行解密算法D2来生成标题和版本信息(步骤S124)。然后控制单元407根据所生成的标题从程序更新表420中选择程序信息,读出在所选择的程序信息中包括的最新的版本信息(步骤S125),并将该最新的版本信息与通信加密/解密单元401所生成的版本信息进行比较(步骤S126)。
当版本信息与最新的版本信息两者表示相同的代时(步骤S126:否),获得比较结果“0”(步骤S128)。当版本信息比最新的版本信息的代旧时(步骤S126:是),获得比较结果“1”(步骤S128)。
接下来,通过参考标题和版本信息,从程序更新表420中选择程序信息421,并读出在所选择程序信息中包括的程序大小(步骤S129)。
然后,控制单元407将比较结果和程序大小发送到终端装置100(步骤S130)。
当已经通过通信单元103接收到比较结果和程序大小时,更新控制单元106判断所接收到的比较结果(步骤S138)。当比较结果为“0”时,认为不需要进行更新,并将控制转到步骤S195。相反地,当比较结果为“1”时(步骤S138),认为需要进行更新,并判断并行标记(步骤S139)。
当并行标记为“1”时(步骤S139),将控制转到步骤S145。当并行标记为“0”时(步骤S139),更新控制单元106将所接收到的程序大小输出到时间管理单元112,并命令时间管理单元112预测下载时间。时间管理单元112接收程序大小,并基于所接收到的程序大小预测下载时间,将所预测的下载时间与下载允许时间进行比较,并将比较结果输出到更新控制单元106(步骤S141)。
更新控制单元接收比较结果。当所接收的比较结果表示所预测的下载时间超过下载允许时间时(步骤S142:否),更新控制单元106写入“A”作为主存储单元110的待处理信息,“A”表示将过程从下载挂起,并将表示挂起更新的控制信号输出到主控制单元107(步骤S143)。然后,将控制转到步骤S195。
当比较结果表示预测的下载时间在下载允许时间之内时(步骤S142:是),更新控制单元106命令验证单元102执行SAC建立。验证单元102建立与服务器装置400共享会话密钥的SAC(步骤S145)。
当SAC建立时,将存储在硬盘单元111中的标题143和版本信息144输出到通信加密/解密单元101,并命令通信加密/解密单元101执行加密。当已经接收到标题143和版本信息144时,通信加密/解密单元101通过对标题143和版本信息144执行加密算法E2来生成加密的标题和加密的版本信息,并将加密的标题和加密的版本信息输出到更新控制单元106(步骤S146)。
更新控制单元106接收加密的标题和加密的版本信息,并将加密的标题和加密的版本信息通过因特网20传送到服务器装置400,并请求下载(步骤S150)。
当已经接收到加密的标题、加密的版本信息以及下载请求时,服务器装置400的控制单元407控制通信加密/解密单元401,通过使用会话密钥对加密的标题和加密的版本信息执行解密算法D2来生成标题和版本信息(步骤S151)。
接下来,通过参考该标题和版本信息从程序更新表420中选择程序信息421,并从所选择的程序信息421中读出程序密钥(步骤S152)。
接下来,通过利用会话密钥对已经读出的程序密钥执行加密算法E3来生成加密的程序密钥(步骤S153)。接下来,根据程序信息421读出程序文件431(步骤S154),并通过因特网20将程序文件431和加密的程序密钥传送到终端装置100(步骤S155)。
终端装置100接收程序文件和加密的程序密钥,并且通信加密/解密单元101通过使用会话密钥对所加密的程序密钥执行解密算法D3来生成程序密钥(步骤S160),并将程序密钥和程序文件写入主存储单元110(步骤S161)。
接下来,更新控制单元106判断并行标记(步骤S162)。当并行标记为“1”时,将控制转到步骤S170。当并行标记为“0”时(步骤S162),更新控制单元106命令时间管理单元112预测检验时间。
时间管理单元112根据程序大小预测检验时间(步骤S163),并将所预测的检验时间与检验允许时间进行比较,并将比较结果输出到更新控制单元106。当从时间管理单元112接收到的比较结果表示所预测的检验时间超过检验允许时间时(步骤S164:否),更新控制单元106写入“B”作为主存储单元110的待处理信息,“B”表示将过程从检验挂起(步骤S165)。接下来,更新控制单元106将程序密钥和程序文件写入硬盘单元111(步骤S166),并将控制转到步骤S195。
当比较结果表示所预测的检验时间在检验允许时间之内时(步骤S164:是),更新控制单元106从程序文件中读出加密的压缩更新程序(步骤S170)。接下来,通过将该被加密的压缩更新程序代入散列函数来计算散列值(步骤S172)。接下来,读出在程序文件中包括的校验数据,并将校验数据与散列值进行比较(步骤S173)。
当散列值与校验数据匹配时(步骤S173:是),则判断检验成功,并将控制转到步骤S181。
当散列值与校验数据不匹配时(步骤S173:否),则判断检验失败,并且更新控制单元106判断并行标记(步骤S174)。当并行标记为“1”时(步骤S174),将控制返回步骤S145,重新进行处理。当并行标记为“0”时(步骤S174),写入“A”作为主存储单元110的待处理信息,“A”表示将过程从下载挂起,并将表示挂起更新的控制信号输出到主控制单元107(步骤S175),并将控制转到步骤S195。
更新控制单元106判断并行标记(步骤S181)。当并行标记为“1”时,则更新控制单元106判断内容是否正在由主控制单元107控制进行重放(步骤S182)。当判断结果为否定时,将控制转到步骤S186。当判断结果为肯定时,更新控制单元106写入“C”作为主存储单元110的待处理信息,“C”表示将解密和安装挂起(步骤S183)。接下来,将被加密的压缩更新程序和程序密钥写入硬盘单元111(步骤S184),并将控制转到步骤S195。
当并行标记为“0”时(步骤S181),则更新控制单元106命令时间管理单元112预测安装时间。时间管理单元112根据程序大小预测安装时间,将所预测的安装时间与安装允许时间进行比较,并将比较结果输出到更新控制单元106(步骤S186)。当所接收到的比较结果表示所预测的安装时间超过安装允许时间时(步骤S187),更新控制单元106将控制转到步骤S183。
当比较结果表示所预测的安装时间在安装允许时间之内时(步骤S187),更新控制单元106通过使用程序密钥对加密的压缩更新程序执行解密算法D1来生成压缩更新程序(步骤S188),并通过对压缩更新程序执行解压缩算法Z来生成更新程序(步骤S189)。
接下来,安装所生成的更新程序(步骤S191)。然后完成更新处理,并将控制转给主控制单元107。
主控制单元107接收通过用户的按钮按下得到的操作指令信息(步骤S195)。当按下重放按钮时(步骤S196),根据内容重放程序重放内容(步骤S197)。当按下任何其他按钮时(步骤S195),执行相应处理(步骤S198)。在此之后直到按下电源按钮关闭为止,重复进行接收按钮按下、内容重放或者其他处理。
当按下电源按钮关闭时(步骤S196),主控制单元107从主存储单元110读出待处理信息,确认所读出的待处理信息表示“E”(步骤S201)。当判断待处理信息为“E”时(步骤S201),将控制转到步骤S234。
当待处理信息判断为不是“E”时(步骤S201),将待处理信息输出到更新控制单元106,并命令重新开始更新。更新控制单元106确定所接收的待处理信息(步骤S202)。当所接收的待处理信息为表示将过程从检验挂起的“B”时,更新控制单元106从硬盘单元111读出程序密钥和程序文件,并将程序密钥和程序文件写入主存储单元110(步骤S205),并将控制转到步骤S223。
当所接收的待处理信息为表示将解密和安装挂起的“C”时,更新控制单元106从硬盘单元111读出程序密钥和加密的压缩更新程序,并将程序密钥和加密的压缩更新程序写入主存储单元110(步骤S206),并将控制转到步骤S230。
当所接收的待处理信息为表示挂起安装的“D”时(步骤S202),更新控制单元106从硬盘单元111读出压缩更新程序,并将压缩更新程序写入主存储单元110(步骤S207),并将控制转到步骤S231。
当所接收的待处理信息为表示将过程从下载挂起的“A”时(步骤S202),更新控制单元106命令验证单元102建立SAC。相应地,验证单元102建立通过因特网20与服务器装置400共享会话密钥的SAC(步骤S210)。
当已经建立SAC时,更新控制单元106从硬盘单元111读出标题143和版本信息144,并将标题143和版本信息144输出到通信加密/解密单元101,并命令通信加密/解密单元101执行加密。通信加密/解密单元101接收标题143和版本信息144,并通过使用会话密钥对标题143和版本信息144执行加密算法E2来生成加密的标题和加密的版本信息,并将加密的标题和加密的版本信息输出到更新控制单元106(步骤S211)。
接下来,更新控制单元106接收加密的标题和加密的版本信息,并将加密的标题和加密的版本信息通过因特网20传送到服务器装置400,并请求下载(步骤S212)。
当已经接收到加密的标题、加密的版本信息以及下载请求时,服务器装置400的控制单元407控制通信加密/解密单元401,通过使用会话密钥对加密的标题和加密的版本信息执行解密算法D2来生成标题和版本信息(步骤S213)。
然后,控制单元407根据标题和版本信息从程序更新表420中选择程序信息421,并读出所选择的程序信息421中包括的程序密钥(步骤S214),并通过使用会话密钥对程序密钥执行加密算法E3来生成加密的程序密钥(步骤S215)。接下来,基于所选择的程序信息421读出程序文件413(步骤S216),并将程序文件431和加密的程序密钥通过因特网20传送到终端装置100(步骤S217)。
终端装置100接收程序文件和加密的程序密钥。通信加密/解密单元101通过使用会话密钥对加密的程序密钥执行解密算法D3来生成程序密钥(步骤S221),并将所生成的程序密钥和所接收的程序文件写入主存储单元110(步骤S222)。
接下来,从主存储单元110读出程序文件中包括的加密的压缩更新程序(步骤S223)。然后通过将该加密的压缩更新程序代入散列函数来计算散列值(步骤S226)。然后,读出在程序文件中包括的校验数据,并将校验数据与散列值进行比较(步骤S227)。
当所计算的散列值与校验数据匹配时(步骤S227:是),则认为检验成功,并将控制转到步骤S230。
当散列值与校验数据不匹配时(步骤S173:否),则认为检验失败,并将控制返回步骤S210,以从该处重新进行处理。
当检验已经成功时,更新控制单元106通过使用程序密钥对加密的压缩更新程序执行解密算法D1来生成压缩更新程序(步骤S230)。接下来,更新控制单元106通过对压缩更新程序执行解压缩算法Z来生成更新程序(步骤S231),并安装所生成的更新程序(步骤S232)。当安装完成后,将表示更新处理完成的控制信号输出到主控制单元107。
当已经接收到表示更新处理完成的控制信号时,主控制单元107通过电源控制单元115和供电单元116来停止供电(步骤S234)。
(2)在终端100与服务器装置400之间的SAC的建立
使用图25-26的流程图描述在终端装置100与服务器装置400之间的SAC建立的过程。这对应于图13的步骤S116、图16的步骤S145和图21的步骤S210的详细描述。
注意该SAC建立方法仅为一个实例,可以采用其他验证方法或者其他密钥协商方法。在以下描述中,假设G()表示密钥生成函数,Y是对该系统唯一的参数,并满足关系G(x,G(z,Y))=G(z,G(x,Y))。
终端装置100读出公共密钥证书Cert_A(步骤S401),并将公共密钥证书Cert_A发送到服务器装置400(步骤S402)。
服务器装置400通过对所接收的公共密钥证书Cert_A中包括的认证机构签名数据Sig_A执行签名检验算法V来执行签名检验(步骤S403)。当检验结果表示失败时(步骤S404),完成处理。
当检验结果表示成功时(步骤S404),读出CRL(步骤S405),并判断在所接收的公共密钥证书Cert_A中包括的序列号是否已经在所读出的CRL中注册(步骤S406)。当确认注册时(步骤S406),完成处理。当确认没有注册时(步骤S406),读出服务器装置400的公共密钥证书Cert_B(步骤S407),并发送到终端装置100(步骤S408)。
当已经接收到公共密钥证书Cert_B时,终端装置100通过使用认证机构的公共密钥PK_CA对公共密钥证书Cert_B中包括的认证机构签名数据Sig_CA执行签名检验算法V来执行签名检验(步骤S409)。当检验结果表示失败时(步骤S410),读出CRL,并判断在公共密钥证书Cert_B中包括的序列号是否在CRL中注册(步骤S412)。当确认注册时(步骤S412),完成处理。当确认没有注册时(步骤S412),继续处理。
服务器装置400生成随机数Cha_B(步骤S413),服务器装置400将随机数Cha_B发送到终端装置100(步骤S414)。
当已经接收到随机数Cha_B时,终端装置100通过使用终端装置100的秘密密钥SK_A对所接收的随机数Cha_B执行签名生成算法S来生成签名数据Sig_A(步骤S415),并将所生成的签名数据Sig_A发送到服务器装置400(步骤S416)。
当已经接收到签名数据Sig_A时,服务器装置400使用在所接收的公共密钥证书Cert_A中包括的终端装置的公共密钥PK_A对签名数据Sig_A执行签名检验算法V来执行签名检验(步骤S417)。当检验结果表示失败时(步骤S418),结束处理。当检验结果表示成功时(步骤S418),继续处理。
终端装置100生成随机数Cha_A(步骤S419),并将所生成的随机数Cha_A发送到服务器装置400(步骤S420)。
服务器装置400通过使用服务器装置400的密码密钥SK_B执行签名生成算法S来生成签名数据Sig_B(步骤S421),并将所生成的签名数据Sig_B发送到终端装置100(步骤S422)。
当已经接收到签名数据Sig_B时,终端装置100通过使用在所接收到的公共密钥证书Cert_B中包括的公共密钥PK_B对所接收的签名数据Sig_B执行签名检验算法V来执行签名检验(步骤S423)。当签名检验表示失败时,结束处理(步骤S424)。当签名检验表示成功时(步骤S424),终端装置100生成随机数“a”(步骤S425),并使用所生成的随机数“a”生成Key_A=Gen(a,Y),并将所生成的Key_A发送到服务器装置400。
当已经接收到Key_A时,服务器装置400生成随机数“b”(步骤S429),并使用所生成的随机数“b”生成Key_B=Gen(b,Y)(步骤S429),并将所生成的Key_B发送到终端装置100(步骤S430)。
当已经接收到Key_B时,终端装置100使用所接收的Key_B和随机数“a”生成Key_AB=Gen(b,Key_B)=Gen(a,Gen(b,Y))(步骤S432)。将Key_AB存储为会话密钥(步骤S434)。
服务器装置400使用所接收的Key_A和所生成的随机数“b”生成Key_AB=Gen(b,Gen(a,Y))(步骤S431)。将所生成Key_AB存储为会话密钥(步骤S433)。
采用以上方式,终端装置100与服务器装置400能够共享会话密钥并建立SAC。
1.7 结论
按照目前所述,根据本发明,在更新计算机程序中,首先通过参考安装在终端装置100中的微处理器的时钟频率来判断是否能够并行地执行更新处理与内容重放处理。如果确认可以并行处理,则立即开始更新处理。
考虑不能进行并行处理的情况,终端装置100的用户或者制造公司预先为更新处理中所包括的下载、检验和安装中的每一个分别设定允许时间。终端装置100分别计算下载、检验和安装所必需的时间,并判断每个处理在预定的允许时间之内是否结束。当判断为肯定时,立即执行相应处理。当判断结果为否定时,在用户已经完成终端装置100的使用之后执行相应处理。
根据本实施例,将所需时间超过预定允许时间的处理延后。根据该结构,可以在不与用户对计算机程序的使用冲突的情况下执行更新。
1.7 关于第一实施例的修改实例
迄今为止,已经描述了本发明的第一实施例。然而,本发明并不局限于所述结构,并且可以包括例如关于第一实施例的如下实例:
(1)在以上所述实施例中,假设存储在DVD500b中的版本信息505b和存储在DVD500c中的版本信息505c与服务器装置400中所存储的最新版本相同。
然而在实际中,服务器装置400中所存储的最新版本是根据需要更新的。因此可能发生以下情况:版本信息505b和版本信息505c是比服务器装置400中所存储的最新版本信息旧的代,并且终端装置100不能获得最新版本。
考虑这种情况,可以采用以下方式获得最新更新程序。
(i)当已经插入DVD500b时
DVD500b中还存储了DVD500b本身的出售日期。终端装置100从DVD500b中读出出售日期。当判断从出售日期开始已经经历了预定的时间时,无条件地采用与上述实施例中当已经插入DVD500a时相同的方式,从服务器装置400获得最新的更新程序。
(ii)当已经插入DVD500c时
DVD500c中还存储了DVD500c本身的出售日期。终端装置100从DVD500c中读出出售日期。当判断从出售日期开始已经经历了预定的时间时,采用如下方式(a)、(b)或者(c)获得最新的更新程序:
(a)版本信息144<版本信息505c
终端装置100将终端装置100中存储的版本信息144与在DVD500c中存储的版本信息505c进行比较。当判断版本信息144是比版本信息505c旧的代时,终端装置100在对标题143和版本信息505c加密之后,将硬盘单元111中存储的标题143和从DVD500c中读出的版本信息505c发送到服务器装置400。
服务器装置400将所接收的版本信息与服务器装置400中存储的最新的版本信息进行比较,并将比较结果发送到终端装置100。
当终端装置100判断所接收到的比较结果为1时,意味着服务器装置400中存储的最新的版本信息是比DVD500c中存储的版本信息505c的代更新的代,终端装置100从服务器装置400获得最新的更新程序。
当所接收到的比较结果为0时,意味着服务器装置400中存储的最新的版本信息的代与DVD500c中存储的版本信息505c的代相同,从DVD500c中获得最新的更新程序。
(b)版本信息144=版本信息505c
终端装置100将终端装置100中存储的版本信息144与在DVD500c中存储的版本信息505c进行比较。当版本信息144与版本信息505c的代相同时,从硬盘单元111中读出标题143,并发送标题143和版本信息144。
服务器装置400将所接收到的版本信息144与服务器装置400中存储的最新版本信息进行比较来获得比较结果,并将所获得的比较结果发送到终端装置100。
终端装置100确定所接收到的比较结果。当比较结果为1时,意味着版本信息144是比服务器装置400中存储的最新的版本信息旧的代,终端装置100从服务器装置400中获得最新的更新版本并进行更新。
当所接收到的比较结果为0时,意味着版本信息144与服务器装置400中存储的最新的版本信息的代相同,结束更新处理。
(c)版本信息144>版本信息505c
终端装置100将终端装置100中存储的版本信息144与在DVD500c中存储的版本信息505c进行比较。当判断版本信息144是比版本信息505c的代较新的代时,终端装置采用与上述实施例中当已经插入DVD500a时相同的方式来从服务器装置400获得最新的更新程序。
(2)在上述第一实施例中,当将DVD500a插入到终端装置100时,终端装置100将终端装置100中存储的内容重放程序的版本信息发送到服务器装置400,服务器装置400将该版本信息与最新的版本信息进行比较。然而,可替换地,可以设计为:终端装置100从服务器装置400接收最新的版本信息,并且终端装置100执行终端装置100中存储的版本信息与所接收的最新的版本信息之间的比较。
(3)还可使用一种结构,在该结构中,DVD500a、DVD500b和DVD500c中存储了未来的更新程序开发完成日期,当已经到达该完成日期时,终端装置100从服务器装置400获得新的更新程序。
2.第二实施例
以下描述了更新系统11,作为与本发明有关的一个实施例。
2.1 更新系统11的结构
如图26所示,更新系统11由终端装置1100、服务器装置1400和证书管理装置600组成,其通过因特网20相互连接。在以下的描述中,不再描述与第一实施例相同的部分,主要描述与第一实施例不同的部分。
正如同第一实施例的终端装置100,终端装置1100中存储了内容重放程序,其包括用于重放由视频和音频组成的内容的过程,和表示该程序的代的版本信息。当插入DVD时,终端装置1100根据程序重放内容。
服务器装置1400中存储了用于将内容重放程序更新到新的代的更新程序。在终端装置1100请求时,服务器装置1400将更新程序发送到终端装置1100。
在执行更新之前,终端装置1100获得更新的重要级别。更新的重要级别表示将终端装置1100中存储的程序更新到最新的代的重要程度。例如,如果最新的代的程序在解决当前存储的内容重放程序的安全问题方面有了显著的提高,则重要级别会高。相反,如果当前存储的内容重放程序也没有特别的问题,即使是最新的代的程序包括新的功能,则重要级别低。
在对当前存储的内容重放程序进行更新时,终端装置1100根据DVD中存储的内容的值和上述重要级别来确定程序的更新定时。在本实施例中,内容的值是由内容是否新旧来确定的。具体地,新内容有高值,旧内容有低值。
具体地,执行以下过程。
A.当更新的重要级别低时,无论内容新旧与否都执行以下过程。计算执行每个关于更新的过程所必需的时间,并根据相应的所需时间来确定是否立即执行过程或者将其挂起。
B.当更新级别高而内容旧时,执行以下过程。计算执行每个关于更新的过程所必需的时间,并根据相应的所需时间来确定是否立即执行过程或者将其挂起。
C.当更新级别高并且内容新时,无论这些过程所需时间如何都立即执行所有关于更新的过程。
2.2 DVD1500a、DVD1500b和DVD1500c
插入终端装置1100的DVD类型有三种,即:DVD1500a、DVD1500b和DVD1500c,其分别是能够记录大量数据的便携式光盘介质。
正如第一实施例,根据插入终端装置1100的DVD类型,改变对在终端装置1100中存储的内容重放程序的更新程序的获得方法。当插入DVD500a、DVD500b和DVD500c时具体的获得方法与第一实施例中使用的获得方法相同,在此省略了相关描述。
如下,使用图27解释在DVD1500a、DVD1500b和DVD1500c中存储的信息。
DVD1500a存储了内容501a和创建日期1502a。内容501a与第一实施例的DVD500a中存储的内容501a相同。创建日期1502a表示创建内容501a的日期为“2005年1月24日”。
DVD1500b存储了内容501b、创建日期1502b、版本信息505b和更新数据表1503b。内容501b和版本信息505b分别与第一实施例的DVD500b中存储的内容501b和版本信息505b相同,从而省略了相关描述。创建日期1502b表示创建内容501b的日期为“2005年1月24日”。
更新数据表1503b由多条更新信息1531a、1531b、...构成,并且每条更新信息都由旧版本信息、程序大小和重要级别组成。
程序大小表示加密的压缩更新程序的大小。加密的压缩更新程序是通过对更新程序进行压缩和加密生成的,该更新程序包括将内容重放程序从由旧版本信息表示的代更新到由版本信息505b表示的代的过程。
重要级别表示将内容重放程序由旧版本信息表示的代更新到由版本信息505b表示的代的重要程度。重要级别具体由“1”或者“2”表示。重要级别“2”表示将由旧版本信息表示的代更新到由版本信息505b表示的代的重要性为高,这是由于例如,由版本信息505b表示的代的内容重放程序包括用于解决由旧版本信息表示的代的内容重放程序的安全问题的重要改进。重要级别“1”表示更新的重要性低,这是因为即使是由版本信息505b表示的代的内容重放程序包括有由旧版本信息表示的代的内容重放程序中所没有的新功能,旧版本的程序也没有特别的问题。
DVD1500c中存储了内容501c、创建日期1502c、程序文件503c和更新重要级别表1530c。由于内容501c和程序文件503c分别与第一实施例的DVD500c中存储的内容501c和程序文件503c相同,因此在此省略相关解释。
创建日期1502c表示创建内容501c的日期为“2005年1月24日”。更新重要级别表1530c由多条重要级别信息1531c、1531c、...构成,并且每条重要级别信息都包括旧版本信息和重要级别。重要级别表示从由旧版本信息表示的代更新到由版本信息505c表示的代的重要程度。重要级别具体由“1”或者“2”表示。在此的重要级别与DVD500b中存储的更新数据表1530b中包括的重要级别相同。
注意,尽管没有示出,DVD1500a、DVD1500b和DVD1500c中分别存储了对用于重放存储在其中的内容的内容重放程序进行标识的程序标识符。
2.3 服务器装置1400
如图28所示,服务器装置1400由通信加密/解密单元401、验证单元402、通信单元403、输入单元405、控制单元1407、信息存储单元1410和显示单元413组成。
如下,描述构成服务器装置1400的每个单元。然而,由于通信加密/解密单元401、验证单元402、通信单元403、输入单元405和显示单元413与第一实施例的服务器装置400的通信加密/解密单元401、验证单元402、通信单元403、输入单元405和显示单元413相同,因此以下不再对关于其的结构和操作进行描述。
(1)信息存储单元1410
如图28所示,信息存储单元1410由内容存储单元412和程序存储单元1415组成。内容存储单元412与作为第一实施例中的服务器装置400中一个组成部分的信息存储单元410中包括的内容存储单元412相同。
程序存储单元1415中存储了程序更新表1420、程序文件夹AI430、程序文件夹B440,...。程序文件夹AI430和程序文件夹B440与第一实施例中的服务器装置400的程序文件夹AI430和程序文件夹B440相同,因此以下不再对其进行描述。
如图29所示,程序更新表1420由多条程序信息1421、1422、1423、...组成。每条程序信息都由标题、最新版本信息、更新日期、更新模式、文件名、存储位置、程序大小、程序密钥和重要级别组成。以上除重要级别之外的项都与构成第一实施例的程序更新表420的标题、最新版本信息、更新日期、更新模式、文件名、存储位置、程序大小和程序密钥相同,因此以下不再对其进行描述。
重要级别表示由更新模式所表示的更新的重要程度。“2”表示高重要程度,“1”表示低重要程度。例如,程序信息1421包括更新模式“3.0->4.5”,重要级别为“2”。这意味着从版本“3.0”到版本“4.5”的更新重要程度高,例如因为版本“4.5”弥补了安全缺陷。
这里,程序更新表1420中包括的重要级别与DVD1500b中的更新数据表1530b中包括的重要级别相同,并与DVD1500c中的更新重要级别表1530c中包括的重要级别相同。例如,DVD1500b中存储的更新数据表1530b中的更新信息1531b表示从旧版本信息“3.0”所表示的代到版本信息“4.5”所表示的代的更新的重要级别为“2”,其与程序信息1421中包括的重要级别“2”相同。
(2)控制单元1407
控制单元1407由微处理器、RAM和ROM构成,其在图中没有具体示出。RAM和ROM中分别存储计算机程序。控制单元1407通过根据该计算机程序的微处理器操作来实现其功能。
当已经通过通信单元403从终端装置1100接收到公共密钥证书Cert_A时,控制单元1407将所接收到的Cert_A输出到验证单元402,并命令验证单元402建立SAC。控制单元1407还从验证单元402接收报告SAC建立成功的控制信号。
另外,控制单元1407通过通信单元403从终端装置1100接收加密的标题和加密的版本信息。当已经接收到这些条信息时,控制单元1407将加密的标题和加密的版本信息输出到通信加密/解密单元401,并命令通信加密/解密单元401执行解密。控制单元1407从通信加密/解密单元401接收标题和版本信息。
然后,控制单元1407从程序更新表1420中的多条程序信息中选择包括所接收的标题的一条程序信息,从所选择的程序信息中读出最新的版本信息,并将该最新的版本信息与所接收的版本信息进行比较。
当所接收的版本信息表示是与最新的版本信息的代旧的代时,控制单元1407从程序更新表1420中选择包括所接收的标题并且所接收的版本信息与采用更新模式进行更新之前的版本信息相同的程序信息1421,并读出在所选择的程序信息1421中包括的程序大小和重要级别,并将重要级别和程序大小通过通信单元403发送到终端装置1100。
当所接收到的版本信息是与最新版本信息的代相同的代时,控制单元1407生成重要级别“0”。这里,重要级别“0”表示内容重放程序已经是最新的版本了,因此不需要更新。接下来,控制单元1407将所生成的重要级别“0”发送到终端装置1100。
另外,当已经从终端装置1100接收到加密的标题、加密的版本信息和下载请求时,控制单元1407将加密的标题和加密的版本信息输出到通信加密/解密单元401,并命令通信加密/解密单元401执行解密。接下来,控制单元1407从通信加密/解密单元401接收标题和版本信息,根据标题和版本信息从程序更新表1420中选择程序信息1421,并读出所选择的程序信息1421中包括的程序密钥。然后控制单元1407将读出的程序密钥输出到通信加密/解密单元401,并命令通信加密/解密单元401执行加密。
接下来,控制单元1407从通信加密/解密单元401接收加密的程序密钥,并通过参考在所选择的程序信息1421中包括的文件名和存储位置来读出程序文件431。接下来,控制单元1407通过通信单元403和因特网20将程序文件431和加密的程序密钥发送到终端装置1100。
2.4 终端装置
如图30所示,终端装置1100包括通信加密/解密单元101、验证单元、通信单元103、输入/输出单元104、外部操作接收单元105、更新控制单元1106、主控制单元107、主存储单元110、硬盘单元111、时间管理单元112、视频生成单元113、电源控制单元115和供电单元116。
如下,描述构成终端1100的各个单元。由于除了更新控制单元1106之外的单元与构成第一实施例的终端装置100的单元相同,因此以下仅仅描述更新控制单元1106。
(1)更新控制单元1106
更新控制单元1106存储更新频率“每周一”和新内容周期“3个月”,在新内容周期中内容保持为新的。更新频率与第一实施例中所述的相同,因此以下不再描述。新内容周期是指判断DVD中存储的内容是否为新的。如果在其创建日期之后已经经过了3个月或者更短的时间,则内容是新内容并且由此具有高保护值。相反,如果在其创建日期之后已经经过了3个月以上的时间,则该内容为旧内容,并由此具有低保护值。
当已经从主控制单元107接收到用于更新频率的设定改变信息时,更新控制单元1106改变当前存储的更新频率。注意,更新频率可以在制造终端装置1100时由制造公司设定。
(更新开始)
更新控制单元1106从主控制单元107接收开始更新的指令。当已经接收到开始更新的指令时,更新控制单元1106以下述过程中执行对内容重放程序进行更新的处理。
在第一实施例中,更新控制单元1106计算下载、检验、安装的各个过程所需的时间,并判断是否应该立即执行每个过程,或者将其挂起。除此之外,第二实施例中的更新控制单元1106根据更新的重要程度和根据在DVD中存储的内容新旧与否来判断是立即执行更新处理的每个过程还是将更新处理的每个过程挂起。以下详细描述了更新控制单元1106执行的更新过程。
当已经从主控制单元107接收到开始更新的指令时,更新控制单元1106写入“E”作为主存储单元110的待处理信息,“E”表示没有过程被挂起。
接下来,更新控制单元1106读出终端装置1100中安装的微处理器的时钟频率,该时钟频率已经存储在更新控制单元1106中,并判断所读出的时钟频率是否为400MHz或者更高。更新控制单元1106根据判断结果将“1”或者“0”的并行标记读入到主存储单元110。这里,并行标记与第一实施例所述相同。
接下来,更新控制单元1106通过输入/输出单元104判断是否已经插入了DVD。当没有插入DVD时,执行以下(1-1)的处理。当已经插入了DVD时,则检查DVD的内容。具体地,更新控制单元1106判断已经插入了DVD1500a、DVD1500b和DVD1500c中的哪一个,并执行从(1-2)到(1-4)的处理之一。
(1-1)当没有插入DVD时
当没有插入DVD时,更新控制单元1106读出存储在主存储单元110中的并行标记,当并行标记为“1”时,更新控制单元1106将表示可以并行处理的控制信号输出到主控制单元107。当并行标记为“0”时,更新控制单元1106不输出控制信号。
接下来,更新控制单元1106通过在第一实施例中所述的从(i-a)判断更新必要性到(i-g)安装的过程来执行更新处理或者挂起更新处理。注意在本实施例中,在(i-a)中,从服务器装置1400接收重要级别而不是比较结果。当所接收到的重要级别表示为“0”时,将表示更新结束的控制信号输出到主控制单元107,如同比较结果为“0”的情况。当所接收到的重要级别为“1”或“2”时,确定并行标记,如同比较结果为“1”的情况。当并行标记为“0”时,计算下载时间。
(1-2)当已经插入了DVD1500a时
更新控制单元1106从DVD1500a中读出创建日期1502a。接下来,获得当前日期/时间,并用所获得的当前日期/时间减去创建日期,来计算从创建日期开始经过的时间。将经过的时间与在更新控制单元1106中存储的“3个月”的新内容周期进行比较。当经过的时间长于3个月时,更新控制单元1106结束更新处理或者挂起更新处理,如同上述的(1-1)的处理中。
当经过的时间短于3个月时,更新控制单元1106结束以下所述的(1-2-a)获得重要级别和(1-2-b)更新开始的过程中的更新。
(1-2-a)获得重要级别
更新控制单元1106命令验证单元102建立SAC。当从验证单元102接收到表示SAC建立成功的控制信号时,更新控制单元1106从硬盘单元111中读出内容重放程序142中包括的标题143和版本信息144,并将标题143和版本信息144输出到通信加密/解密单元101,并命令通信加密/解密单元101执行加密。
更新控制单元1106从通信加密/解密单元101接收到加密的标题和加密的版本信息,并将加密的标题和加密的版本信息通过通信单元103发送到服务器装置1400。
接下来,更新控制单元1106通过通信单元103从服务器装置1400接收重要级别或者重要级别与程序大小的组合。
这里,要被接收的重要级别为“0”、“1”和“2”中之一,其中“0”表示没有必要进行终端装置1100中存储的内容重放程序的更新,“1”表示需要更新但是更新不是针对重要项目的,以及“2”表示需要更新并且更新是针对重要项目的。
在该情况下,如果内容重放程序“适合”,意味着内容重放程序是最新的代。
(1-2-b)依靠重要级别的更新开始
当所接收到的重要级别为“0”时,则更新控制单元1106将表示结束更新处理的控制信号输出到主控制单元107,并结束更新处理。
当所接收到的重要级别为“1”时,更新控制单元1106读出主存储单元110中存储的并行标记。
当并行标记为“1”时,更新控制单元1106将表示能够进行并行处理的控制信号输出到主控制单元107。当并行标记为“0”时,更新控制单元1106不输出控制信号。
接下来,更新控制单元1106执行在第一实施例中所述的过程(i-b)到(i-g),由此执行下载时间预测、下载、检验时间预测、检验、安装时间预测和安装处理。
在第一实施例的更新控制单元106的解释中已经描述了处理的细节,因此在此不再描述。
当所接收的重要级别为“2”时,更新控制单元1106命令验证单元102建立SAC。在SAC建立之后,更新控制单元1106将加密的标题、加密的版本信息和下载请求发送到服务器装置1400,并从服务器装置1400获得程序文件和加密的程序密钥。
接下来,更新控制单元1106命令通信加密/解密单元101对加密的程序密钥进行解密,从而生成程序密钥,并将所生成的程序密钥和所接收到的程序文件写入主存储单元110。
接下来,更新控制单元1106检验在所接收到的程序文件中包括的校验数据。当检验成功时,更新控制单元1106对加密的压缩更新程序进行解密和解压缩,以生成更新程序,并安装所生成的更新程序。在安装结束之后,更新控制单元1106将表示安装结束的控制信号输出到主控制单元107。
以上描述的从下载到安装的一序列处理与在第一实施例中(A-a)到(A-c)中所述的过程相同,特别是在(9)更新控制单元106下。因此以下限制在简短解释上。
(1-3)当已经插入了DVD1500b时
更新控制单元1106从DVD1500b中读出创建日期1502b。接下来,获得当前日期/时间,并用所获得的当前日期/时间减去创建日期,来计算从创建日期开始经过的时间。将经过的时间与在更新控制单元1106中存储的“3个月”的新内容周期进行比较。
当经过的时间长于3个月时,更新控制单元1106读出主存储单元110中存储的并行标记。当并行标记为“1”时,更新控制单元1106将表示能够进行并行处理的控制信号输出到主控制单元107。当并行标记为“0”时,不输出控制信号。
接下来,更新控制单元1106从DVD1500b中读出版本信息505b,并将版本信息505b和在硬盘单元111中存储的版本信息144比较。
在该情况下,如果内容重放程序“适合”,意味着内容重放程序是与DVD中存储的版本信息所表示的代相同的代,或者是比DVD中存储的版本信息所表示的代更新的代。换句话说,内容重放程序是适合于内容播放的代。
当版本信息505b表示与版本信息144的代相同的代时,更新控制单元1106将表示结束更新处理的控制信号输出到主控制单元107,并结束更新处理。
当版本信息505b表示比版本信息144的代更新的代时,更新控制单元1106根据更新的每个过程所必需的时间来执行程序文件下载、校验数据检验和更新程序安装或者将其挂起。这里,从下载到安装的具体过程与第一实施例的(ii-b)到(ii-g)的过程相同,因此以下限制在简短解释上。
当经过的时间短于3个月时,更新控制单元1106从DVD1500b读出版本信息505b,从硬盘单元读出版本信息144,并将版本信息505b与版本信息144进行比较。当版本信息505b表示比版本信息144的代更新的代时,更新控制单元1106从DVD1500b中存储的更新数据表1530b中的更新信息中选择包括与所读出的版本信息144匹配的旧版本信息的更新信息1531b,从所选择的信息1531b中读出程序大小和重要级别,并暂时存储程序大小和重要级别。
当版本信息505b表示与版本信息144的代相同的代时,更新控制单元1106生成重要级别“0”。
然后,根据所生成的或者所读出的重要级别来执行更新。具体的过程与(1-2-b)依靠重要级别的更新开始以下所述的相同,用DVD1500b取代DVD1500a,因此省略相关解释。
(1-4)当已经插入了DVD1500c时
更新控制单元1106从DVD1500c中读出创建日期1502c。接下来,获得当前日期/时间,并用所获得的当前日期/时间减去创建日期,来计算从创建日期开始经过的时间。将经过的时间与在更新控制单元1106中存储的“3个月”的新内容周期进行比较。
当经过的时间长于3个月时,更新控制单元1106读出主存储单元110中存储的并行标记。当并行标记为“1”时,更新控制单元1106将表示能够进行并行处理的控制信号输出到主控制单元107。当并行标记为“0”时,不输出控制信号。
接下来,更新控制单元1106执行第一实施例中所述的从(iii-a)到(iii-c)的过程,从而执行对于更新必要性的判断、安装时间预测和安装。所述过程与第一实施例中所述相同,因此在此省略相关解释。
当经过的时间在3个月内时,更新控制单元1106从DVD1500c读出程序文件503c和更新重要级别表1530c。接下来,更新控制单元1106读出硬盘单元111中存储的内容重放程序142中包括的版本信息144,并将程序文件503c包括的版本信息505c与从硬盘单元111中读出的版本信息144进行比较。
在该情况下,如果内容重放程序“适合”,意味着内容重放程序是与DVD中存储的版本信息所表示的代相同的代,或者是比DVD中存储的版本信息所表示的代更新的代。
当版本信息505c表示比版本信息144的代更新的代时,更新控制单元1106从更新重要级别表1530c中选择包括与表示在更新控制单元1106中存储的内容重放程序的版本信息144匹配的旧版本信息在内的重要级别信息,并从所选择的重要级别信息中提取重要级别。
当版本信息505c表示与版本信息144的代相同的代时,更新控制单元1106生成重要级别“0”。
接下来,更新控制单元1106根据所生成的或者所提取的重要级别来执行以下处理。
当重要级别为“0”时,则更新控制单元1106输出表示结束更新处理的控制信号,并结束更新处理。
当所接收到的重要级别为“1”时,更新控制单元1106读出主存储单元110中存储的并行标记。当并行标记为“1”时,更新控制单元1106将表示能够进行并行处理的控制信号输出到主控制单元107。当并行标记为“0”时,不输出控制信号。
接下来,确认是否正在由主控制单元107控制执行内容重放。当正在执行内容重放时,更新控制单元1106写入表示挂起安装处理的“D”,并将从DVD1500c中读出的程序文件1503c写入硬盘单元111。
当没有执行内容重放时,更新控制单元1106将程序文件503c中包括的程序大小输出到时间管理单元112,预测安装时间,并根据所预测的安装时间来执行安装或者挂起安装。
从预测安装时间到执行或者挂起安装的具体处理过程与第一实施例中关于更新控制单元106的(iii-b)和(iii-c)中的描述相同。因此以下限制在简短解释上。
当重要级别为“2”时,更新控制单元1106通过对在程序文件503c中包括的压缩更新程序506c执行解压缩算法Z来生成更新程序,并安装所生成的更新程序。
在安装结束之后,更新控制单元1106将表示更新结束的控制信号输出到主控制单元107。
(重新开始更新)
更新控制单元1106从主控制单元107接收待处理信息,并由此命令重新开始更新。当命令重新开始更新时,更新控制单元1106从根据所接收到的待处理信息的过程开始重新开始更新处理,并完成更新。
具体处理过程与第一实施例所述过程相同,因此在此省略相关描述。
2.5 操作
以下参考图31-34的流程图描述终端装置1100的操作。
从用户处接收到表示“电源按钮打开”的操作指令信息(步骤S1101),因此通过主控制单元107的命令,在开始屏幕310上显示开始屏幕310(步骤S1102)。如果根据用户按钮操作从开始屏幕310上显示的两个选择中选择开始311(步骤S1103:开始),则将控制转到步骤S1109。当选择设定改变312时(步骤S1103:设定改变)时,主控制单元107将设定改变屏幕显示到监视器120(步骤S1104),从而接收对于更新频率、通信速度以及每个允许时间的设定改变的用户输入(步骤S1107)。主控制单元107将所接收到的设定改变输出到更新控制单元1106或者输出到时间管理单元112。更新控制单元1106根据所接收到的设定改变来改写当前存储的更新频率。时间管理单元112根据所接收到的设定改变来改写通信速度220和允许时间设定表215(步骤S1108)。
主控制单元107命令更新控制单元1106开始更新。在接收到开始更新的指令后,更新控制单元1106将表示没有过程被挂起的待处理信息“E”写入主存储单元110(步骤S1109)。接下来,判断安装在终端装置1100中的微处理器的时钟频率是否是400MHz或者更高(步骤S1111)。当时钟频率是400MHz或者更高时,将并行标记设为“1”(步骤S1114)。当时钟频率低于400MHz时,将并行标记设为“0”(步骤S1112)。
接下来,更新控制单元1106通过输入/输出单元104检测是否已经插入了DVD。当没有插入DVD时(步骤S1116:否),根据更新每个过程所必需的时间来执行更新控制,如同第一实施例中。其后,终端装置的具体操作与从图13的步骤S110开始的处理相同。
当已经插入了DVD时(步骤S1116:是),更新控制单元1106通过输入/输出单元104从DVD中读出创建日期(步骤S1117),并且判断从创建日期开始所经过的时间是否在“3个月”的新内容周期之内(步骤S1119)。
当所经过的时间超过3个月,则更新控制单元1106将控制转到图13的步骤S110,其后根据每个必需时间来执行更新控制。
当所经过的时间在3个月之内(步骤S1119:是),并且插入的DVD为DVD1500a(步骤S1121:1500a),则更新控制单元1106命令验证单元102建立SAC。
验证单元102建立与服务器装置1400共享会话密钥的SAC,并通知更新控制单元1106SAC建立成功(步骤S1126)。
接下来,更新控制单元1106从硬盘单元111读出内容重放程序的标题143和版本信息144(步骤S1127),并将标题143和版本信息144输出到通信加密/解密单元101,并命令通信加密/解密单元101执行加密。通信加密/解密单元101接收到标题143和版本信息144,并通过使用会话密钥对标题143和版本信息144执行加密算法E2来生成加密的标题和加密的版本信息,并将加密的标题和加密的版本信息输出到更新控制单元1106(步骤S1128)。
接下来,更新控制单元1106将从通信加密/解密单元101接收到的加密的标题和加密的版本信息发送到服务器装置1400(步骤S1131)。
服务器装置1400的控制单元1407通过因特网20从终端装置1100接收加密的标题和加密的版本信息,并命令通信加密/解密单元401对加密的标题和加密的版本信息执行解密。通信加密/解密单元401通过使用会话密钥对加密的标题和加密的版本信息执行解密算法D2来生成标题和版本信息,并将标题和版本信息输出到控制单元1407(步骤S1132)。控制单元1407根据所接收的标题从程序更新表1420中读出最新的版本信息(步骤S1134),并将最新的版本信息与通信加密/解密单元401所生成的版本信息进行比较(步骤S1136)。
当版本信息与最新的版本信息表示为相同的代时(步骤S1136:否),控制单元1407生成重要级别“0”(步骤S1137)。当版本信息表示比最新的版本信息旧的代时(步骤S1136:是),控制单元1407根据标题和版本信息从程序更新表1420中选择程序信息,并从所选择的程序信息中读出程序大小和重要级别(步骤S1139)。
接下来,控制单元1407将程序大小和重要级别的组合或者仅仅是重要级别通过因特网20发送到终端装置1100(步骤S1141)。
终端装置1100的更新控制单元1106通过通信单元103和因特网20从服务器装置1400接收程序大小和重要级别的组合或者仅仅是重要级别。当所接收到的重要级别为“0”时(步骤S1151:“0”),更新控制单元1106将表示更新结束的控制信号输出到主控制单元107。
当已经接收到表示更新结束的控制信号时,主控制单元107开始接收来自用户的操作,如同第一实施例中。其后,终端装置1100的具体操作与从图19的步骤S195开始的操作相同。因此省略了相关描述。
当所接收到的重要级别为“1”时(步骤S1151:“1”),更新控制单元1106从主存储单元110读出并行标记。当并行标记为“0”时,更新控制单元1106根据更新每个过程所必需的时间来执行更新控制。其后,终端装置1100的操作与从图16的步骤S139开始的操作相同,因此省略了相关描述。
如果并行标记为“1”,更新控制单元1106将表示能够进行并行处理的控制信号输出到主控制单元107。接收到表示能够进行并行处理的控制信号之后,主控制单元107将控制转到图19的步骤S195。
在已经输出表示能够进行并行控制的控制信号之后,更新控制单元1106将控制转到图16的步骤S139,并根据必需的时间来执行更新控制。
当所接收到的重要级别为“2”时,更新控制单元1106将加密的标题、加密的版本信息以及下载请求通过因特网20发送到服务器装置1400,并从服务器装置1400下载程序文件和加密的程序密钥(步骤S1153)。
接下来,更新控制单元1106将加密的程序密钥输出到通信加密/解密单元101,并命令通信加密/解密单元101执行解密,并从通信加密/解密单元101接收程序密钥(步骤S1156)。
接下来,更新控制单元1106检验所下载的程序文件中包括的校验数据(步骤S1157)。当检验失败时(步骤S1158:否),控制返回步骤S1153。
当检验成功时(步骤S1158:是),更新控制单元1106通过对在所下载的程序文件中包括的加密的压缩更新程序进行解密和解压缩来生成更新程序,并安装所生成的更新程序(步骤S1159)。在安装结束之后,更新控制单元1106将表示更新结束的控制信号输出到主控制单元107,并结束更新处理。
当已经接收到表示更新结束的控制信号时,主控制单元107将控制转到图19的步骤S195。
在步骤S1121中,如果判断已经插入了DVD1500b时,更新控制单元1106从DVD1500b中读出版本信息505b(步骤S1144),并将版本信息505b与在硬盘单元111中存储的版本信息144进行比较(步骤S1146)。当从DVD1500b中读出的版本信息505b表示比版本信息144的代更新的代时(步骤S1146:是),更新控制单元1106从在DVD1500b中存储的更新数据表153中选择包括与从硬盘单元111中读出的版本信息144相匹配的旧版本信息的更新信息,并读出在所选择的更新信息中包括的程序大小和重要级别(步骤S1149),并将控制转到步骤S1151。
当从DVD1500b中读出的版本信息505b表示与从硬盘单元111中读出的版本信息144的代相同的代时(步骤S1146:否),更新控制单元1106生成重要级别“0”(步骤S1147),并将控制传递到步骤S1151。
在步骤S1121中,如果判断已经插入了DVD1500c时,更新控制单元1106通过输入/输出单元104从DVD1500c中读出程序文件503c和更新重要级别表1530c(步骤S1166),并将在程序文件503c中包括的版本信息505c与在硬盘单元111中存储的版本信息144进行比较(步骤S1167)。当版本信息505c表示比版本信息144的代更新的代时(步骤S1167:是),更新控制单元1106从更新重要级别表1530c中选择包括与从硬盘单元111中读出的版本信息144相匹配的旧版本信息的重要级别信息,并从所选择的重要级别信息中提取出重要级别(步骤S1168)。
如果版本信息144表示为与版本信息505c的代相同的代时(步骤S1167:否),更新控制单元1106生成重要级别“0”(步骤S1169)。
当所生成或者所提取的重要级别为“0”(步骤S1172:“0”)时,更新控制单元1106将表示更新结束的控制信号输出到主控制单元107,并结束更新处理。当已经接收到表示更新结束的控制信号时,主控制单元107开始接收用户操作。其后,终端装置1100执行的操作与从图19的步骤S195开始的操作相同。
当重要级别为“1”时(步骤S1172:“1”),更新控制单元1106从主存储单元110中读出并行标记。当并行标记为“0”时(步骤S1173:“0”),更新控制单元1106根据所必需的时间来执行更新控制,如同第一实施例中。其后,终端装置1100执行的操作与从图14的步骤S243开始的操作相同,因此以下省略相关描述。
当并行标记为“1”(步骤S1173:“1”),更新控制单元1106将表示能够进行并行处理的控制信号输出到主控制单元107,并且主控制单元107将控制转到步骤S195。
在已经输出表示能够进行并行处理的控制信号之后,更新控制单元1106将控制转到步骤S243。
当重要级别为“2”时(步骤S1172:“2”),更新控制单元1106通过对在程序文件503c中包括的压缩更新程序506c进行解压缩来生成更新程序(步骤S1176),并安装所生成的更新程序(步骤S1177)。
2.6 结论和有益效果
如迄今所述,终端装置1100作为第二实施例的更新系统11的组成部分,根据所插入的DVD中存储的内容是新的还是旧的,并根据当前存储的内容重放程序的最新代的升级的重要性,来确定更新定时。
当内容是新的,并且更新重要性高时,立即执行更新。
当内容是旧的,根据更新的每个过程所必需的时间来确定是否立即执行更新的各个过程还是将更新的各个过程挂起,而不管更新重要性如何。
在新的内容开始出售之后不应该是经过很长时间,因此其销售有着在未来增加的趋势。因此,对于新的内容的无效使用,例如无效复制或者无效变更的保护是具有高价值的。
因此,如果内容重放程序的最新的代包括有弥补在终端装置1100中当前存储的代的内容重放程序的安全问题的重要添加/修改项目时,认为更新重要性高。由此,终端装置1100在播放内容之前立即进行更新。根据该设计,具有高保护价值的内容被安全的对待。即,对于具有高保护价值的内容,使得内容的管理员权利的保护具有优先性。
相反地,在旧内容售出之后应该已经很长时间了,因此认为其需求已经满足到一定程度了。因此,预计销售的进一步增加不大,从而认为旧内容的保护价值低。
当内容的保护价值低时,或者当更新的重要性低时,根据更新的每个过程所必需的时间来挂起更新。即,对于旧内容,用户的方便具有优先性。
这样,考虑内容的新旧与否以及更新所必需的时间来确定更新定时。该结构能够在内容的权利持有者的权利保护与用户的方便之间进行平衡。
2.7 对于第二实施例的修改实例
迄今为止,已经描述了本发明的第二实施例。然而,本发明不应局限于所述结构,例如,还包括以下对于第二实施例的实例。
(1)在上述第二实施例中,根据内容的新旧与否以及根据更新的重要性来判断是否立即执行更新。然而,判断标准可以是内容的图像质量,而不是内容的新旧与否。
这里,终端装置1100不仅能够从DVD中也能够从混合盘(hybriddisk)中读出信息。
混合盘是例如配有具有8.5G字节容量的DVD层和具有25G字节容量的蓝光层的多层结构的光盘。具有低图像质量(SD图像)的内容存储在DVD层中,具有高图像质量(HD图像)的内容存储在蓝光层中。DVD层中存储的内容在基本上与蓝光层中存储的内容相同。
当插入混合盘时,主控制单元107读出蓝光层中存储的高图像质量的内容,并重放该内容。
在接收到开始更新的命令时,更新控制单元1106通过输入/输出单元104确认所插入盘的内容,以认定是否存储了HD图像内容。如果仅仅存储了SD图像内容,则根据更新的每个处理所必需的时间来完成更新或者将其挂起,如同第一实施例中。
如果存储了HD图像内容,则从所插入的盘或者服务器装置1400中获得重要级别。当重要级别为“2”时,在播放内容之前完成更新。
(3)可替换的是,判断标准可以是内容的点击级别,而不是内容的新旧与否。点击级别表示内容的流行级别。点击级别的一个实例是存储内容的DVD的销售量。
在该修改实例中,DVD存储了内容和对应于该内容的内容标识符。
服务器装置1400中存储了内容标识符,其对应于内容标识符所标识的内容的点击级别。
终端装置1100的更新控制单元1106预先存储了点击参考值“20000”。在更新开始之前,更新控制单元1106将内容的标题和标识符以及内容的点击级别的传输请求发送到服务器装置1400。
当已经接收到内容的标题和标识符以及内容的点击级别的传输请求时,服务器装置1400通过因特网20将与所接收到的内容标识符相对应的点击级别发送到终端装置1100。
终端装置1100的更新控制单元1106从服务器装置1400接收点击级别。当所接收到的点击级别在点击参考值“20000”以下时,更新控制单元1106根据更新的各个过程所必需的时间来执行更新控制,如同在第一实施例中。
当所接收的点击级别等于或者大于点击参考值“20000”时,从所插入的DVD中或者从服务器装置1400获得重要级别。当所获得的重要级别为“2”时,在重放内容之前完成更新。
(4)点击级别并不局限于销售量,还可以替换地为广播电台所接收到的请求数量或者广播的次数。点击级别还可以用以上的综合值来表示。
(5)在第二实施例中,除了内容重放程序更新的必要性之外,更新的重要性也是判断内容重放程序更新的必要性的标准之一,但是其不是主要标准。
当已经将DVD1500a插入了终端装置1100时,服务器装置1400将最新的版本信息与从终端装置1100接收的版本信息进行比较,根据该比较生成比较结果,并将该比较结果发送到终端装置1100。
终端装置1100从服务器装置1400接收比较结果。当所接收到的比较结果为“1”时,根据在DVD中存储的内容的新旧与否来确定更新定时。
在已经将DVD1500b或者DVD1500c插入终端装置1100中的情况下,将相应DVD中存储的版本信息与终端装置1100中存储的版本信息进行比较。如果DVD中所存储的版本信息所表示的代比终端装置1100中存储的版本信息的代更新时,判断必须进行更新,并根据DVD中存储的内容新旧与否来确定更新定时。
(6)在上述第二实施例中,是由服务器装置1400将最新的版本信息与表示终端装置1100中存储的内容重放程序的代的版本信息进行比较。然而,可以替换的是,终端装置1100也可以执行该比较。
在该情况下,终端装置1100用于仅仅将加密的标题发送到服务器装置1400。
服务器装置1400通过对所接收的加密的标题进行解密来生成标题,并将与所生成的标题相对应的最新版本信息发送到终端装置1100。
终端装置1100将所接收到的最新版本信息与终端装置1100中所存储的版本信息进行比较。当最新版本信息是比终端装置1100自身中所存储的版本信息的代更新的代时,通过因特网20将加密的标题和加密的版本信息发送到服务器装置1400,并向服务器装置1400请求重要级别和程序大小。
(7)在第二实施例中,DVD设计为其上记录了内容的创建日期,并且终端装置1100自身根据内容新旧与否并根据更新的重要性来确定更新定时。
然而,可以替换的是,服务器装置1400可以判断更新必要性以及更新定时,并向终端装置1100给出相应命令。
在该情况下,DVD设计为记录了对应于内容的内容标识符,而不是其创建日期。注意,要插入终端装置1100的DVD是诸如DVD1500a,其仅仅存储内容和内容标识符。
服务器装置1400预先存储了图35所示的内容表1470。内容表由多条内容信息1471,1472,1473,...,组成。每条内容信息包括内容标识符、创建日期和新内容到期日期。创建日期表示创建内容标识符所标识的内容的日期。新内容到期日期在判断内容标识符所标识的内容新旧与否时用作参考日期。
当已经被命令开始更新时,终端装置1100的更新控制单元1106从DVD中读出内容标识符,从硬盘单元111中读出内容重放程序的标题和版本信息,并将内容标识符以及内容重放程序的标题和版本信息通过因特网20发送到服务器装置1400。
服务器装置1400的控制单元1407经过因特网20从终端装置1100接收内容标识符、标题和版本信息。
然后控制单元1407选择包括有与所接收到的内容标识符相匹配的内容标识符的内容信息,读出所选择的内容信息中包括的新内容到期日期,并将新内容到期日期与当前日期/时间进行比较。
控制单元1407将与所接收到的标题相对应的最新版本信息与所接收到的版本信息进行比较。当所接收到的版本信息与最新版本信息表示相同的代时,生成判断结果“0”,而不管新内容到期日期与当前日期/时间之间的比较结果如何。判断结果“0”表示终端装置1100当前所拥有的内容重放程序已经是最新的,从而不需要任何更新。
当所接收到的版本信息是比最新版本信息的代更旧的代时,控制单元1407从程序更新表1420中选择其在更新模式中的旧版本信息与所接收到的版本信息相匹配的程序信息,并读出在所选择的程序信息中包括的重要级别。
当重要级别为“1”时,生成判断结果“1”,而不管新内容到期日期与当前日期/时间之间的比较结果如何。判断结果“1”表示必须进行更新,但是需要终端装置1100在更新之前根据所设定的允许时间和更新每个过程所必需的时间,来判断是立即进行更新,还是将更新的每个过程挂起。接下来,读出在所选择的程序信息中包括的程序大小。
当重要级别为“2”并且新内容到期日期表示比当前日期/时间更晚的日期时,生成判断结果“2”。判断结果“2”表示必须立即执行更新。
在生成判断结果之后,控制单元1407将所生成的判断结果通过因特网20发送到终端装置1100。注意,当所生成的判断结果为“1”时,还将程序大小与判断结果“1”一起发送。
终端装置1100的更新控制单元1106通过因特网20从服务器装置1400接收判断结果或者判断结果与程序大小的组合。
当所接收到的判断结果为“0”时,则更新控制单元1106将表示更新结束的控制信号发送到主控制单元107,并结束更新处理。
当所接收到的判断结果为“1”时,更新控制单元1106将程序大小发送到时间管理单元112,并命令时间管理单元112预测下载时间。其后,根据更新每个过程所必需的时间来判断是完成更新处理还是将其挂起,如同第一实施例中。
当所接收到的判断结果为“2”时,在播放内容之前完成更新。
这样,服务器装置1400存储内容表1470并判断更新定时。采用该结构,就可以改变新内容到期日期,并可以在内容保护中反映内容权利持有者的意图。
例如,已经将新内容到期日期设定为租用解除日期,或者结局的销售日期(sales date of a sequel)。即使如此,可以改变服务器装置1400中存储的新内容到期日期。这是有优点的,因为该结构实现了灵活地处理情况变化。
3.其他修改实例
已经根据实施例描述了本发明。然而,不必说的是本发明并不局限于所述实施例,并可以包括以下情况。
(1)当在上述第一和第二实施例中不能进行并行处理时,对下载时间、检验时间以及安装时间进行时间上的考虑。然而,还可以通过预先设定相应允许时间、计算相应必需时间、从而判断所计算得必需时间是否在允许时间之内,来考虑从DVD500c或者从DVD1500c中读出程序文件所必需的读出时间、对加密的压缩程序进行解密所必需的解密时间,以及对压缩程序进行解压缩所需要的解压缩时间。
在以上情况下,如果判断读出时间、解密时间和解压缩时间超过了相应允许时间,则因此将从读出、解密和解压缩挂起处理。
(2)在上述第一和第二实施例中,分别设定下载允许时间、检验允许时间以及安装允许时间。然而,可以将允许时间设定为完成由从下载到安装的一系列处理所组成的更新的更新允许时间。
例如,这种情况特别以下述方式执行。时间管理单元112使用从更新控制单元所接收到的程序大小来分别计算下载时间、检验时间以及安装时间。然后,将下载时间、检验时间以及安装时间的总和与更新允许时间进行比较。当所计算的总和在更新允许时间之内时,立即执行更新。另一方面,当所计算的总和超过更新允许时间时,将更新挂起。
(3)在以上项目(2)中,还可以仅仅执行能够在更新允许时间内完成的处理,并将剩下的处理挂起。
例如,具体过程如下。首先,根据程序大小计算下载时间、检验时间以及安装时间。
接下来,将所计算的下载时间与更新允许时间进行比较,并当下载时间超过更新允许时间时,将从下载开始的所有处理挂起。
当下载时间在更新允许时间之内时,计算下载时间与检验时间的和,并将该和与更新允许时间进行比较。当所计算的下载时间与检验时间的和超过更新允许时间时,仅仅立即执行下载,而将从检验开始的处理挂起。
当所计算的和在更新允许时间之内时,计算下载时间、检验时间以及安装时间的和,并将该和与更新允许时间进行比较,当所计算的下载时间、检验时间以及安装时间的和超过更新允许时间时,立即执行下载和检验,而将安装挂起。当所计算的和在更新允许时间之内时,执行下载、检验以及安装。
(4)在以上修改实例(2)中,当所计算的和超过更新允许时间时,可以取消更新。这是通过例如为更新控制单元装配计数器来实现的,计数器用于对取消次数进行计数,并在每次取消更新时将计数器加1。另外,使更新控制单元存储允许次数“3”。
当计数器所表示的值等于“3”时,忽略和的计算以及所计算的和与更新允许时间之间的比较,而立即执行更新。
(5)被插入终端装置的DVD中可以存储内容和包括有重放该内容的过程的计算机程序。其后,其中存储有内容和计算机程序的DVD称为DVD500d。
在该情况下,终端装置100读出并安装在DVD500d中存储的计算机程序,而不管终端装置100中存储的内容重放程序142的版本信息144如何。
除了上述之外,计算安装时间,如果安装时间在安装允许时间之内时,立即执行安装。另一方面,当所计算的安装时间超过安装允许时间,则将安装挂起。
(6)本发明可以是上述任意方法。另外,本发明可以是使用计算机实现上述任意方法的计算机程序。本发明还可以是由计算机程序组成的数字信号。
(7)在上述第一和第二实施例中,更新控制单元根据微处理器的时钟频率来设定并行标记。然而,可以替换的是,还可以预先计算在重放处理过程中微处理器的工作率,如果该工作率在预定值之内时,设定表示能够进行并行处理的标记“1”。
(7)本发明可以是所述实施例和修改实例中的任意的组合。
(8)本发明还可以如下所述。一种终端装置,其通过受程序引导来更新计算机程序,其中,所述程序引导至少包括更新程序的获得过程和所述计算机程序的更新过程,在所述更新程序中定义了用于更新所述计算机程序的内容,所述终端装置包括:用于根据所述计算机程序处理用户数据的处理单元;用于根据所述计算机程序判断构成所述程序引导的每个过程的执行是否会干扰运行的干扰判断单元;以及正常执行单元,用于(a)当所述干扰判断单元判断存在干扰时将所述过程执行挂起,以及(b)当所述干扰判断单元判断不存在干扰时执行所述过程。
(9)所述终端装置还包括:用于根据所述更新程序来判断是否执行更新的更新判断单元,其中,所述干扰判断单元根据所述计算机程序判断构成所述程序引导的每个过程的执行是否会干扰运行。
(10)所述终端装置或者包括对于所述更新程序有效性的检验过程和所述更新程序的解压缩过程,或者包括所述检验过程和所述解压缩过程两者之一。
(11)通过网络与所述终端装置相连接的服务器装置,其中存储了所述更新程序,并所述正常执行单元通过所述网络从所述服务器装置获得所述更新程序,以执行所述获得过程。
(12)所述终端装置中存储了终端侧的程序版本号,其表示所述计算机程序的代,并且所述服务器装置中存储了服务器侧的版本号,其表示在使用所述更新程序执行更新之后得到的新的代的所述计算机程序的代,所述更新判断单元将所述终端侧的程序版本号与所述服务器侧的版本号进行比较,并且当所述终端侧的程序版本号所表示的代与所述服务器侧的版本号所表示的代相同时,判断不执行使用所述更新程序所执行的更新,当所述终端侧的程序版本号所表示的代是比所述服务器侧的版本号所表示的代更旧时,判断执行使用所述更新程序所执行的更新。
(13)所述更新判断单元基于常规来执行比较。
(14)所述终端装置还包括:用于检测记录介质的插入的检测单元,其中所述记录介质中记录了作为数字作品的内容;用于从所述记录介质中读出所述内容的读取单元,其中,所述计算机程序包括重放所述内容的过程,所述处理单元通过根据所述计算机程序的操作来重放已经读出的所述内容,并且当所述检测单元已经检测到插入所述记录介质时,所述更新判断单元执行所述比较。
(15)所述记录介质中还记录了表示所述计算机程序的代的介质版本号,所述处理单元根据所述计算机程序重放所述内容,所述读取单元还从所述记录介质中读出所述介质版本号,所述更新判断单元不进行所述比较,而是将所述终端侧的程序版本号与所述介质版本信息进行比较,并且(a)当所述终端侧的程序版本号所表示的代与所述介质版本号所表示的代相同时,判断不使用所述更新程序执行更新,并且(b)当所述终端侧的程序版本号所表示的代是比所述介质版本号所表示的代更旧时,判断使用所述更新程序执行更新。
(16)所述记录介质预先存储所述更新程序,并且所述正常执行单元从所述记录介质中获得所述更新程序,以执行所述获得过程。
(17)所述终端装置中存储了表示所述计算机程序的代的终端侧的程序版本号,所述记录介质中存储了介质版本号,其表示在使用所述更新程序执行更新之后得到的新的代的所述计算机程序的代,所述更新判断单元将所述终端侧的程序版本号与所述介质版本号进行比较,并且当所述终端侧的程序版本号所表示的代与所述介质版本号所表示的代相同时,判断不使用所述更新程序执行更新,当所述终端侧的程序版本号所表示的代是比所述介质版本号所表示的代更旧时,判断使用所述更新程序执行更新。
(18)所述更新判断单元基于常规来执行比较。
(19)所述终端装置还包括用于检测记录介质的插入的检测单元,其中,当所述检测单元已经检测到插入所述介质时,所述更新判断单元执行所述比较。
(20)所述干扰判断单元将执行所述过程预计所必需的预测时间与预定时间进行比较,并且当所述预测时间超过所述预定时间时,判断存在干扰。
(21)所述干扰判断单元将执行所述过程预计所必需的预测时间与预定时间进行比较。
(22)通过网络连接到所述终端装置的所述服务器装置预先存储了所述更新程序,所述正常执行单元通过所述网络从所述服务器装置获得所述更新程序,以执行所述获得过程,并且所述干扰判断单元将执行所述过程预计所必需的预测时间与预定时间进行比较。
(23)所述干扰判断单元预先存储关于与所述服务器装置进行通信的通信速度,并使用所述通信速度来计算所述预测时间。
(24)所述记录介质预先存储了所述更新程序,并且所述正常执行单元从所述记录介质中获得所述更新程序,以执行所述获得过程,并且所述干扰判断单元将从所述介质中读出所述更新程序预计所必需的预测时间与预定时间进行比较。
(25)所述干扰判断单元预先存储关于从所述介质读出的读取速度,并使用所述读取速度来计算所述预测时间。
(26)所述干扰判断单元将从所述介质中读出所述更新程序预计所必需的预测时间与预定时间进行比较。
(27)所述终端装置配有微处理器,存储了所述微处理器的速度性能,每个单元根据所述微处理器进行操作,并且所述干扰判断单元使用所述速度性能来计算所述预测时间。
(28)所述干扰判断单元从用户处接收所述预定时间的输入。
(29)所述终端装置配有微处理器,存储了所述微处理器的速度性能,每个单元根据所述微处理器进行操作,所述终端装置计算所述微处理器的工作率,并且当所述工作率等于或者高于预定值时,所述干扰判断单元判断存在干扰。
(30)所述终端装置还包括:结束判断单元,用于判断根据所述计算机程序的处理是否已经结束;以及待处理执行单元,当所述结束判断单元判断根据所述计算机程序的处理已经结束时,所述待处理执行单元执行任何挂起的过程。
(31)通过网络连接到所述终端装置的所述服务器装置预先存储了所述更新程序,所述待处理执行单元通过所述网络从所述服务器装置获得所述更新程序,以执行所述获得过程。
(32)所述记录介质预先存储了所述更新程序,所述待处理执行单元从所述记录介质获得所述更新程序,以执行所述获得过程。
(33)所述结束判断单元检测所述计算机程序的处理结束,并当已经检测到所述完成时,判断根据所述计算机程序的处理已经结束。
(34)所述结束判断单元检测使得所述终端装置的电源关闭的用户操作,并当已经检测到所述用户操作时,判断根据所述计算机程序的处理已经结束。
(35)一种终端装置,在必要时,通过经受程序引导来更新计算机程序,其中,所述程序引导至少包括更新程序的获得过程和所述计算机程序的更新过程,在所述更新程序中定义了用于更新所述计算机程序的内容,所述终端装置包括:用于根据所述计算机程序处理用户数据的处理单元;用于判断是否使用所述更新程序来执行更新的更新判断单元;用于根据所述计算机程序判断构成所述程序引导的每个过程的执行是否会干扰运行的干扰判断单元;以及正常执行单元,用于(a)当所述干扰判断单元判断存在干扰时将所述过程执行挂起,以及(b)当所述干扰判断单元判断不存在干扰时执行所述过程;用于判断根据所述计算机程序的处理是否已经结束的结束判断单元;以及待处理执行单元,当所述结束判断单元判断根据所述计算机程序的处理已经结束时,所述待处理执行单元执行任何挂起的过程。
(36)将更新程序发送到终端装置的一种服务器装置,所述更新程序中定义了用于更新所述计算机程序的内容,所述服务器装置包括存储所述更新程序的存储单元;用于从所述存储单元中读出所述更新程序的读取单元;以及用于将所述更新程序发送到通过网络连接到所述服务器装置的所述终端装置的发送单元。
(37)计算机可读记录介质,其中存储了计算机数据和标识计算机程序的计算机标识符,其中,所述计算机程序适合于处理所述计算机数据。
(38)存储在所述记录介质中的程序标识符包括程序版本号和计算机程序,所述程序版本号表示所述计算机程序的代,由所述程序版本号所表示的所述计算机程序的代适合于处理所述计算机数据。
(39)计算机可读记录介质,其中存储了计算机数据和更新程序,所述更新程序中定义了用于将旧计算机程序更新到适合于处理所述计算机数据的新计算机程序的内容。
(40)终端装置所使用的一种控制方法,通过经受程序引导来更新计算机程序,其中,所述程序引导至少包括更新程序的获得过程和所述计算机程序的更新过程,在所述更新程序中定义了用于更新所述计算机程序的内容,所述控制方法包括:用于根据所述计算机程序处理用户数据的处理步骤;用于根据所述计算机程序判断构成所述程序引导的每个过程的执行是否会干扰运行的干扰判断步骤;以及正常执行步骤,用于(a)当所述干扰判断单元判断存在干扰时将所述过程执行挂起,以及(b)当所述干扰判断单元判断不存在干扰时执行所述过程。
(41)终端装置所使用的一种控制程序,通过经受程序引导来更新计算机程序,其中,所述程序引导至少包括更新程序的获得过程和所述计算机程序的更新过程,在所述更新程序中定义了用于更新所述计算机程序的内容,所述控制方法包括:用于根据所述计算机程序处理用户数据的处理步骤;用于根据所述计算机程序判断构成所述程序引导的每个过程的执行是否会干扰运行的干扰判断步骤;以及正常执行步骤,用于(a)当所述干扰判断单元判断存在干扰时将所述过程执行挂起,以及(b)当所述干扰判断单元判断不存在干扰时执行所述过程。
(42)所述计算机程序记录在一种计算机可读程序记录介质上。