信息存储器件、存储器存取控制系统、方法及计算机程序的制作方法

文档序号:6401312阅读:137来源:国知局
专利名称:信息存储器件、存储器存取控制系统、方法及计算机程序的制作方法
技术领域
本发明涉及信息存储器件、存储器存取控制系统和方法以及计算机程序。具体而言,本发明涉及信息存储器件,诸如存储卡,用于对于存储在所述信息存储器件中的数据执行各种方式的存取控制,并且根据密钥集的验证来锁定或解锁在信息存储器件中的存储器,因此执行安全的存储器存取控制管理,所述密钥集包括信息存储器件持有的标识符;存取控制系统和方法;计算机程序。
背景技术
各种信息处理装置,诸如PC(个人计算机)、PDA(个人数字助理)、数字摄像机、数据读取器/写入器和游戏机,使用各种存储媒体来读写数据,所述存储媒体诸如硬盘、DVD、CD和存储卡。
现在,小卡型存储器件被广泛地用作用于存储各种类型的软件数据的(内容)的存储装置,其中每个小卡型存储器件包括诸如闪存等的存储器和诸如CPU等的控制器,所述软件数据诸如音乐数据、图像数据和程序。
读取存储在存储卡等上的数据或向这样的存储卡写入数据是通过将所述卡放入具有存储卡接口的单元并且经由所述接口传送数据来完成的。可以由任何人不经许可来进行存储器件的数据读写。或者,通过例如设置密码或进行加密来实现所谓的存取控制方案,以便仅仅指定的用户或指定的单位被允许存取存储器,而没有许可的第三方用户被拒绝存取存储器。
例如,产生仅仅具有存取许可的用户知道的密码。这个密码被从作为信息读取器的内容使用单元向诸如存储卡的内容存储单元传送。存储卡的控制器(CPU等)验证密码,并且只要验证成功时,从诸如存储卡的内容存储单元向作为信息读取器的内容使用单元输出内容。或者,在作为信息读取器的内容使用单元和诸如存储卡的内容存储单元之间执行相互的认证。只有相互认证成功时,内容才从诸如存储卡的内容存储单元向作为信息读取器的内容使用单元输出。

发明内容
存在仅仅在验证数据(内容)使用许可之后才允许数据存取的各种结构。
诸如存储卡的数据存储器件可以被置入各种单元中,包括PC、PDA和数字摄像机。在许多情况下,这些单元共享一个存储卡。在这样的数据使用结构中,当每次存储卡被置入这些单元之一请求上述的密码验证或认证时,需要时间来等到它变得准备好读取或写入数据。因此降低了处理的效率。
考虑到上述问题,本发明的一个目的是提供一种信息存储器件,用于通过根据密钥集的验证来锁定或解锁在信息存储器件中的存储器来执行安全的存储器存取控制管理,所述密钥集包括信息存储器件持有的标识符;存取控制系统和方法;计算机程序。
按照本发明的第一方面,提供了一种信息存储器件,包括存储器,用于存储数据;控制器,用于执行对存储器的存取控制。
所述控制器从信息处理装置接收用于锁定存储器的锁定请求命令或用于解锁存储器的解锁请求命令,并且响应于所接收的命令执行处理。
所述控制器根据与已经输出命令的信息处理装置相关联地定义的标识符(ID)来验证是否信息处理装置具有包括标识符(ID)的有效密钥集,并且如果验证成功则根据所述命令来执行处理。
在本发明的信息存储器件的一种方式中,由信息处理装置持有的密钥集是密钥集[ID,LK],其中包括信息处理装置的唯一ID(ID)和与所述唯一ID相关联的锁定密钥(LK)。信息存储器件具有锁定主密钥(LMK),它可用于计算锁定密钥(LK),所述锁定密钥是基于关系式LK=H(LMK,ID)的散列值,所述散列值是通过应用锁定主密钥(LMK)来对于ID计算的。控制器根据通过应用锁定主密钥(LMK)计算散列值而获得的锁定密钥(LK)来验证从信息处理装置输入的、对于信息处理装置唯一的密钥集。
在本发明的信息存储器件的一种方式中,控制器产生一个随机数,并且从信息处理装置接收加密的数据[E(Lk,Rms)],所述加密的数据是根据由信息处理装置持有的锁定密钥(LK)加密所述随机数(Rms)而产生的。控制器执行验证,包括对照根据通过计算散列值获得的锁定密钥(LK)而计算的加密的数据[E(Lk,Rms)]来检验所接收的加密数据。
在本发明的信息存储器件的一种方式中,当从信息处理装置接收的命令是锁定命令时,控制器从信息处理装置接收标识符(ID)。控制器根据所接收的标识符(ID)来执行验证。
在本发明的信息存储器件的一种方式中,当从信息处理装置接收的命令是解锁命令时,控制器从存储器读取标识符(ID),并且根据所读取的标识符(ID)执行验证,其中所述标识符(ID)是当锁定存储器时从信息处理装置接收并且被存储在存储器中的。
按照本发明的第二方面,提供了一种存储器存取控制系统,包括信息存储器件,所述信息存储器件包括存储器,用于存储数据;控制器,用于对存储器执行存取控制,所述存储器存取控制系统还包括信息处理装置,所述信息处理装置包括与信息存储器件的接口,并且经由所述接口存取在信息存储器件中的存储器。
信息处理装置在存储装置中存储密钥集,包括标识符(ID)和锁定密钥(LK)。
信息存储器件的控制器从信息处理装置接收用于锁定存储器的定请求命令或用于解锁存储器的解锁请求命令,并且响应于所接收的命令来执行处理。
信息存储器件的控制器根据与已经输入命令的信息处理装置相关联地定义的标识符(ID)来验证是否信息处理装置具有包括标识符(ID)的有效密钥集,并且如果验证成功则根据所述命令来执行处理。
在本发明的存储器存取控制系统的一种方式中,由信息处理装置持有的密钥集是密钥集[ID,LK],其中包括信息处理装置的唯一ID(ID)和与所述唯一ID相关联的锁定密钥(LK)。信息存储器件具有锁定主密钥(LMK),它可用于计算锁定密钥(LK),所述锁定密钥是基于关系式LK=H(LMK,ID)的散列值,所述散列值是通过应用锁定主密钥(LMK)来对于ID计算的。信息存储器件的控制器根据通过应用锁定主密钥(LMK)计算散列值而获得的锁定密钥(LK)来验证从信息处理装置输入的、对于信息处理装置唯一的密钥集。
在本发明的存储器存取控制系统的一种方式中,信息存储器件的控制器产生一个随机数,并且从信息处理装置接收加密的数据[E(Lk,Rms)],所述加密的数据是根据由信息处理装置持有的锁定密钥(LK)加密所述随机数(Rms)而产生的。信息存储器件的控制器执行验证,包括对照根据通过计算散列值获得的锁定密钥(LK)而计算的加密的数据[E(Lk,Rms)]来检验所接收的加密数据。
在本发明的存储器存取控制系统的一种方式中,当从信息处理装置接收的命令是锁定命令时,信息存储器件的控制器从信息处理装置接收标识符(ID)。信息存储器件的控制器根据所接收的标识符(ID)来执行验证。
在本发明的存储器存取控制系统的一种方式中,当从信息处理装置接收的命令是解锁命令时,信息存储器件的控制器从存储器读取标识符(ID),并且根据所读取的标识符(ID)执行验证,其中所述标识符(ID)是当锁定存储器时从信息处理装置接收并且被存储在存储器中的。
按照本发明的第三方面,提供了一种存储器存取控制方法,用于信息存储器件,所述信息存储器件包括用于存储数据的存储器和用于对存储器执行存取控制的控制器。所述方法包括从信息处理装置接收用于锁定存储器的锁定请求命令或用于解锁存储器的解锁请求命令的步骤;验证步骤,根据与已经输出命令的信息处理装置相关联地定义的标识符(ID)来验证是否信息处理装置具有包括标识符(ID)的有效密钥集;如果验证成功则根据所述命令来执行处理的步骤。
在本发明的存储器存取控制方法的一种方式中,由信息处理装置持有的密钥集是密钥集[ID,LK],其中包括信息处理装置的唯一ID(ID)和与所述唯一ID相关联的锁定密钥(LK)。信息存储器件具有锁定主密钥(LMK),它可用于计算锁定密钥(LK),所述锁定密钥是基于关系式LK=H(LMK,ID)的散列值,所述散列值是通过应用锁定主密钥(LMK)来对于ID计算的。验证步骤包括根据通过应用锁定主密钥(LMK)计算散列值而获得的锁定密钥(LK)来验证从信息处理装置输入的、对于信息处理装置唯一的密钥集的步骤。
在本发明的存储器存取控制方法的一种方式中,所述验证步骤包括步骤产生一个随机数,并且从信息处理装置接收加密的数据[E(Lk,Rms)],所述加密的数据是根据由信息处理装置持有的锁定密钥(LK)加密所述随机数(Rms)而产生的。控制器执行验证,包括对照根据通过计算散列值获得的锁定密钥(LK)而计算的加密的数据[E(Lk,Rms)]来检验所接收的加密数据。
在本发明的存储器存取控制方法的一种方式中,所述验证步骤包括步骤当从信息处理装置接收的命令是锁定命令时,从信息处理装置接收标识符(ID),并且根据所接收的标识符(ID)来执行验证。
在本发明的存储器存取控制方法的一种方式中,所述验证步骤包括步骤当从信息处理装置接收的命令是解锁命令时,从存储器读取标识符(ID),并且根据所读取的标识符(ID)执行验证,其中所述标识符(ID)是当锁定存储器时从信息处理装置接收并且被存储在存储器中的。
按照本发明的第四方面,提供了一种计算机程序,用于对信息存储器件执行存储器存取控制,所述信息存储器件包括用于存储数据的存储器和用于对存储器执行存取控制的控制器。所述程序包括从信息处理装置接收用于锁定存储器的锁定请求命令或用于解锁存储器的解锁请求命令的步骤;验证步骤,根据与已经输出命令的信息处理装置相关联地定义的标识符(ID)来验证是否信息处理装置具有包括标识符(ID)的有效密钥集;如果验证成功则根据所述命令来执行处理的步骤。
按照本发明的结构,诸如存储卡的信息存储器件从诸如PC的信息处理装置接收用于锁定存储器的锁定请求命令或用于解锁存储器的解锁请求命令。在响应于所接收的命令执行处理时,信息存储器件根据与已经输出命令的信息处理装置相关联地定义的标识符(ID)来验证是否信息处理装置具有包括标识符(ID)的有效密钥集。如果验证成功,则所述信息存储器件根据所述命令来执行处理。因此,在安全的管理下执行存储器存取控制。
按照本发明的结构,在信息处理装置中存储了一个密钥集[ID,LK],其中包括信息存储器件的唯一ID(ID)和与所述唯一ID相关联的锁定密钥(LK)。同时,信息存储器件存储锁定主密钥(LMK),它可用于计算锁定密钥(LK),所述锁定密钥是基于关系式LK=H(LMK,ID)的散列值,所述散列值是通过应用锁定主密钥(LMK)来对于ID计算的。信息存储器件根据通过应用锁定主密钥(LMK)计算散列值而获得的锁定密钥(LK)来验证从信息处理装置输入的、对于信息处理装置唯一的密钥集。根据单个锁定主密钥(LMK)来执行对于多个不同锁定密钥(LK)的验证。
按照本发明的结构,依据信息处理装置的验证,信息存储器件产生一个随机数,并且从信息处理装置接收加密的数据[E(Lk,Rms)],所述加密的数据是根据由信息处理装置持有的锁定密钥(LK)加密所述随机数(Rms)而产生的。信息存储器件对照根据通过计算散列值获得的锁定密钥(LK)而计算的加密的数据[E(Lk,Rms)]来检验所接收的加密数据。每次检验加密数据时,通过应用不同的随机数来执行验证。这防止了使用过去检验的登录数据来未经授权地存取。
本发明的计算机程序是可以在诸如CD、FD或MO的存储介质或诸如网络的通信介质上提供的计算机程序,用于以计算机可读的格式向可以执行各种程序代码的一般计算机系统提供计算机程序。通过以计算机可读的格式提供这样的程序,可以在计算机系统上执行按照所述程序的处理。
通过下面参照附图详细说明本发明的优选实施例,本发明的其他目的、特点和优点将会变得更加清楚。本说明书中的词“系统”指的是多个装置的逻辑组,它们不必然被包括在单个的外壳中。


图1是说明本发明的信息存储器件的使用的示意图。
图2是示出使用信息存储器件的主器件的硬件配置的示例的图。
图3是示出信息存储器件的硬件配置的示例的图。
图4是说明在本发明的信息存储器件中存储的数据和在主器件中存储的数据的图。
图5是说明在锁定信息存储器件中在信息存储器件和主器件之间执行的通信处理的序列的图。
图6是说明锁定信息存储器件的处理的流程图。
图7是说明在解锁信息存储器件中在信息存储器件和主器件之间执行的通信处理的序列的图。
图8是说明解锁信息存储器件的处理的流程图。
图9是说明在本发明的信息存储器件中存储的数据和在主器件中存储的数据的图。
图10是说明锁定本发明的信息存储器件的方式的图。
图11是说明在通过应用子密钥集而锁定信息存储器件中在信息存储器件和主器件之间执行的通信处理的序列的图。
图12是说明通过应用子密钥集而锁定信息存储器件的处理的流程图。
图13是说明在通过应用子密钥集而执行压印和解锁信息存储器件中在信息存储器件和主器件之间执行的通信处理的序列的图。
图14是说明通过应用子密钥集而压印和解锁信息存储器件的处理的流程图。
图15是说明通过应用子密钥集而压印和解锁信息存储器件的处理的流程图。
图16是说明在通过应用子密钥集而执行压印和解锁信息存储器件中在信息存储器件和主器件之间执行的通信处理的序列的图。
图17是说明在通过应用子密钥集而执行压印和解锁信息存储器件中更新锁定状态标记的处理的流程图。
图18是说明在解锁信息存储器件中涉及锁定状态标记的处理的流程图。
图19是说明作为信息存储器件的数据存储格式的簇结构的图。
图20是说明基于特定数据区域(簇)的读取的锁定处理的流程图。
图21是说明用于锁定/解锁信息存储器件的锁定/解锁单元的结构的图。
图22是说明主器件读取锁定状态的处理的流程图。
图23是说明当锁定信息存储器件时主器件执行的处理和指示器显示处理的流程图。
图24是说明当解锁信息存储器件时主器件执行的处理和指示器显示处理的流程图。
具体实施例方式
参照附图,将详细说明按照本发明的实施例的信息存储器件和存储器存取控制处理。
参见图1,将说明通过应用本发明的信息存储器件而使用数据。信息处理装置20包括例如,PC(个人计算机)21、PDA(个人数字助理)22、移动通信终端23、数字摄像机24等。信息存储器件30可以被置于这些信息处理装置20中,并且信息处理装置20可以从信息存储器件30输出信息。
例如,具有诸如闪存的非易失性存储器(NVM)的存储卡30被置入每个信息处理装置20中。每个信息处理装置20在存储卡30上存储数据或读取在存储卡上存储的数据。
存在这样的情况,其中PC(个人计算机)21和22、PDA(个人数字助理)23、移动通信终端24、数字摄像机25共享一个存储卡30。例如,由数字摄像机25捕获的图像数据被存储在存储卡30上,而随后,存储卡30被置入PC 21以显示所存储的图像数据或处理图像。或者,PC 21经由诸如因特网的网络或经由CD或DVD来获得诸如音乐数据的内容,并且在存储卡30上存储内容,随后,其具有存储内容的存储卡30被置入PDA 22中,因此使得可以使用PDA 22在远处站点读取内容。
图2示出了其中可以置于诸如存储卡的信息存储器件的信息处理装置的配置的一个示例。CPU(中央处理器)101是执行各种应用程序和OS(操作系统)的处理器。CPU 101控制在锁定和解锁信息存储器件中的散列值计算、包括随机数产生的各种类型的加密和命令发送和接收,所述在锁定和解锁信息存储器件中作为下述详细说明的在信息存储器件上的存取控制。
ROM(只读存储器)102存储由CPU 101执行的程序的固定数据和计算参数。ROM 102存储用于锁定和解锁信息存储器件的程序,所述锁定和解锁信息存储器件作为后面详细说明的信息存储器件上的存取控制。
RAM(随机存取存储器)103存储被施加到由CPU 101执行的程序和随着程序的执行适当改变的参数的信息。
DSP(数字信号处理器)104当读取已经经由存储器件接口113从诸如存储卡的信息存储器件200输入的内容时执行加密、均衡器调整(按照音频信号的频带的增益调整)、压缩/解压(编码/解码)等。
解密的、解压的内容被数字/模拟转换器电路105转换为模拟音频信号,并且所述模拟音频信号被放大器电路106放大,并且从音频输出单元107输出。图像数据经由显示控制器108被诸如LCD的显示单元109输出。经由输入接口112从外部来源输入数字信号或模拟信号。当输入模拟信号时,这个模拟信号被模/数转换。利用模/数转换,输入信号被转换为数字信号。从外部来源输入的数字信号被SRC(采样率转换器)转换为具有预定采样频率和预定量化比特数量的数字信号,并且被转化的信号被输入。
输入/输出接口115是连接到外部单元的接口。例如,输入/输出接口115通过例如USB或IEEE 1394连接来与与其连接的单元进行数据传送。
参见图3,将说明信息存储器件200的配置的一个示例,诸如具有非易失性存储器(NVM)的存储卡,所述非易失性存储器诸如闪存。所述闪存是被称为EEPROM(电子可擦除可编程ROM)的一种类型的电子可重写非易失性存储器。因为已知的EEPROM具有由两个晶体管组成的每个比特,因此每个比特占用的面积大。对于提高每个芯片的部件的数量有一个限制。另一方面,利用所有比特删除方案,闪存包括由一个晶体管组成的每个比特。
具有这样的闪存的信息存储器件200被布置在诸如PC、PDA或数字摄像机的信息处理装置中。从信息处理装置输入的数据被存储在存储器220上,而在存储器220上存储的数据被输出到信息处理装置上。
信息存储器件200还包括控制器210。控制器210包括CPU(中央处理单元)211,作为执行各种程序的处理器;ROM(只读存储器)212,用于存储由CPU 211执行的程序的固定数据和计算参数;RAM(随机存取存储器)213,用于存储被施加到由CPU 211执行的程序的信息和随着程序的执行适当改变的参数。
RAM(随机存取存储器)213也被用作用于存储状态值数据的区域,所述状态值指示信息存储器件的锁定状态,它由于信息存储器件的锁定和解锁而改变,信息存储器件的锁定和解锁作为对于后面详细说明的信息存储器件上的存取控制。
控制器210还包括单元接口214,它用作与信息处理装置的数据输入/输出接口;存储器接口216,它用作与存储器220数据输入/输出接口。
CPU 211控制在信息存储器件和信息处理装置之间执行的锁定和解锁处理中的散列值计算、包括随机数产生的各种类型的加密、命令发送和接收,所述锁定和解锁处理用作下面详细所述的存取控制。
作为用于在信息存储器件上存取控制的处理的示例,现在说明通过应用锁定主密钥(LMK)而对信息存储器件的锁定和解锁。参见图4,将示意性地说明这个处理、即通过应用锁定主密钥(LMK)而执行的处理的示例。
锁定使得在诸如闪存的存储器(图3的存储器220)上的存取控制有效,所述存储器是用于存储诸如存储卡的信息存储器件320的诸如内容的数据的区域。解锁用于去除存取控制。通过主器件310来执行锁定和解锁。
如上参照图1和2所述,主器件310包括多个信息处理装置,诸如PC、PDA、数字摄像机和DSC(数字照相机),每个具有用于执行与诸如存储卡的信息存储器件320的数据传送的接口,每个向信息存储器件320写入数据或从信息存储器件320读取和使用数据。主器件310还包括锁定/解锁单元312,它用作专用于锁定/解锁诸如存储卡的信息存储器件320的单元。
锁定/解锁单元312包括CPU,作为用于执行锁定和解锁算法的控制装置;ROM和RAM,作为数据存储存储器;接口,其中置入了诸如存储卡的信息存储器件320,并且通过它来进行数据传送。锁定/解锁单元312是专用于锁定和解锁信息存储器件320的单元。
以下,锁定和解锁信息存储器件320的单元,即包括PC、PDA、其它信息处理装置和锁定/解锁单元312的单元被称为主器件。
在主器件中的诸如ROM的存储器315存储ID(例如16字节的数据)和锁定密钥(LK)(例如8字节的数据),所述ID作为每个主器件唯一的标识符,所述锁定密钥作为应用到锁定和解锁信息存储器件320的密钥数据。每个主器件唯一的标识符(ID)和锁定密钥(LK)的集[ID,LK]被称为密钥集。
同时,在诸如存储卡的信息存储器件320中的控制器中的诸如ROM的存储器325存储锁定主密钥(LMK)。这些信息在例如制造每个单元时被写入到每个单元,并且不能被用户重写。
存储在信息存储器件320中的锁定主密钥(LMK)和存储在主器件中的ID和锁定密钥(LK)具有下列关系LK=H(LMK,ID)H(X,Y)表示通过应用密钥X对消息Y的散列值的计算。换句话说,通过应用锁定主密钥(LMK)计算ID的散列值来计算与ID相关联的锁定密钥(LK)。
散列函数是单向函数,并且难于反推,即在给定输出的情况下,很难计算输入。在上述的方程中,通过应用锁定主密钥(LMK)来作为密钥而向每个主器件唯一的ID应用单向函数,因此计算输出,所述输出是与每个主器件唯一的ID相关联的锁定密钥(LK)。可以应用诸如MD5或SHA的散列算法。
(锁定)现在说明通过应用上述的锁定主密钥(LMK)、即使得在信息存储器件上的存取控制有效的锁定。
图5示出了在锁定中在主器件和信息存储器件之间执行的处理序列。主器件和信息存储器件相互连接以便彼此传送数据。主器件向信息存储器件输出随机数产生命令。在接收到随机数产生命令时,信息存储器件产生诸如16字节的预定长度的随机数(Rms),并且向主器件发送所产生的随机数。信息存储器件在信息存储器件的控制器中的诸如RAM的存储器中存储所产生的随机数(Rms)。
依据从信息存储器件的随机数(Rms)的接收,主器件使用存储在主器件的存储器中的锁定密钥(LK)作为加密密钥来执行所接收的随机数(Rms)的加密E(LK,Rms),其中E(X,Y)表示通过应用密钥[X]对消息[Y]的加密。各种算法可以被作为加密算法应用。例如,应用DES加密算法。
主器件使用锁定密钥(LK)作为加密密钥来执行所接收的随机数(Rms)的加密E(LK,Rms),并且向信息存储器件发送结果数据[E(LK,Rms)]、由主器件预先存储在主器件的存储器中的主器件唯一的标识符(ID)、锁定命令。
依据包括ID和E(LK,Rms)的数据的接收,信息存储器件通过应用在信息存储器件的存储器中存储的锁定主密钥(LMK)来计算所接收的ID的散列值,于是计算与所接收的ID相关联的锁定密钥(LK)。即,信息存储器件计算与所接收的ID相关联的锁定密钥(LK)LK=H(LMK,ID)所接收的ID被存储在信息存储器件的存储器中。所接收的ID用于解锁中,将在后面说明这一点。
信息存储器件通过应用通过上述散列值计算而计算的锁定密钥(LK)来执行对存储在信息存储器件的存储器中的随机数Rms的加密E(LK,Rms),并且检验是否这个加密的数据等于从主器件接收的加密数据E(LK,Rms)。各种算法可以适用,只要它们与由主器件使用的算法相同。
当从主器件接收的数据E(LK,Rms)等于由信息存储器件计算的加密数据E(LK,Rms)时,验证命令是来自具有有效ID和LK的设置数据的主器件的锁定请求。锁定被执行,并且锁定完成通知被发送到主器件。信息存储器件在包括诸如闪存的非易失性存储器(NVM)的存储器220中存储已经执行了锁定的主器件的密钥集[ID,LK]。
当从主机接收的数据E(LK,Rms)不等于由信息存储器件计算的加密数据E(LK,Rms)时,确定主器件不是具有有效ID和LK的设置数据的主器件,并且命令是来自未经授权的单元的锁定请求。不执行锁定,并且向主器件发送差错通知。
如果执行后述的解锁,则由信息存储器件执行的锁定是允许存取包括闪存的存储器(图3的存储器220),所述包括闪存的存储器是用于存储诸如内容的数据的区域。
参见图6的流程图,现在说明锁定处理的步骤。在步骤S101,用作信息存储器件的存储卡响应于从主器件接收到随机数产生请求命令而产生随机数(Rms)。在步骤S102,所产生的随机数被主器件读取。在步骤S103,主器件除了锁定命令之外还向用作信息存储器件的存储卡发送主器件的ID和通过使用主器件的锁定密钥(LK)加密随机数(R′ms)而产生的加密数据E(LK,Rms)。
在步骤S104,存储卡向在信息存储器件中的存储器写入所接收的ID和加密数据E(LK,Rms)。在步骤S105,存储卡通过应用在存储卡的存储器中存储的锁定主密钥(LMK)来计算所接收的ID的散列值,即计算与所接收的ID相关联的锁定密钥(LK)H(LMK,ID)=LK。
根据所计算的锁定密钥(LK),存储卡加密在步骤S101中先前产生的随机数(Rms),并且计算用作检验数据的加密数据E(LK,Rms)。
在步骤S106,存储卡执行比较和检验在步骤S105中计算的加密数据E(LK,Rms)的[E(LK,Rms)=E(LK,Rms)?]和除了在步骤S103中的锁定命令还从主器件接收的和在步骤S104中在存储器中存储的加密数据E(LK,Rms),以便检验是否两个数据是相同的。
当通过比较和检验确定这两个值相等时,主器件被验证为具有有效正确ID和锁定密钥(LK)的设置数据的有效单元。在步骤S107中,响应于锁定命令而执行锁定,因此如果后述的解锁成功则允许存取存储器。信息存储器件在包括诸如闪存的非易失性存储器(NVM)的存储器220中存储已经执行了锁定的主机的密钥集[ID,LK]。
当通过比较和检验在步骤106中确定所述两个值不相等时,在步骤S108,已经发送了锁定命令的主器件被确定为没有正确ID和锁定密钥(LK)的设置数据的未经授权的单元。不执行锁定,并且向主器件发送差错通知。
(解锁)现在说明解锁或释放通过经由应用如上所述的锁定主密钥(LMK),即去除在信息存储器件上的存取控制来锁定而设置的锁定。
图7示出了在解锁中在主器件和信息存储器件之间执行的处理的序列。所述主器件和信息存储器件相互连接以便彼此传送数据。主器件向信息存储器件输出随机数产生命令。依据随机数产生命令的接收,信息存储器件产生诸如16字节的预定长度的随机数(Rms),并且向主器件发送所产生的随机数(Rms)和已经在前一个锁定处理中被存储在存储器中的主器件的ID,所述主器件的ID即已经执行了锁定的主器件的ID。信息存储器件在信息存储器件的控制器中的诸如RAM的存储器中存储了所产生的随机数(Rms)。
依据从信息存储器件的ID和随机数(Rms)的接收,主器件对照主器件的ID来检验所接收的ID,以便检验是否两个ID相等。当两个ID不相等时,所述锁定被另一个主器件设置而不能被释放。
当所接收的ID等于主器件的ID时,所述锁定被这个主器件设置而可以被释放或解锁。在这种情况下,主器件使用在主器件中的存储器中存储的锁定密钥(LK)作为加密密钥来执行对所接收的随机数的加密E(LK,Rms),并且除了解锁命令之外还向信息存储器件发送作为结果而产生的数据。
依据加密数据E(LK,Rms)的接收,信息存储器件读取在信息存储器件的存储器中存储的主器件ID,即已经执行了锁定的主器件的ID,并且通过应用锁定主密钥(LMK)来计算所读取的ID的散列值,因此计算与已经执行锁定的主器件的ID相关联的锁定密钥(LK)。即,信息存储器件计算与已经执行锁定的主器件的ID相关联的锁定密钥(LK)LK=H(LMK,ID)信息存储器件通过应用经由上述散列值计算而计算的锁定密钥(LK)来执行存储在信息存储器件的存储器中的随机数(Rms)的加密E(LK,Rms),并且对照从主器件数据的加密数据E(LK,Rms)来检验这个加密数据,以便检验是否两个数据相等。
当从主器件接收的数据E(LK,Rms)等于由信息存储器件计算的加密数据E(LK,Rms)的时候,验证解锁命令是来自具有有效ID和LK的设置数据的主器件的解锁请求。执行解锁,并且向主器件发送解锁完成通知。当两个数据不相同时,确定主器件不是具有有效ID和LK的设置数据的主器件,并且解锁命令是来自未经授权的单元的解锁请求。不执行解锁,并且向主器件发送差错通知。
由信息存储器件执行的解锁表示释放锁定,即允许存取包括闪存等的存储器(图3的存储器220),所述存储器是用于存储诸如内容的数据的区域。
参见图8的流程图,现在说明解锁处理的步骤。在步骤S201,作为信息存储器件的存储卡响应于从主器件接收到随机数产生请求命令而产生随机数(Rms)。在步骤S202,主器件除了已经先前执行了锁定的主器件的ID之外还读取所产生的随机数。
当从存储卡读取的ID等于主器件的主ID时,主器件确定可以解锁锁定。在步骤S203,主器件除了解锁命令之外还向用作信息存储器件的存储卡发送通过使用主器件的锁定密钥(LK)加密所接收的随机数(Rms)而产生的加密数据E(LK,Rms)。
在步骤S204,存储卡向在信息存储器件中的存储器中写入所接收的加密数据E(LK,Rms)。在步骤S205,存储卡读取在前一个锁定处理中在存储器中存储的、已经执行了锁定的主器件的ID,并且通过应用在存储卡的存储器中存储的锁定主密钥(LMK)来计算所读取的ID的散列值,因此计算与ID相关联的锁定密钥(LK)H(LMK,ID)=LK。
根据所计算的锁定密钥(LK),存储卡加密在步骤S201中先前产生的随机数(Rms),并且产生作为检验数据的加密数据E(LK,Rms)。
在步骤S206中,存储卡执行比较和检验在步骤S205中计算的加密数据E(LK,Rms)的[E(LK,Rms)=E(LK,Rms)?]和除了在步骤S203中的解锁命令之外从主器件接收的并在步骤S204中在存储器中存储的加密数据E(LK,Rms),以便检验是否两个数据是相同的。
当通过比较和检验确定这两个值是相等的时,主器件被验证为具有有效正确的ID和锁定密钥(LK)的设置数据的有效单元。在步骤S207,响应于解锁命令而执行解锁,因此允许存取存储器。相反,当通过比较和检验在步骤S206确定两个值不相等时,已经发送解锁命令的主器件被确定为没有正确ID和锁定密钥(LK)的设置数据的未经授权的单元,所述正确ID和锁定密钥(LK)的设置数据被应用到锁定。不执行解锁,即不释放锁定,并且向主器件发送差错通知。
如上所述,按照处理的这个示例,只有具有主器件ID和与主器件ID相关联的锁定密钥(LK)的有效设置数据的主器件被允许锁定信息存储器件。只能通过已经执行锁定的主器件来执行解锁或释放锁定。在上述的锁定和解锁处理中,执行单方验证,其中仅仅信息存储器对主器件执行验证。在主器件上的处理负载被减小,并且有效地执行处理。
在上述的锁定和解锁处理中,在信息存储器件端应用在每个处理中产生的随机数。在过去处理中记录的数据不能被应用,因此有效地防止基于过去处理的轨迹的未经授权的处理。
每个主器件在信息存储器件上执行上述的锁定和解锁处理。只能由已经锁定了信息存储器件的主器件来解锁锁定。在多个主器件使用一个信息存储器件(存储卡)的情况下,主器件(单元A)在信息存储器件(存储卡)上存储数据,并且锁定这个存储卡,另一个主器件(单元B)可能要使用这个信息存储器件(存储卡)。
在这样的情况下,,除非由主器件(单元A)释放锁定,否则不能由主器件(单元B)来释放锁定。以下,说明用于解决这个问题的处理的示例。即,主器件能够单独锁定和解锁信息存储器件。参见图9,现在示意性地说明所述处理的示例。
锁定是使得在诸如闪存的存储器(图3中的存储器220)上的存取控制有效,所述存储器是用于存储诸如存储卡的信息存储器件520的诸如内容的数据的区域。解锁是去除存取控制。这些与在处理的前一个示例中的那些相同。由主器件510执行锁定和解锁。
如上参照图1和2所述,主器件510包括信息处理装置,诸如PC、PDA、数字摄像机和DSC(数字照相机),每个具有用于执行与诸如存储卡的信息存储器件520的数据传送的接口,每个向信息存储器件520写入数据或从信息存储器件520读取和使用数据。主器件510还包括锁定/解锁单元512,它用作专用于锁定/解锁诸如存储卡的信息存储器件520的单元。
在主器件中的诸如ROM的存储器515存储作为每个主器件唯一的标识符的ID(诸如16字节的数据)和作为应用到锁定和解锁的密钥数据的锁定密钥(LK)(诸如8字节的数据)。如上所述,ID和LK是对应于在处理的前一个示例中的ID和LK的一组数据。象在前一个处理中一样,ID和LK可以被应用到锁定和解锁。
ID是主ID,LK是主锁定密钥。在制造每个主器件时,ID和LK被写入到每个主器件的诸如ROM的存储器,并且不能被用户重写。象在其中应用LMK的处理的前一个示例中一样,主ID(IDs)主锁定密钥(LKs)可以应用到其中主器件与信息存储器件具有一对一的关系的锁定或解锁。包括每个主器件唯一的主ID和主锁定密钥的密钥集[IDs,LKs]被称为主密钥集。
通过应用这个主密钥集[IDs,LKs]的锁定被称为标准锁定。通过从用作主器件的信息处理装置向信息存储器件输出标准锁定命令,执行标准锁定。通过输出解锁命令,执行解锁。
在主器件中的诸如ROM的存储器515可以存储用作子ID和子锁定密钥的设置数据的至少一个子密钥集[IDen,LKen](n=1,2,..),它作为可以被复制和提供到另一个主器件的密钥集。
这个子密钥集[IDen,LKen]是可以通常被存储在多个主器件中的密钥。通过下述的处理,存储在另一个主器件中的这个子密钥集[IDen,LKen]可以经由信息存储器件被复制和存储在另一个主器件中。
通过应用子密钥集[IDen,LKen]锁定信息存储器件被称为输出锁定,所述子密钥集[IDen,LKen]可以经由信息存储器件(存储卡)被复制和输出到另一个主器件。
通过应用子密钥集[IDen,LKen]的锁定被称为输出锁定。通过从作为主器件的信息处理装置向信息存储器件输出一个输出锁定命令,执行输出锁定。通过输出解锁命令,执行解锁。
由主器件从输出锁定的信息存储器件(存储卡)获得的子密钥集[IDen,LKen]可以被写入到主器件的存储器中。子密钥集的这个复制和写入被称为压印。通过压印,形成包括多个具有相同的子密钥集[IDen,LKen]的主器件的一组。
因此,子密钥集[IDen,LKen]是适用于其中可以输出子密钥集[IDen,LKen]的锁定、即输出锁定的密钥集。通过向ID和LK加上[e]来表示子密钥集[IDen,LKen],其中[en]的n指示对应于所定义的组的数量的子密钥集数量。
每个主器件可以存储多个不同的子密钥集。例如,子密钥集1[IDe1,LKe1]被设置为在包括PC(个人计算机)-a、PC-b和PDA(个人数字助理)-a的三个主器件的组中共享的一个公共子密钥集(sub 1);子密钥集2[IDe2,LKe2]被设置为在PC-a、PDA-a和PDA-b的组中共享的一个子密钥集(sub 2)。在这样的情况下,每个主器件在存储器中存储对应的主密钥集[IDs,LKs],其中包括主ID(ID)和主锁定密钥(LK)。另外,主器件存储下列子密钥集,每个包括子ID和子锁定密钥PC-a存储[IDe1,LKe1]和[IDe2,LKe2];
PC-b存储[IDe1,LKe1];PDA-a存储[IDe1,LKe1]和[IDe2,LKe2];PDA-b存储[IDe2,LKe2]。
通过将包括子ID和子锁定密钥的设置数据的子密钥集[IDen,LKen]写入每个主器件的存储器515,每个主器件变为主器件组-n的一个成员,所述主器件组-n包括至少一个主器件。组n的每个成员应用公共存储的子ID(IDn)和公共子锁定密钥(LKn)以锁定和解锁一个信息存储器件(存储卡)。
相反,在诸如存储卡的信息存储器件520中的控制器中诸如ROM的存储器525存储锁定主密钥(LMK)。在信息存储器件520中存储的锁定主密钥(LMK)和存储在主器件中的锁定密钥(LK(包括LK和LKen))具有下列关系LK=H(HMK,ID)锁定主密钥(LMK)与ID和LK的关系与其中应用LMK的前一个所述处理中的相同。通过应用锁定主密钥LMK来计算主ID(IDs)的散列值,计算主锁定密钥(LKs)。通过应用锁定主密钥LMK来计算子ID(IDen)的散列值,计算子锁定密钥(LKen)。
参见图10,现在说明使用主密钥集[IDs,LKs]和子密钥集[IDen,LKen]的锁定模式。锁定模式包括在图10的部分(a)-(c)中所示的三个模式。
部分(a)示出了标准锁定,其中应用主密钥集[IDs,LKs]531,包括每个主器件510唯一的主ID(IDs)和主锁定密钥(LKs)。
通过从主器件510向信息存储器件520输出标准锁定命令来执行通过应用主密钥集[IDs,LKs]531的标准锁定。通过输出解锁命令,执行解锁。
当信息存储器件520被标准锁定时,主密钥集[IDs,LKs]被存储在信息存储器件(存储卡)520的存储器(闪存)的标准锁定密钥集存储区域541中。应用到标准锁定的主密钥集[IDs,LKs]不从锁定的信息存储器件(存储卡)520输出。信息存储器件520只能被具有相同的主密钥集[IDs,LKs]的主器件、即已经执行标准锁定的主器件解锁。
如在其中应用LMK的上述处理中一样,包括主ID(IDs)和主锁定密钥(LKs)的主密钥集[IDs,LKs]可以被应用到锁定和解锁,其中主器件具有与信息存储器件的一对一的关系。可以执行与参照图5-8说明的那些类似的锁定和解锁。
部分(b)示出了输出锁定,其中应用子密钥集[IDen,LKen]532,包括可以在多个主器件之间共享的子ID(IDen)和子锁定密钥(LKen)。
通过从主器件510向信息存储器件520输出一个输出锁定命令来执行通过应用子密钥集[IDen,LKen]532的输出锁定。通过输出解锁命令来执行解锁。
当信息存储器件520被输出锁定时,子密钥集[IDen,LKen]被存储在锁定的信息存储器件(存储卡)520的存储器(闪存)的输出锁定密钥集存储区域542中。当执行这种类型的锁定时,由另一个主器件通过压印从被锁定的信息存储器件(存储卡)520可以获得被应用到输出锁定的子密钥集[IDen,LKen],所述压印以后详细说明。
当信息存储器件520被输出锁定时,信息存储器件520可以被已经锁定了信息存储器件520的主器件和已经执行了压印和获得应用到输出锁定的子密钥集[IDen,LKen]的主器件解锁。
部分(c)示出了标准锁定,其中应用了包括子ID(IDen)和子锁定密钥(LKen)的子密钥集[IDen,LKen]532,它可以在多个主器件510之间被共享,这被称为组锁定。
通过从主器件510向信息存储器件520输出标准锁定命令来执行通过应用子密钥集[IDen,LKen]532、即组锁定的标准锁定。通过输出解锁命令来执行解锁。应用到组锁定的密钥集是子密钥集[IDen,LKen]532。
基本上,组锁定类似于标准锁定。应用到组锁定的密钥集是子密钥集[IDen,LKen]532。当信息存储器件520被组锁定时,子密钥集[IDen,LKen]被存储在信息存储器件520的存储器(闪存)的标准锁定密钥集存储区域541中。当执行这种类型的锁定时,应用到组锁定的子密钥集[IDen,LKen]被存储在标准锁定密钥集存储区域541中。因此,子密钥集[IDen,LKen]不从锁定信息存储器件(存储卡)520输出。
组锁定信息存储器件520只能被具有相同子密钥集[IDen,LKen]的主器件解锁。在这种情况下,这些主器件不仅包括已经组锁定信息存储器件520的主器件,而且包括已经提前获得相同的子密钥集[IDen,LKen]的主器件。
例如,通过应用相同的子密钥集[IDen,LKen]预先执行输出锁定。在执行输出锁定时,主器件执行压印,获得相同的子密钥集[IDen,LKen],并且在存储器中存储所述子密钥集[IDen,LKen]。此主器件能执行解锁。
通过应用子密钥集[IDen,LKen]在标准锁定中的锁定和解锁序列、即组锁定类似于通过应用LMK而执行的那个(见图5-8)。差别仅在于,利用压印,多个器件可以执行锁定和解锁。
以下,现在作下列说明应用子密钥集[IDen,LKen]的锁定,所述子密钥集[IDen,LKen]包括子ID(IDen)和子锁定密钥(LKen),其可在多个主器件之间被共享;经由信息存储器件(存储卡)向主器件中复制和存储(压印)子密钥集[IDen,LKen];解锁或释放被输出锁定的信息存储器件(存储卡)。
现在详细说明通过应用包括子ID(IDen)和子锁定密钥(LKen)的子密钥集[IDen,LKen]的信息存储器件(存储卡)的锁定。
如上所述,通过经由应用子密钥集[IDen,LKen]来锁定信息存储器件(存储卡),信息存储器件(存储卡)被输出锁定,其中应用到锁定的子密钥集可以经由信息存储器件(存储卡)来被复制和输出到另一个主器件。
图11示出了在基于子密钥集的锁定中在主器件和信息存储器件之间执行的处理序列。主器件和信息存储器件相互连接以便彼此传送数据。
信息存储器件包括图11所示的锁定状态标记551。每个锁定状态标记551保存一个值,它指示信息存储器件的锁定状态。在上部的NVM包括存储在图3中所示的诸如闪存的存储器220的NVM(非易失性存储器)区域中的标记。下部包括存储在控制器210中的RAM 213中的标记。通过关断信息存储器件,删除在RAM中的标记,而保存在NVM中的标记数据。当RAM中重写所述标记时,复制在NVM中的标记数据。当电源被断开然后接通时,在NVM中的标记信息被复制到RAM。SL表示标准锁定;EL表示输出锁定;1表示锁定状态;0表示解锁状态。
标准锁定是其中应用到锁定的密钥集[ID,LK]不能输出的锁定模式。输出锁定是其中可以输出应用到锁定的密钥集[ID,LK]的锁定模式。当SL=1时,信息存储器件被标准锁定。当EL=1时,信息存储器件被输出锁定。
信息存储器件(存储卡)具有数据存储区域,用于分别存储应用到标准锁定的密钥集和应用到输出锁定的密钥集,所述数据存储区域在存储器(闪存(NVM))中。
在初始状态中,如图所示,SL=0和EL=0,其中既不执行标准锁定(SL)也不执行输出锁定(EL)。即,所有的主器件可以存取信息存储器件的存储器。
在初始状态中,一个主器件向信息存储器件输出一个随机数产生命令。依据随机数产生命令的接收,信息存储器件产生诸如16字节的预定长度的随机数(Rms),并且向主器件发送所产生的随机数。信息存储器件在控制器中的诸如RAM的存储器中存储所产生的随机数(Rms)。
依据从信息存储器件的随机数(Rms)的接收,主器件使用提前存储在主器件的存储器中的子锁定密钥(LKen)作为加密密钥来执行对所接收的随机数(Rms)的加密E(LK,Rms)。各种算法可以被作为加密算法应用。例如,应用DES加密算法。
主器件使用子锁定密钥(LKen)作为加密密钥来执行对所接收的随机数(Rms)的加密E(LKen,Rms),并且向信息存储器件发送结果数据[E(LKen,Rms)]、由主器件预先存储在主器件的存储器中的作为与子锁定密钥(LKen)相关联的设置数据的子ID(IDen)、锁定命令。
依据包括IDen和E(LKen,Rms)的数据的接收,信息存储器件通过应用在信息存储器件的存储器中存储的锁定主密钥(LMK)来计算所接收的子ID(IDen)的散列值,于是计算与所接收的子ID(IDen)相关联的子锁定密钥(LKen)。即,信息存储器件计算与所接收的子ID(IDen)相关联的子锁定密钥(LKen)LK=H(LMK,ID)所接收的子ID(IDen)被存储在信息存储器件的存储器中。所接收的子ID(IDen)用于解锁中,将在后面说明这一点。
信息存储器件通过应用经由上述散列值计算而计算的子锁定密钥(LKen)来执行对存储在信息存储器件的存储器中的随机数Rms的加密E(LKen,Rms),并且检验是否这个加密的数据等于从主器件接收的加密数据E(LKen,Rms)。各种算法可以适用,只要它们与由主器件使用的算法相同。
当从主器件接收的数据E(LKen,Rms)等于由信息存储器件计算的加密数据E(LKen,Rms)时,验证命令是来自具有有效子ID(IDen)和子锁定密钥(LKen)的设置数据的主器件的锁定请求。输出锁定被执行,并且锁定完成通知被发送到主器件。当从主器件接收的数据E(LKen,Rms)不等于通过信息存储器件而计算的加密数据E(LKen,Rms)的时候,确定主器件不是具有有效子ID(IDen)和子锁定密钥(LKen)的设置数据的主器件,并且命令是来自未经授权的单元的锁定请求。不执行输出锁定,并且向主器件发送差错通知。
如果执行后述的通过应用子ID和子锁定密钥的解锁,则由信息存储器件执行的输出锁定是允许存取包括闪存的存储器(图3中的存储器220),所述存储器是用于存储诸如内容的数据的区域。应用到输出锁定的输出密钥集[IDen,LKen]被存储在信息存储器件(存储卡)的存储器(闪存(NVM))中的输出锁定密钥集存储区域中。锁定状态标记被重写。
当执行输出锁定时,如图所示,锁定状态标记被改变为EL=1,用于指示输出锁定是有效的并且被存储在NVM和RAM中。这些标记通过下列方式来被改变向在信息存储器件中的控制器中的RAM 213(见图3)设置EL=1,并且随后向NVM(包括闪存等的存储器220)复制EL=1。当在这种状态下关断电源时,删除在RAM中的标记信息,而保持在NVM中的标记信息。以后,当接通电源时,在NVM(EL=1)中的标记信息被复制到RAM,并且控制器210(见图3)根据在RAM中的标记信息(EL=1)来执行处理。
所述标记信息EL=1指示信息存储器件被输出锁定。在信息存储器件(存储卡)的NVM(包括闪存等的存储器220)的输出锁定密钥集存储区域中存储的子密钥可以通过后述的压印被输出到另一个主器件。
参见图12的流程图,现在说明输出锁定处理的步骤。在步骤S301中,用作信息存储器件的存储卡响应于从主器件接收到随机数产生请求命令而产生随机数(Rms)。在步骤S302中,主器件读取所产生的随机数。在步骤S303中,主器件除了锁定命令之外还获得已经被存储在主器件的存储器中的子ID(IDen),使用已经存储在主器件的存储器中的子锁定密钥(LKen)来加密所接收的随机数(Rms),以产生数据E(LKen,Rms),并向作为信息存储器件的存储卡发送包括IDen和E(LKen,Rms)的这些相关联的数据。
在步骤S304,存储卡向信息存储器件的存储器中写入所接收的子ID(IDen)和加密数据E(LKen,Rms)。在步骤S305中,存储卡通过应用存储在存储卡的存储器中的锁定主密钥(LMK)来计算所接收的子ID的散列值,因此计算与所接收的子ID(IDen)相关联的子锁定密钥(LKen)。即,信息存储器件计算与所接收的子ID(IDen)相关联的子锁定密钥(LKen)H(LMK,IDen)=LKen。
根据所计算的子锁定密钥(LKen),存储卡加密在步骤S301中先前产生的随机数(Rms),并且产生用作检验数据的加密数据E(LKen,Rms)。
在步骤S306,存储卡执行比较和检验在步骤S305中计算的加密数据E(LKen,Rms)的[E(LKen,Rms)=E(LK,Rms)?]和除了在步骤S303中的锁定命令之外还从主器件接收的和在步骤S304存储在存储器中的加密数据E(LKen,Rms),以便检验是否两个数据相等。
当这两个值通过比较和检验确定相等时,主器件被验证为具有用作有效正确的子ID(IDen)和子锁定密钥(LKen)的设置数据的子密钥集[IDen,LKen]的有效单元。在步骤S307,响应于所述锁定命令而执行锁定,因此如果后述的通过应用子密钥集[IDen,LKen]的解锁和释放锁定成功则允许存取存储器。上述的锁定状态标记被设置为EL=1。
当在步骤S308中通过比较和检验在步骤S306中确定E(LKen,Rms)=E(LKen,Rms)不为真时,已经发送了锁定命令的主器件被确定为没有正确子ID(IDen)和子锁定密钥(LKen)的设置数据的未经授权的单元。不执行锁定,并且向主器件发送差错通知。
通过上述处理输出被输出锁定的输出锁定信息存储器件可以由主器件通过类似于前一个(基于锁定主密钥(LMK)的处理)中所述的解锁的处理来解锁,所述主器件具有在锁定信息存储器件中使用的、相同的作为子ID(IDen)和子锁定密钥(Iken)的设置数据的子密钥集[IDen,LKen]。即,可以通过将要应用的ID和锁定密钥替换为子ID(IDen)和子锁定密钥(LKen)来解锁信息存储器件。
没有与在锁定信息存储器件中使用的子密钥集[IDen,LKen]相同的密钥集的另一个主器件不能解锁信息存储器件,即不能存取信息存储器件,除非这个主器件获得应用到锁定信息存储器件的子密钥集[IDen,LKen]。
具有用作有效主ID(IDs)和主锁定密钥(LK)的设置数据的主密钥集[IDs,LKs]的主器件可以从信息存储器件获得在输出锁定信息存储器件中存储的子密钥集[IDen,LKen]。这个主器件可以通过应用所获得的子密钥集[IDen,LKen]来解锁信息存储器件。经由信息存储器件获得子密钥集[IDen,LKen]被称为压印。
当根据子密钥集[IDen,LKen]来锁定信息存储器件时,信息存储器件被输出锁定,其中子密钥集[IDen,LKen]可以被输出到另一个主器件。
通过从输出锁定的信息存储器件获得(压印)应用到输出锁定的子密钥集[IDen,LKen],主器件变为包括多个具有相同子密钥集[IDen,LKen]的主器件的组中的一员。随后,这个主器件可以应用所获得的子密钥集[IDen,LKen]来解锁信息存储器件。以下,详细说明压印和解锁。
(压印和解锁)现在说明从输出锁定的信息存储器件由主器件压印或获得包括子锁定密钥(LKen)和子ID(IDen)的子密钥集[IDen,L′Ken],并且解锁输出锁定的信息存储器件。
图13示出了在主器件和信息存储器件之间执行的压印和解锁处理的序列。主器件和信息存储器件相互连接以便彼此传送数据。如图所示,信息存储器件的锁定状态标记被设置为EL=1,指示输出锁定是有效的并且被存储在NVM和RAM中。
主器件没有应用到信息存储器件的输出锁定的、包括子ID(IDen)和子锁定密钥(LKen)的子密钥集[IDen,LKen]。信息存储器件在输出密钥存储区域中存储子密钥集[IDen,LKen]。信息存储器件在所谓的输出锁定状态中。
主器件向信息存储器件输出随机数产生命令。依据随机数产生命令的接收,信息存储器件产生诸如16字节的预定长度的随机数(Rms),并且向主器件发送所产生的随机数(Rms)和已经在前一个输出锁定处理中被存储在存储器中的子ID(IDen),所述子ID(IDen)即应用输出锁定的子密钥集[IDen,LKen]的子ID(IDen)。信息存储器件在控制器中的诸如RAM的存储器中存储所产生的随机数(Rms)。
依据从信息存储器件的子ID(IDen)和随机数(Rms)的接收,主器件对照主器件的主ID(IDs)来检验所接收的子ID(IDen),以便检验是否两个ID相等。当两个ID相等时,可以通过应用主锁定密钥(LKs)来解锁信息存储器件,这与其中应用LMK的上述处理类似(参见图7)。
当所接收的子ID不等于主器件的主ID(IDs)时,意味着信息存储器件被另一个主器件锁定。通过压印或获得所接收的子ID(IDen)和子锁定密钥(LKen),主器件可以通过应用子密钥集[IDen,LKen]来加入与已经执行输出锁定的另一个主器件相同的组。
即,主器件执行压印来获得子ID(IDen)和子锁定密钥(LKen),并且在主器件的存储器中存储这些数据作为设置数据,即子密钥集[IDen,LKen],因此加入组。通过应用所获得的子密钥集[IDen,LKen],主器件可以解锁输出锁定的信息存储器件。当执行压印时,主器件在存储器中存储从信息存储器件接收的子ID(IDen)。
执行压印的主器件使用已经存储在主器件的存储器中的主锁定密钥(LKs)作为加密密钥来对所接收的随机数(Rms)执行加密E(LKs,RMs),并且向信息存储器件发送结果数据、主ID(IDs)和标准锁定命令。因为这个锁定处理是通过应用主锁定密钥(LKs)向已经通过应用子锁定密钥(LKen)被输出锁定的输出锁定信息存储器件增加标准锁定,因此这个锁定处理被称为过锁定。
依据从主器件的主ID(IDs)和加密数据E(LKs,Rms)的接收,信息存储器件通过应用锁定主密钥(LMK)来计算所接收的主ID(IDs)的散列值,因此计算与主ID(IDs)相关联的主锁定密钥(LKs)。即,信息存储器件计算与主ID(IDs)相关联的主锁定密钥(LKs)LK=H(LMK,IDs)信息存储器件通过应用经由上述的散列值计算而计算的主锁定密钥(LKs)来执行存储在信息存储器件的存储器中的随机数Rms的加密E(LKs,Rms),并且检验是否这个加密数据等于从主器件接收的加密数据E(LKs,Rms)。
当从主器件接收的数据E(LKs,Rms)等于由信息存储器件计算的加密数据E(LKs,Rms)时,验证所述命令是来自具有作为有效主ID(IDs)和主锁定密钥(LKs)的设置数据的主密钥集[IDs,LKs]的主器件的过锁定请求。执行过锁定,并且向主器件发送过锁定完成通知。
当从主器件接收的数据E(LKs,Rms)不等于由信息存储器件计算的加密数据E(LKs,Rms)时,确定主器件不是具有作为有效主ID(IDs)和主锁定密钥(LKs)的设置数据的主密钥集[IDs,LKs]的主器件,并且所述命令是来自未经授权的单元的过锁定请求。不执行过锁定,并且向主器件发送差错通知。
通过信息存储器件执行的过锁定是标准锁定被输出锁定的信息存储器件。在NVM和RAM中的信息存储器件的锁定状态标记如图所示被设置为EL=1,指示输出锁定是有效的。通过执行过锁定,指示标准锁定是有效的SL=1被设置到RAM。在电源被关断之前,在RAM中设置的标记信息被复制到NVM。
依据过锁定完成通知的接收,主器件连续执行压印和解锁。主器件再次向信息存储器件发送随机数产生命令。
依据随机数产生命令的接收,信息存储器件产生第二随机数(Rms2),并且向主器件发送下列包括IDs、Rms2、IDen和E(LKs,LKen)的相关联的数据,即所产生的随机数(Rms2);已经执行标准锁定的主器件的主ID(IDs);应用到输出锁定的子ID(IDen);通过下列方式产生的加密数据E(LKs,LKen)使用与主ID(IDs)相关联的主锁定密钥(LKs)来加密与子ID(IDen)相关联的子锁定密钥(LKen)。
信息存储器件在控制器中的诸如RAM的存储器中存储所产生的随机数(Rms2)。
依据从信息存储器件的包括IDs、Rms2、IDen和E(LKs,LKen)的数据的接收,主器件通过应用在主器件的存储器中存储的主锁定密钥(LKs)以获得子锁定密钥(LKen)来解密被加密数据E(LKs,LKen)。这是与先前获得的子ID(IDen)相关联的子锁定密钥(LKen)。所获得的子密钥集[IDen,LKen]被存储在存储器中。通过执行压印,主器件加入第n组。
主器件连续地解锁信息存储器件。主器件根据通过应用主锁定密钥(LKs)对从信息存储器件接收的加密数据E(LKs,LKen)解密而获得的子锁定密钥(LKen)来加密从信息存储器件接收的随机数(Rms2),并且产生加密数据E(LKen,Rms2)。主器件向信息存储器件发送加密数据E(LKen,Rms2)和解锁命令。
依据从主器件的解锁命令和加密数据E(LKen,Rms2)的接收,信息存储器件通过应用锁定主密钥(LKS)来计算已经被存储在信息存储器件的存储器中的子ID(IDen)的散列值,因此计算与子ID(IDen)相关联的子锁定密钥(LKen)。即,信息存储器件计算与子ID(IDen)相关联的子锁定密钥(LKen)LKen=H(LMK,IDen)信息存储器件通过应用经由上述散列值计算而计算的子锁定密钥(LKen)来执行对存储在信息存储器件的存储器中的随机数Rms2的加密E(LKen,Rms2),并且检验是否这个加密数据等于从主器件接收的加密数据E(LKen,Rms2)。
当从主器件接收的数据E(LKen,Rms2)等于由信息存储器件计算的加密数据E(LKen,Rms2)时,验证所述命令是来自具有有效子ID(IDen)和子锁定密钥(IKen)的设置数据的主器件的锁定释放请求,即,解锁请求。解锁被执行,并且解锁完成通知被发送到主器件。
当从主器件接收的数据E(LKen,Rms2)不等于由信息存储器件计算的加密数据(LKen,Rms2)时,确定主器件不是具有作为有效子ID(IDen)和子锁定密钥(LKen)的设置数据的子密钥集[IDen,LKen]的主器件,并且所述命令是来自未经授权的单元的解锁请求。不执行解锁,并且向主器件发送差错通知。
通过解锁信息存储器件,锁定状态标记被从EL=1改变为EL=0。用作输出锁定的信息存储器件的过锁定的标准锁定也被释放,并且SL=1被改变为SL=0。即,按照输出锁定的释放来释放标准锁定。
锁定状态标记的改变顺序如下。首先,重写在控制器中的RAM中存储的标记。其后,在例如关断电源之前,在RAM中的标记信息被适当地复制到NVM。当电源再次接通时,在NVM中的标记信息被复制到RAM中。控制器根据在RAM中的标记信息来执行存取控制。
参见图14和15的流程图,现在说明压印或获得来自输出锁定的信息存储器件的子密钥集[IDen,LKen]和解锁输出锁定的信息存储器件的步骤,其中所述子密钥集[IDen,LKen]包括子锁定密钥(LKen)和子ID(IDen)。
在步骤S401中,用作信息存储器件的存储卡响应于从主器件接收的随机数产生请求命令而产生随机数(Rms)。在步骤S402,所产生的随机数和子ID(IDen)被主器件读取,所述子ID(IDen)被从已经执行输出锁定的主器件向信息存储器件发送,并且它已经被存储在信息存储器件的存储器的输出锁定密钥集存储区域中。此时,主器件获得子密钥集[IDen,LKen]的子ID(IDen)。
因为主器件确定从存储卡读取的子ID(IDen)不等于主器件的主ID(IDs),因此主器件确定信息存储器件不是被标准锁定,而是被输出锁定。在步骤S403,主器件除了标准锁定命令(用作过锁定)之外,还向作为信息存储器件的存储卡发送加密数据E(LKs,Rms)和主器件的主ID(IDs),所述加密数据E(LKs,Rms)是通过使用主器件的主锁定密钥(LKs)加密所接收的随机数(Rms)而产生的。
在步骤S404,信息存储器件(存储卡)向在信息存储器件中的存储器写入从主器件接收的主ID(IDs)和加密数据E(LKs,Rms)。在步骤S405,存储卡通过应用存储在存储卡的存储器中的锁定主密钥(LMK)来计算所接收的主ID(IDs)的散列值,因此计算与主ID(IDs)相关联的主锁定密钥(LKs)。即,存储卡计算与主ID(IDs)相关联的主锁定密钥(LKs)H(LMK,IDs)=LKs。
根据所计算的主锁定密钥(LKs),存储卡加密先前在步骤S401中产生的随机数(Rms),并且产生用作检验数据的加密数据E(LKs,Rms)。
在步骤S406中,存储卡执行比较和检验在步骤S405计算的加密数据E(LKs,Rms)的[E(LKs,Rms)=E(LKs,Rms)?]和在步骤S403除了标准锁定命令之外还从主器件接收的并且在步骤S404存储在存储器中的加密数据E(LKs,Rms),以便检验是否两个数据相等。
当通过比较和检验确定这两个值相等时,主器件被验证为有效单元,它具有主密钥集[IDs,LKs],所述主密钥集[IDs,LKs]用作有效、正确主ID(IDs)和主锁定密钥(LKs)的设置数据。在步骤S407,执行响应于标准锁定命令的标准锁定。这对应于过锁定,其中输出锁定的信息存储器件被标准锁定。在RAM中的信息存储器件的锁定状态标记被设置为EL=1和SL=1,指示输出锁定和标准锁定都是有效的。
当通过比较和检验在步骤S406确定两个值不相等时,在步骤S408,确定已经发送了标准锁定命令的主器件不是具有主密钥集[IDs,LKs]的主器件,所述主密钥集[IDs,LKs]用作有效主ID(IDs)和主锁定密钥(LKs)的设置数据。不执行过锁定,并且向主器件发送差错通知。
当在步骤S407中执行用作过锁定的标准锁定时,处理进行到图15的步骤S501,其中要执行压印和解锁。
依据过锁定完成通知的接收,主器件再次向信息存储器件发送随机数产生命令。依据随机数产生命令的接收,在步骤S501,信息存储器件产生第二随机数(Rms2)。在步骤S502中,主器件从信息存储器件读取下列相关联的数据[IDs,Rms2,IDen和E(LKs,LKen)]所产生的随机数(Rms2);已经执行了标准锁定的主器件的主ID(IDs);
子ID(IDen);通过使用与主ID(IDs)相关联的设置数据的主锁定密钥(LKs)加密与子ID(IDen)相关联的设置数据的子锁定密钥(LKen)而产生的加密数据E(LKs,LKen)。
在步骤S503中,主器件向信息存储器件发送锁定释放请求或解锁命令。主器件除了加密数据E(LKen,Rms2)之外还发送这个解锁命令。
通过下列步骤来产生加密数据E(LKen,Rms2)。在步骤S502中,主器件从信息存储器件读取数据,其中包括IDs、Rms2、IDen和E(LKs,LKen)。主器件通过应用在主器件的存储器中存储的主锁定密钥(LKs)以获得子锁定密钥(LKen)来解密所述加密数据E(LKs,LKen)。这是与先前获得的子ID(IDen)相关联的子锁定密钥(LKen)。根据所述子锁定密钥(LKen),主器件加密从信息存储器件接收的随机数(Rms2)以产生加密数据E(LKen,Rms2)。
主器件在存储器中存储所获得的子密钥集[IDen,LKen],并且因此完成压印。换句话说,主器件执行压印以加入第n组。
在步骤S504中,已经从主器件接收到加密数据E(LKen,Rms2)的信息存储器件向存储器写入所接收的数据E(LKen,Rms2)。在步骤S505中,信息存储器件计算检验数据。
通过下列步骤来计算检验数据。通过应用锁定主密钥(LMK)来对于在信息存储器件的存储器中存储的子ID(IDen)计算散列值,因此计算与子ID相关联的子锁定密钥(LKen)。即,计算与子ID(IDen)相关联的子锁定密钥(LKen)LKen=H(LMK,IDen)。
信息存储器件通过应用经由上述散列值计算而计算的子锁定密钥(LKen)来执行随机数Rms2的加密E(LKen,Rms2),因此产生检验数据,所述随机数Rms2在步骤S501中被产生,并且被存储在存储器中。
在步骤S506中,信息存储器件比较检验数据E(LKen,Rms2)与从主器件接收的加密数据E(LKen,Rms2)以检验是否它们相同。
当从主器件接收的数据E(LKen,Rms2)等于由信息存储器件计算的加密数据E(LKen,Rms2)时,确定所述命令是来自具有子密钥集[IDen,LKen]的主器件的锁定释放请求,即解锁请求,所述子密钥集[IDen,LKen]用作有效子ID(IDen)和子锁定密钥(LKen)的设置数据。在步骤S507中,执行解锁,并且向主器件发送解锁完成通知。当两个数据不相等时,确定主器件不是具有有效子密钥集[IDen,LKen]的主器件,并且所述命令是来自未经授权的单元的解锁请求。不执行解锁。在步骤S508,向主器件发送差错通知。
按照处理的这个示例,多个主器件具有共同的子密钥集[IDen,LKen],并且可以锁定和解锁信息存储器件(存储卡)。当信息存储器件被输出锁定时,子密钥集[IDen,LKen]可以经由信息存储器件被复制和存储在另一个主器件中。因此,可以以灵活的方式来形成一个组。只要主器件具有有效主ID(IDs)和主锁定密钥(LKs)并且主器件可以执行过锁定,则可以执行在主器件中的子密钥集[IDen,LKen]的复制或压印。这防止向未经授权的单元复制(压印)子密钥集[IDen,LKen]。
如参照图10(c)所述,也可以实现通过应用子密钥集[IDen,LKen](=组锁定)的标准锁定。当执行组锁定时,子密钥集[IDen,LKen]被存储在信息存储器件的标准锁定密钥存储区域中(见图10),并且不能被复制或输出到另一个主器件。换句话说,仅仅已经获得了相同的子密钥集[IDen,LKen]的主器件可以通过执行不涉及压印的正常解锁来存取信息存储器件。
在上述的[通过单位组的锁定]中,当解锁输出锁定的信息存储器件时,所有的锁定状态标记被复位,即在NVM和RAM中设置指示输出锁定被释放的EL=0和指示标准锁定被释放的SL=0。在设置EL=0和SL=0时,当电源被关闭然后接通时,因为已经在NVM中设置了EL=0和SL=0,因此也在控制器中的RAM中设置SL=0和EL=0。所有的锁定状态被释放,并且每个主器件可以不经验证地存取存储器。
当这样的解锁信息存储器件被偷盗或丢失并且落入未经授权的第三方用户的错误的手中时,这个未经授权的第三方用户可以不经验证地存取存储器。当存储秘密信息时,这样的情况是不利的。
考虑到上述问题,现在说明下列示例。即使当输出锁定的信息存储器件被主器件解锁然后被关断时,信息存储器件保持输出锁定。当电源再次被接通时,只要释放输出锁定,就允许存储器存取信息存储器件。
在这个示例中,象参照图9所述的[通过单位组的锁定]的在前的说明中,在主器件的诸如ROM的存储器中存储主密钥集[IDs,LKs],其中包括主ID(IDs)和主锁定密钥(LKs)。可以在主器件的诸如ROM的存储器中存储至少一个子密钥集[IDen,LKen],它用作可以被应用到输出锁定的子ID和子锁定密钥的设置数据。锁定主密钥(LMK)被存储在信息存储器件的控制器中诸如ROM的存储器中。在信息存储器件中存储的锁定主密钥(LMK)和在主器件中存储的ID(包括IDs和IDen)和锁定密钥(LK(包括LKs和LKen))具有下列关系LK=H(LMK,ID)以类似于在前述的[基于锁定主密钥(LMK)的处理]中所述的序列来执行基于主ID(IDs)和主锁定密钥(LKs)的锁定和解锁。以类似于在前述的[通过单位组的锁定]中所述的序列来执行基于子ID(IDen)和子锁定密钥(LKen)的锁定。现在说明在这个处理示例中的压印和解锁中的锁定状态标记的保存。
(在压印和解锁中保存锁定状态标记)参见图16等,现在说明由主器件从输出锁定的信息存储器件压印或获得包括子锁定密钥(LKen)和子ID(IDen)的子密钥集[IDen,LKen]、解锁输出锁定的信息存储器件和由信息存储器件保存锁定状态标记。
图16所示的序列图基本上与参照图13所述的相同,图13示出了压印和解锁输出锁定的信息存储器件的处理,这是在主器件和信息存储器件之间进行的。处理的步骤也相同。
图16所示的时序图与图13所示的不同在信息存储器件在时序图的最后步骤中发送和解锁完成通知后在NVM中设置标记。具体上,在前述的[通过单位组的锁定]中所述的处理中,当解锁输出锁定信息存储器件时,在NVM和RAM中设置指示释放输出锁定的EL=0和指示释放标准锁定的SL=0。相反,按照这个处理,在NVM中设置EL=1和SL=1,用于指示信息存储器件被输出锁定和标准锁定。
参见图17,现在详细说明在NVM中设置锁定状态标记的处理。图17所示的流程是在图16(类似于图13)所示的序列图中信息存储器件在接收到锁定释放请求(解锁命令)后执行的处理的步骤的流程。
在步骤S601,信息存储器件(存储卡)接收锁定释放请求(解锁命令)。信息存储器件确定是否执行解锁命令。在步骤S602中,信息存储器件对照由信息存储器件产生的加密数据E(LKen,Rms2)来校核除了解锁命令之外还检验从主器件接收的加密数据E(LKen,Rms2)。这类似于在[通过单元组的锁定]中所述的。
当在步骤S607中从主器件接收的数据E(LKen,Rms2)不等于由信息存储器件计算的加密数据E(LKen,Rms2)时,向主器件发送差错通知,结束处理。
相反,当从主器件接收的数据E(LKen,Rms2)等于由信息存储器件计算的加密数据E(LKen,Rms2)时,确定命令是来自具有有效子密钥集[IDen,LKen]的主器件的解锁请求。在步骤S603中,执行解锁,并且向主器件发送解锁完成通知。
在步骤S604中,信息存储器件(存储卡)向NVM复制在控制器中的RAM中存储的锁定状态标记(SL=1和EL=1),并且将在NVM中的锁定状态标记设置为SL=1和EL=1,其中SL=1指示信息存储器件被标准锁定,EL=1指示信息存储器件被输出锁定。
在步骤S604中完成复制标记后,在步骤S605中,在控制器中的RAM中的锁定状态标记(SL=1和EL=1)被复位,即在RAM中的锁定状态标记被设置为SL=0和EL=0,其中SL=0,指示信息存储器件不被标准锁定,EL=0指示信息存储器件不被输出锁定。
在这种状态中,即,当在RAM中的锁定状态标记被设置为SL=0和EL=0时,存储器存取变得自由可获得,即已经解锁了信息存储器件的主器件变得可以获得对于在信息存储器件中的存储器(图3的存储器220)的存取。
当信息存储器件(存储卡)被从主器件取出并且停止向信息存储器件(存储卡)供电和当电源再次接通时,在NVM中设置的锁定状态标记信息(SL=1和EL=1)被装到在控制器中的RAM中。所述控制器根据在RAM中设置的锁定状态标记(SL=1和EL=1)来执行处理。参见图18所示的处理流程,现在说明在信息存储器件再次被接通后执行的处理。
图18所示的处理流程示出了当信息存储器件被关断和然后接通时执行的处理。
在步骤S701,信息存储器件(存储卡)被置于主器件中,并且从电源关断状态改变到接通状态。在步骤S702,信息存储器件将存储在NVM中的锁定状态标记(SL和EL)复制到控制器中的RAM中。控制器根据在RAM中的状态标记来执行控制。
在步骤S703中,信息存储器件从连接的主器件接收存储器存取请求或解锁命令。信息存储器件的控制器检索在RAM中的锁定状态标记。
当在步骤S704中确定在RAM中的状态标记是EL=1时,在步骤S705,执行解锁(见图13-15)。当主器件没有应用到信息存储器件的输出锁定的子密钥集[IDen,LKen]时,主器件必须执行压印。当通过参照图13-15所述的验证确定所述命令是来自有效主器件的解锁请求时,执行解锁(步骤S708中的是)。在步骤S709中,存储器存取被允许。当通过验证确定命令是来自未经授权的主器件的解锁请求时,不执行解锁(步骤S708中的否),并且发送差错通知(S710)。
当在步骤S704确定在RAM中的状态标记是EL=0时,在步骤S706中,确定是否在RAM中的状态标记是SL=1。当确定在RAM中的状态标记是SL=1时,在步骤S707中,释放标准锁定(见图7和8)。当通过参照图7和8所述的验证确定命令是来自有效主器件的解锁请求时,执行解锁(步骤S708中的是)。在步骤S709中,允许存储器存取。当通过验证确定所述命令是来自未经授权的主器件的解锁请求时,不执行解锁(在步骤S708中的否)。在步骤S709,允许存储器存取。当通过验证确定所述命令是来自未经授权的主器件的命令时,不执行解锁(在步骤S708中的否),并且发送差错通知(S710)。
当在步骤S704中确定在RAM中的状态标记是EL=0,并且当在步骤S706中确定在RAM中的状态标记是SL=0时,不锁定信息存储器件。在步骤S709中,允许存储器存取。
如参照图16和17中所述,当输出锁定信息存储器件被主器件解锁,然后信息存储器件被关断时,在NVM中的锁定状态标记被设置为SL=1和EL=1。在随后的电源启动时,在RAM中的锁定状态标记被设置为SL=1和EL=1。因此,在图18的处理流程的步骤S704中的确定(EL=1?)为是。执行在步骤S705中的处理。即,只要解锁输出锁定信息存储器件则允许存储器存取(见图13-15)。
如上所述,按照处理的这个示例,锁定状态标记被存储在NVM中,所述锁定状态标记包括状态信息,根据状态信息来确定是否在解锁之前、信息存储器件被输出锁定(EL)或标准锁定,在输出锁定中,可应用到锁定或解锁的密钥集可以被输出,在标准锁定中,可应用到锁定或解锁的密钥集不能被输出。当信息存储器件被关闭然后被接通时,根据在NVM中存储的标记来忠实地再现在解锁之前的锁定状态。
按照处理的示例,例如,即使当输出锁定的信息存储器件被主器件解锁时,保存输出锁定的状态。当信息存储器件被关断然后被接通时,只要执行解锁则允许存储器存取。只有当具有有效主密钥集[IDs,LKs]的主器件执行包括上述的过锁定的预定处理时,才能执行解锁。来自未经授权的单元的存取被防止。
现在说明下述处理的一个示例其中通过信息存储器件的控制器来监控主器件从信息存储器件(存储卡)读取数据,并且响应于触发、即预定数据区域(例如具体的簇)的读取来执行锁定。
通过例如按照所存储的数据而产生的重放管理文件(PBLIST)来管理信息存储器件(存储卡)的存储器(图2的存储器220)中存储的数据的读取。按照重放管理文件,控制器从存储器(图2的存储器220)读取数据,并且向主器件输出数据。
当读取数据时,信息存储器件的控制器可以监控所读取的数据。例如,可以以诸如用作被读取的数据的单位的簇的预定单位来监控以ATRAC3压缩的音频数据。
如图19所示,以ATRAC3压缩的音频数据包括多个部分,每个部分包括多个簇,每个簇包括多个作为最小数据单位的SU(声音单元)。每个SU(声音单位)包括几百字节的数据,其通过将以采样频率44.1kHz获得的1024个采样(1024×16比特×2信道)的音频数据压缩为大致1/10而产生。每个簇包括由多个SU(例如42个SU)构成的数据。由42个SU组成的一个簇表示持续大约一秒的声音。
每个簇被提供了唯一的逻辑号,并且被这个逻辑号管理。信息存储器件的控制器210(见图3)根据逻辑号检验是否读取了具体的簇。例如,当输出数据是音乐内容时,对应于音乐内容的引入或抑制的至少一个簇的逻辑号被提取作为与内容相关联的锁定相关联的簇。所提取的簇逻辑号被设置为与内容相关联的登记信息,并且被存储在存储内容的存储器(闪存)中。
在读取内容时,登记信息被暂时存储在信息存储器件的控制器的存储器(RAM)中。控制器对照锁定相关联的簇来检验所读取内容的每个簇。当所读取内容的簇对应于锁定相关联的簇的逻辑号时,执行锁定。可以在不同的时间执行锁定,例如开始去读取锁定相关联的簇的时间、结束读取锁定相关联的簇的时间或结束读取包括锁定相关联的簇的整体内容的时间。执行按照设置的检测,并且根据控制设置的检测来执行锁定。当执行锁定时,只要执行解锁则必须执行重新读取。
参见图20,现在说明只要从存储器220(见图3)读取具体的数据区域(例如具体的簇)在由信息存储器件的控制器210执行的锁定处理。
虽然图20的处理流程仅仅包括标准锁定(SL)以便简化说明,但是在输出锁定(EL)的情况下可以执行类似的处理。
在步骤S801,信息存储器件被接通。在步骤S802,在NVM中存储的锁定状态标记被复制和存储在控制器210的RAM 213中(见图3)。控制器按照在RAM 213中的状态标记来执行控制。
在步骤S803中,确定是否信息存储器件被标准锁定(SL=1)。当SL=1时,在步骤S804中,信息存储器件被解锁。解锁例如类似于参照图7和8所述的解锁。
当通过验证由信息存储器件确定主器件具有有效的主ID和主锁定密钥时并且当解锁成功时(在S805中的是),处理进行到步骤S806。当解锁失败时,在步骤S810,向主器件发送差错通知,并且结束处理。
如果解锁成功,则步骤S806,更新在RAM和NVM中的锁定状态标记,即锁定状态标记被设置为指示释放锁定的SL=0。
当在步骤S807中主器件开始读取数据时,信息存储器件的控制器监控是否读取预定的锁定相关联的簇。当检测到从锁定相关联的簇读取数据时,在步骤S808,在控制器213的RAM213中的锁定状态标记(见图3)被设置为锁定状态(SL=1)。在步骤S809,在NVM中的锁定状态标记被设置为锁定状态(SL=1)。
通过读取预定的簇,锁定信息存储器件。当其后执行重新读取时,必须执行解锁。只能由具有与在锁定信息存储器件中使用的那些相同的主ID(IDs)和相同的主锁定密钥(LKs)的主器件执行解锁。这防止无限制地使用锁定的信息存储器件(存储卡)。
当信息存储器件被关闭时锁定信息可以被设置为释放。或者,如上所述,即使当关断电源时,锁定状态标记被保存在NVM中。当再次接通电源时,在NVM中的锁定状态标记被复制到控制器中的RAM中,因此在关断电源之前保持和再现锁定状态。
按照所述处理的这个示例,当在解锁之后读取数据时,所谓的一次读取存取控制被实现,其中仅仅允许读取一次。
在图20的处理的示例中,仅仅示出了标准的锁定。但是,可以在输出锁定的情况下执行类似的处理。即,信息存储器件响应于触发、即读取预定数据区域而可能被输出锁定。
现在说明在可以处于各种锁定状态的用于存取信息存储器件的主器件中,用于检测信息存储器件的锁定状态的表示结构和处理。
图21示出了具有锁定状态表示指示器和各种处理开关的锁定/解锁单元的结构的一个示例。锁定/解锁单元720具有一个接口,通过这个接口可以与用作信息存储器件的存储卡710传送数据,锁定/解锁单元720具有下列锁定状态指示器解锁指示器721,用于指示解锁状态;锁定指示器722,用于指示锁定状态;E锁定指示器723,用于指示输出锁定的状态;ERR指示器724,用于指示差错通知。
各种处理请求开关包括解锁开关731,用作解锁请求开关;P锁定开关732,用作使用主密钥集来请求标准锁定的开关;G-锁定开关733,用作使用子密钥集来请求标准锁定的(组锁定)的开关;E锁定开关734,用作使用子密钥集来请求输出锁定的开关。
图21(b)中所示的锁定/解锁单元的示例除了上述的开关之外还包括压印开关735,用作专有地请求压印的开关,所述压印是在主器件中存储子密钥集[IDen,LKen],所述子密钥集[IDen,LKen]包括子ID(IDen)和子锁定密钥(LKen),它们被存储在输出锁定信息存储器件中。
在图21中示出了锁定/解锁单元的指示器和处理请求开关。如上所述,主器件包括各种单元,其中包括信息处理装置,诸如PC、PDA等;数字摄像机,诸如DSC;移动通信终端。这些单元的每个可以经由其输入装置向信息存储器件(存储卡)发送命令。锁定状态可以被显示在这些单元的每个LCD等上,或者可以通过声音、警告等被报告。
参见图22等,现在说明由主器件表示锁定状态和从主器件向信息存储器件(存储卡)发送命令的处理。
图22示出了说明当例如信息存储器件(存储卡)连接到主器件时读取锁定状态的处理的流程。可以响应于从用户输入的命令来执行锁定状态读取处理,或者当信息存储器件(存储卡)被连接到主器件时可以自动执行锁定状态读取处理。
在步骤S901,从信息存储器件读取锁定状态。这个状态信息是基于在信息存储器件的控制器210的RAM 213中存储的锁定状态标记(见图3)。在步骤S902,根据所读取的锁定状态信息,与锁定状态相关联的指示器721-724之一被接通。换句话说,当信息存储器件被标准锁定或组锁定时,显示(接通)用于指示锁定状态的被锁定指示器722。当信息存储器件被输出锁定时,显示(接通)指示输出锁定状态的E锁定指示器723。当不锁定信息存储器件时,显示(接通)用于指示解锁状态的被解锁指示器721。
参见图23,现在说明基于锁定请求和锁定的执行来显示指示器的处理。根据来自图21所示的处理请求开关732-734之一的输入来执行锁定。
通过来自S锁定开关732的输入来做出对通过应用包括主ID(IDs)和主锁定密钥(LKs)的主密钥集[IDs,LKs]的标准锁定的请求。通过来自E锁定开关734的输入来做出对通过应用包括子ID(IDen)和子锁定密钥(LKen)的子密钥集[IDen,LKen]的输出锁定的请求。通过来自G锁定开关733的输入来做出对通过应用子密钥集[IDen,LKen],即组锁定的的标准锁定的请求。
当接收到这些输入的任何一个时,在步骤S911中,检测信息存储器件(存储卡)的锁定状态。当信息存储器件未被锁定时,在步骤S914,显示差错(ERR)指示器。当解锁信息存储器件时,在步骤S912,执行标准锁定、输出锁定和组锁定中的任何一个。在完成锁定后,显示主器件的相关联的锁定指示器、即指示锁定状态的被锁定指示器722和指示输出锁定状态的E锁定指示器723。
参见图24,现在说明当解锁信息存储器件和显示指示器时的主器件的操作。
通过按下图21的解锁请求开关731来执行解锁。通过按下解锁请求开关,检测信息存储器件的锁定状态。根据在控制器中的RAM中的上述锁定状态标记来执行状态检测。当信息存储器件被解锁时(在步骤S921中的否),在步骤S923,显示差错(ERR)指示器724。
在其中读取锁定状态的步骤S922中,确定是否信息存储器件被输出锁定或标准锁定。根据上述的锁定状态标记,确定是否信息存储器件被输出锁定或标准锁定。根据确定结果,图21所示的与锁定状态相关联的指示器721-724之一被接通。
当信息存储器件被输出锁定(步骤S924中的是),执行已经参照图16-18所述的压印和解锁。即,在步骤S925中,通过应用主ID(IDs)和主锁定密钥(LKs)来执行过锁定。在步骤S926,执行子ID(IDen)和子锁定密钥(LKen)的压印(接收和存储)。在步骤S927,通过应用子ID(IDen)和子锁定密钥(LKen)来执行解锁。这些处理已经参照图16-18而详细地被说明。因此,释放锁定。在步骤S928,显示解锁指示器721。
当在步骤S924中确定锁定状态不是输出锁定时,即锁定状态指示标准锁定时,在步骤S929,确定是否信息存储器件被标准锁定。当信息存储器件被标准锁定时,在步骤S930,执行解锁。应用到解锁的密钥集是主密钥集[IDs,LKs],或在组锁定的情况下是子密钥集[IDen,IKen]。当释放锁定时,在步骤S928,显示解锁指示器721。
当在步骤S924确定锁定状态不是输出锁定时,并且当在步骤S929确定信息存储器件不被标准锁定时,在步骤S931,显示差错(ERR)指示器724。
虽然参照具体的实施例详细说明了本发明,但是应当清楚,在不脱离本发明的范围的情况下,本领域的技术人员可以进行各种改变和替换。换句话说,已经利用示例说明了本发明,本发明不应当被以限定的含义来解释。本发明的范围要由在开始时所述的权利要求来唯一地确定。
可以通过硬件或软件或两者来执行在说明书中所述的一系列处理。当通过软件执行处理时,记录处理序列的程序被安装在专用的硬件中包括的内置计算机中的存储器上并且被执行。或者,所述程序可以被安装在能够执行各种处理的通用计算机上并且被执行。
例如,所述程序可以被提前记录在用作记录介质的硬盘或ROM(只读存储器)上。或者,所述程序可以被暂时或永久地存储(记录)在可移动记录介质上,诸如软盘、CD-ROM(紧密盘只读存储器)、MO(磁光)盘、DVD(数字多用途盘)、磁盘或半导体存储器。这样的可移动记录介质可以被提供作为所谓的封装软件。
除了从上述的可移动记录介质在计算机上安装程序,所述程序可以无线地从下载站点向计算机传送或经由诸如因特网的网络向计算机有线传送。所述计算机接收被传送的程序,并且在诸如硬盘的内置记录介质上安装程序。
在说明书中所述的各种处理可以不仅基于说明书以时间序列模式被执行,而且依赖于执行处理的装置的全部或必要性而以并行或独立的方式被执行。在本说明书中的词汇“系统”指的是多个装置的逻辑组,它们不必要被包括在单个外壳中。
产业上的应用如上所述,按照本发明的结构,诸如存储卡的信息存储器件从诸如PC的信息处理装置接收用于锁定存储器的锁定请求命令或用于解锁存储器的解锁请求命令。在响应于所接收的命令执行处理时,信息存储器件根据与已经输出命令的信息处理装置相关联地定义的标识符(ID)来验证是否信息处理装置具有包括标识符(ID)的有效密钥集。如果验证成功,则所述信息存储器件根据所述命令来执行处理。因此,在安全的管理下执行存储器存取控制。
按照本发明的结构,在信息处理装置中存储了一个密钥集[ID,LK],其中包括信息存储器件的唯一ID(ID)和与所述唯一ID相关联的锁定密钥(LK)。同时,信息存储器件存储锁定主密钥(LMK),它可用于计算锁定密钥(LK),所述锁定密钥是基于关系式LK=H(LMK,ID)的散列值,所述散列值是通过应用锁定主密钥(LMK)来对于ID计算的。信息存储器件根据通过应用锁定主密钥(LMK)计算散列值而获得的锁定密钥(LK)来验证从信息处理装置输入的、对于信息处理装置唯一的密钥集。根据单个锁定主密钥(LMK)来执行对于多个不同锁定密钥(LK)的验证。
按照本发明的结构,依据信息处理装置的验证,信息存储器件产生一个随机数,并且从信息处理装置接收加密的数据[E(Lk,Rms)],所述加密的数据是根据由信息处理装置持有的锁定密钥(LK)加密所述随机数(Rms)而产生的。信息存储器件对照根据通过计算散列值获得的锁定密钥(LK)而计算的加密的数据[E(Lk,Rms)]来检验所接收的加密数据。每次检验加密数据时,通过应用不同的随机数来执行验证。这防止了使用过去检验的登录数据来未经授权地存取。
权利要求
1.一种信息存储器件,包括存储器,用于存储数据;控制器,用于执行对存储器的存取控制,其中所述控制器从信息处理装置接收用于锁定存储器的锁定请求命令或用于解锁存储器的解锁请求命令,并且响应于所接收的命令执行处理,所述控制器根据与已经输出命令的信息处理装置相关联地定义的标识符(ID)来验证是否信息处理装置具有包括标识符(ID)的有效密钥集,并且如果验证成功则根据所述命令来执行处理。
2.如权利要求1所述的信息存储器件,其中,由信息处理装置持有的密钥集是密钥集[ID,LK],其中包括信息处理装置的唯一ID(ID)和与所述唯一ID相关联的锁定密钥(LK),信息存储器件具有锁定主密钥(LMK),它可用于计算锁定密钥(LK),所述锁定密钥是基于关系式LK=H(LMK,ID)的散列值,所述散列值是通过应用锁定主密钥(LMK)来对于ID计算的,控制器根据通过应用锁定主密钥(LMK)计算散列值而获得的锁定密钥(LK)来验证从信息处理装置输入的、对于信息处理装置唯一的密钥集。
3.如权利要求1所述的信息存储器件,其中控制器产生一个随机数,并且从信息处理装置接收加密的数据[E(Lk,Rms)],所述加密的数据是根据由信息处理装置持有的锁定密钥(LK)加密所述随机数(Rms)而产生的,控制器执行验证,包括对照根据通过计算散列值获得的锁定密钥(LK)而计算的加密的数据[E(Lk,Rms)]来检验所接收的加密数据。
4.如权利要求1所述的信息存储器件,其中当从信息处理装置接收的命令是锁定命令时,控制器从信息处理装置接收标识符(ID),控制器根据所接收的标识符(ID)来执行验证。
5.如权利要求1所述的信息存储器件,其中当从信息处理装置接收的命令是解锁命令时,控制器从存储器读取标识符(ID),并且根据所读取的标识符(ID)执行验证,其中所述标识符(ID)是当锁定存储器时从信息处理装置接收并且被存储在存储器中的。
6.一种存储器存取控制系统,包括信息存储器件,所述信息存储器件包括存储器,用于存储数据;控制器,用于对存储器执行存取控制,所述存储器存取控制系统还包括信息处理装置,所述信息处理装置包括与信息存储器件的接口,并且经由所述接口存取在信息存储器件中的存储器,其中信息处理装置在存储装置中存储密钥集,包括标识符(ID)和锁定密钥(LK),信息存储器件的控制器从信息处理装置接收用于锁定存储器的锁定请求命令或用于解锁存储器的解锁请求命令,并且响应于所接收的命令来执行处理,信息存储器件的控制器根据与已经输入命令的信息处理装置相关联地定义的标识符(ID)来验证是否信息处理装置具有包括标识符(ID)的有效密钥集,并且如果验证成功则根据所述命令来执行处理。
7.如权利要求6所述的存储器存取控制系统,其中由信息处理装置持有的密钥集是密钥集[ID,LK],其中包括信息处理装置的唯一ID(ID)和与所述唯一ID相关联的锁定密钥(LK),信息存储器件具有锁定主密钥(LMK),它可用于计算锁定密钥(LK),所述锁定密钥是基于关系式LK=H(LMK,ID)的散列值,所述散列值是通过应用锁定主密钥(LMK)来对于ID计算的,信息存储器件的控制器根据通过应用锁定主密钥(LMK)计算散列值而获得的锁定密钥(LK)来验证从信息处理装置输入的、对于信息处理装置唯一的密钥集。
8.如权利要求7所述的存储器存取控制系统,其中信息存储器件的控制器产生一个随机数,并且从信息处理装置接收加密的数据[E(Lk,Rms)],所述加密的数据是根据由信息处理装置持有的锁定密钥(LK)加密所述随机数(Rms)而产生的,信息存储器件的控制器执行验证,包括对照根据通过计算散列值获得的锁定密钥(LK)而计算的加密的数据[E(Lk,Rms)]来检验所接收的加密数据。
9.如权利要求6所述的存储器存取控制系统,其中当从信息处理装置接收的命令是锁定命令时,信息存储器件的控制器从信息处理装置接收标识符(ID),信息存储器件的控制器根据所接收的标识符(ID)来执行验证。
10.如权利要求6所述的存储器存取控制系统,其中当从信息处理装置接收的命令是解锁命令时,信息存储器件的控制器从存储器读取标识符(ID),并且根据所读取的标识符(ID)执行验证,其中所述标识符(ID)是当锁定存储器时从信息处理装置接收并且被存储在存储器中的。
11.一种存储器存取控制方法,用于信息存储器件,所述信息存储器件包括用于存储数据的存储器和用于对存储器执行存取控制的控制器,所述方法包括从信息处理装置接收用于锁定存储器的锁定请求命令或用于解锁存储器的解锁请求命令的步骤;验证步骤,根据与已经输出命令的信息处理装置相关联地定义的标识符(ID)来验证是否信息处理装置具有包括标识符(ID)的有效密钥集;如果验证成功则根据所述命令来执行处理的步骤。
12.如权利要求11所述的存储器存取控制方法,其中由信息处理装置持有的密钥集是密钥集[ID,LK],其中包括信息处理装置的唯一ID(ID)和与所述唯一ID相关联的锁定密钥(LK),信息存储器件具有锁定主密钥(LMK),它可用于计算锁定密钥(LK),所述锁定密钥是基于关系式LK=H(LMK,ID)的散列值,所述散列值是通过应用锁定主密钥(LMK)来对于ID计算的,验证步骤包括根据通过应用锁定主密钥(LMK)计算散列值而获得的锁定密钥(LK)来验证从信息处理装置输入的、对于信息处理装置唯一的密钥集的步骤。
13.如权利要求12所述的存储器存取控制方法,其中所述验证步骤包括步骤产生一个随机数,并且从信息处理装置接收加密的数据[E(Lk,Rms)],所述加密的数据是根据由信息处理装置持有的锁定密钥(LK)加密所述随机数(Rms)而产生的,执行验证,包括对照根据通过计算散列值获得的锁定密钥(LK)而计算的加密的数据[E(Lk,Rms)]来检验所接收的加密数据。
14.如权利要求11所述的存储器存取控制方法,其中所述验证步骤包括步骤当从信息处理装置接收的命令是锁定命令时,从信息处理装置接收标识符(ID),并且根据所接收的标识符(ID)来执行验证。
15.如权利要求11所述的存储器存取控制方法,其中所述验证步骤包括步骤当从信息处理装置接收的命令是解锁命令时,从存储器读取标识符(ID),并且根据所读取的标识符(ID)执行验证,其中所述标识符(ID)是当锁定存储器时从信息处理装置接收并且被存储在存储器中的。
16.一种计算机程序,用于对信息存储器件执行存储器存取控制,所述信息存储器件包括用于存储数据的存储器和用于对存储器执行存取控制的控制器,所述程序包括从信息处理装置接收用于锁定存储器的锁定请求命令或用于解锁存储器的解锁请求命令的步骤;验证步骤,根据与已经输出命令的信息处理装置相关联地定义的标识符(ID)来验证是否信息处理装置具有包括标识符(ID)的有效密钥集;如果验证成功则根据所述命令来执行处理的步骤。
全文摘要
本发明提供了一种器件和方法来用于通过根据从存取请求源输出的密钥集的验证来锁定/解锁存储器而执行对存储器的存取控制。诸如存储卡的信息存储器件从诸如PC的信息处理装置接收用于锁定存储器的锁定请求命令或用于解锁存储器的解锁请求命令。当响应于所接收的命令而执行处理时,信息存储器件基于关系式LK=H(LMK,ID)应用锁定主密钥(LMK)来验证是否信息处理装置具有包括ID和锁定密钥(LK)的有效的密钥集。如果验证成功,则信息存储器件根据所述命令来执行处理。
文档编号G06F12/14GK1556953SQ0380108
公开日2004年12月22日 申请日期2003年6月19日 优先权日2002年6月25日
发明者冈上拓已, 中西健一, 田代淳, 大久保英明, 一, 英明 申请人:索尼株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1