CN105339919A - 设备和存储系统 - Google Patents
设备和存储系统 Download PDFInfo
- Publication number
- CN105339919A CN105339919A CN201480034597.XA CN201480034597A CN105339919A CN 105339919 A CN105339919 A CN 105339919A CN 201480034597 A CN201480034597 A CN 201480034597A CN 105339919 A CN105339919 A CN 105339919A
- Authority
- CN
- China
- Prior art keywords
- user key
- key
- host apparatus
- equipment
- storage card
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0637—Permissions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Storage Device Security (AREA)
- Computer Security & Cryptography (AREA)
Abstract
根据一个实施例,一种设备包括半导体存储器和控制器。半导体存储器包含从外部能够访问的第一区域和第二区域。控制器控制所述半导体存储器。所述设备包含解锁状态,在所述解锁状态中,允许从所述第一区域和所述第二区域的读取,以及锁定状态,在所述锁定状态中,允许从所述第一区域的读取,以及禁止从所述第二区域的读取。所述第一区域存储文件系统信息的至少一部分,以及在所述锁定状态中,从外部能够读取所述文件系统信息的所述至少一部分。
Description
相关申请交叉引用
本申请基于在2013年6月20提交的第2013-129832号;以及在2014年2月4日提交的第2014-019731号的先前的日本专利申请并且要求它们的优先权的权益,所有上述日本专利申请的全部内容通过引用并入本文。
技术领域
本申请中描述的实施例一般涉及设备、主机装置、主机系统以及存储系统。
背景技术
作为记录介质,使用NAND闪速存储器的存储设备已经广泛地流行。
作为此类存储设备,存储卡是已知的。此外,已经知道具有禁止对卡进行访问的锁定(lock)功能的存储卡。然而,根据常规锁定功能,在锁定状态中,根本不能读取存储区,以及因此已经存在以下问题:存储卡不被不支持锁定功能的主机装置识别。此外,甚至支持锁定功能的主机装置不能访问存储卡,直到锁定状态被释放,以及因此不能区分:不能访问是由于锁定状态还是由于错误。为了管理锁定状态,需要特定实用工具(utility)。因此,在主机装置中,已经难于管理处于锁定状态中的卡的处理。
附图说明
图1是根据一个实施例的存储系统的框图;
图2是根据一个实施例的存储系统的存储空间的概念图;
图3和图4是根据一个实施例的存储卡的状态转移图;
图5是根据一个实施例的存储系统的框图;
图6是根据一个实施例的示出存储卡的操作的流程图;
图7是根据一个实施例的示出配置模式的功能的图;
图8是根据一个实施例的示出在“设置用户密钥”功能的执行期间主机装置的操作的流程图;
图9是根据一个实施例的示出在“设置用户密钥”功能的执行期间存储卡的操作的流程图;
图10是根据一个实施例的示出在“设置用户密钥”功能的执行期间的操作的流程图;
图11是根据一个实施例的示出在“设置用户密钥”功能的执行期间的操作的流程图;
图12是根据一个实施例的示出在“清除/验证用户密钥”功能和“启用/禁用密钥加密”的执行期间主机装置的操作的流程图;
图13是根据一个实施例的示出在“清除/验证用户密钥”功能的执行期间存储卡的操作的流程图;
图14是根据一个实施例的示出在“清除用户密钥”功能的执行期间的操作的流程图;
图15是根据一个实施例的示出在“清除用户密钥”功能的执行期间的操作的流程图;
图16是根据一个实施例的示出在“启用/禁用密钥加密”的执行期间存储卡的操作的流程图;
图17是根据一个实施例的示出在“启用/禁用配置模式”的执行期间存储卡的操作的流程图;
图18是根据一个实施例的解锁操作的流程图;
图19是根据一个实施例的在主机装置中的解锁操作的流程图;
图20是根据一个实施例的在存储卡中的解锁操作的流程图;
图21至图24是根据一个实施例的解锁操作的流程图;
图25是根据一个实施例的在主机装置中的锁定操作的流程图;
图26是根据一个实施例的在存储卡中的锁定操作的流程图;
图27是根据一个实施例的存储系统的示意图;
图28至图33是根据一个实施例的存储系统的示意图;
图34是根据一个实施例的修改的存储系统的框图;
图35是根据一个实施例的修改的存储卡的局部区域的框图;以及
图36是根据一个实施例的修改的示出存储卡的操作的流程图。
具体实施方式
一般地,根据一个实施例,设备包含半导体存储器和控制器。半导体存储器包含:从外部可以访问的第一区域和第二区域。控制器控制半导体存储器。该设备包含:解锁状态,在解锁状态中从第一区域和第二区域的读取被允许,以及锁定状态,在锁定状态中从第一区域被允许以及从第二区域的读取被禁止。第一区域存储文件系统信息的至少一部分。在锁定状态中,能够从外部读取文件系统信息的至少一部分。
将描述根据一个实施例的设备、主机装置、主机系统和存储系统。在下文中,将作为示例来描述包含存储卡和访问该存储卡的主机装置的存储系统。此外,在该描述中,将作为示例来描述存储卡是SD存储卡的实例。
1.系统结构
首先,将参照图1来描述主机装置和存储卡的结构。图1是根据本实施例的示出存储系统的硬件结构的框图。
1.1主机装置的结构
首先,将参照图1来描述主机装置的结构。如在该图中示出的,主机装置1包含:微处理单元(MPU)11、主机接口(例如,SDTM接口)电路12、只读存储器(ROM)14、随机存取存储器(RAM)13等。ROM14包含:存储设备,诸如硬盘,其使得能够一般写入,以及ROM尤其不受硬件的类型限制。
MPU11控制主机装置1的整体操作。当主机装置1得到电力供应时,存储在ROM14中的固件(控制程序(命令))被读取到RAM13上。然后,MPU11根据该固件(命令)执行预定处理。此外,MPU11执行在RAM13和ROM14中保存的程序15,从而实现各种功能。程序15包含各种应用软件、操作系统、文件系统等。此外,程序15包含:管理实用工具,其用于准备随后描述的用户密钥。
主机接口电路12管理在这个电路和存储卡2之间的通信协议。主机接口电路12根据在主机装置1和存储卡2之间执行通信所要求的各种协定进行操作,以及包括各种命令集,它们可以与随后描述的存储卡2的主机接口41互相地通信。
1.2存储卡的结构
接着,将参照图1继续描述存储卡2的结构。如在该图中示出的,存储卡2包含NAND闪速存储器31和控制器32。
NAND闪速存储器31以非易失性的方式存储数据。NAND闪速存储器31在被称为页面的单元中写入或读取数据,页面包含多个存储单元。固有的物理地址被分配给每个页面。此外,NAND闪速存储器31擦除在被称为块的单元中的数据,块包含多个页面。注意的是,物理地址可以被分配给块单元。
控制器32响应于来自主机装置1的请求,指令NAND闪速存储器31来写入、读取和擦除数据。此外,控制器32管理在NAND闪速存储器31中的数据的存储状态。存储状态的管理包含:在逻辑地址和物理地址之间的关系的管理,以及特定物理地址页面(或块)是否处于擦除状态(一种状态,其中什么也没被写入或无效数据被保存)中的管理。
如在图1中示出的,控制器32包含:主机接口电路41、MPU42、RAM44、ROM43以及NAND接口电路45。
主机接口电路41控制在存储卡2和主机装置1之间的通信。更具体地,主机接口电路41控制在该主机接口电路和主机装置1的主机接口电路12之间的各种命令或数据的传输/接收。此外,主机接口电路41包含寄存器46。寄存器46存储各种信息,从而可以向主机装置1通知存储卡2的状态。例如由MPU42来设置这个信息。此外,寄存器46存储从主机装置1接收的各种信息。
MPU42控制存储卡2的整体操作。当存储卡2得到电力供应时,存储在ROM43中的固件(控制程序(命令))被读取到RAM44上。然后,MPU42根据该固件(命令)执行预定处理。MPU42根据控制程序在RAM44上准备各种表,或根据从主机装置1接收的命令来执行针对NAND闪速存储器31的预定处理。
ROM43存储由MPU42控制的控制程序等。RAM44用作MPU42的操作区域,以及暂时存储控制程序或各种表。这些表包含被分配给数据的逻辑地址和页面的物理地址(数据被存储在该物理地址中)的转换表(逻辑地址/物理地址转换表)。NAND接口电路45执行在控制器32和NAND闪速存储器31之间的接口处理。
1.3存储系统的存储空间
接着,将描述以上结构的存储系统的存储空间。图2是示出存储空间的存储器映射,可以从存储卡2的外部来访问该存储空间,以及示出了一个示例,在该示例中,存储空间被文件分配表(FAT)文件系统管理。
如在该图中示出的,存储空间被大致地分成文件系统管理区50和文件系统数据区51。每个区域被分成被称为簇的单元,并且在簇单元中被控制。文件系统管理区50和文件系统数据区51的组合被称为数据区。
管理区50被设置以管理在NAND闪速存储器31中记录的文件(数据),以及它保存文件的管理信息。以这种方式来管理在存储器中记录的文件(数据)的系统被称为文件系统。在文件系统中,已经建立了文件、文件夹或诸如此类的目录信息的准备方法,文件、文件夹或诸如此类的移动方法或删除方法,数据的记录系统,管理区的位置或使用方法,以及诸如此类。
管理区50包含例如启动扇区、FAT1、FAT2以及根目录条目。启动扇区是存储启动信息的区域。启动扇区包含例如主启动记录(MBR)以及BIOS参数块(BPB)。MBR和BPB中的每个是例如512字节区域。FAT1和FAT2存储特定簇,在特定簇中,数据被存储。存储空间是一组空间,每个空间具有被称为簇的确定的大小。此外,当将被写入的数据大于簇的大小时,该数据被分成簇单元,并且被存储在其中。在这种情况下,在FAT中,准备了指示特定簇的簇链,在该特定簇中,数据被分割和写入,从而该数据被管理。注意的是,FAT1和FAT2两者保存相同值,其使得甚至在FAT1和FAT2中的一个时能够FAT的恢复。在下文中,FAT1和FAT2将被统称为FAT。根目录条目存储在根目录上存在的文件的信息。更具体地,连同文件名或文件夹名、文件大小、属性、文件的更新日期和时间等,特定簇,其是文件的顶部簇,被存储。当已知顶部簇时,从FAT链可以访问所有数据。
文件系统数据区51是不同于管理区50的区域,以及在存储卡中能够被存储的数据容量取决于这个区域的大小。此外,该区域保存净用户数据或目录条目。
1.4锁定状态和解锁状态
接着,将参照图3来描述根据本实施例的能够由存储卡2采用的锁定状态和解锁状态。图3是存储卡2的状态转移图,以及尤其示出了在通电后紧接着的状态,以及在锁定状态和解锁状态之间的转移。
为了使存储卡进入锁定状态,用户密钥需要被注册,以及被要求以执行在锁定状态和解锁状态之间的转移。有一种情况,其中密钥用作由用户从主机装置1直接输入的“口令”,以及一种情况,其中由主机装置1的管理实用工具来管理密钥而不需要由用户输入口令,因为也可以处理非常长以至于不适于用户来输入的密钥。
如在图3中示出的,当存储卡2连接到主机装置1并且从主机装置1向存储卡2供应电力时,存储卡2根据用户密钥的设置的存在/缺失而采用锁定状态和解锁状态其中之一。当没有设置用户密钥时,存储卡2变成在解锁状态中。在解锁状态中,对存储卡2的存储空间的写入访问和读取访问可以被执行而没有限制(附带条件是,有时写入受ROM卡的使用应用或诸如此类限制)。根据命令来执行存储卡的控制,以及存储器访问命令的示例包含:写入命令、读取命令、以及控制命令以控制本实施的锁定功能。主机装置1能够通过使用控制命令将用户密钥注册在存储卡2中。控制命令作为可执行命令被控制而不管锁定状态或解锁状态。
在另一方面,当用户密钥被设置到存储卡2时,存储卡2变成在锁定状态中。在锁定状态中,对存储卡2的写入访问被禁止,以及读取访问是受限的。例如,可以读取参照图2描述的管理区50,更具体地,在文件系统上的信息(例如,在图2中的FAT1、FAT2和根目录条目,在下文中其将被称为文件系统信息),但是当接收到针对不同于管理区50的区域的读取命令时,拒绝该命令的执行。当接收到写入命令时,不管该区域,拒绝该命令的执行。
即使当存储卡2在锁定状态中时,主机装置1能够读取文件系统信息的至少一部分。因此,当读取文件系统信息时,主机装置能够识别存储卡2为格式化的存储设备,以及还可以向存储卡2分配驱动器号。
例如,在主机装置1中,当仅读取在图35中示出的并且随后描述的主启动记录(MBR)中存储的信息时,存储卡2能够被挂载。在这种情况下,主机装置1控制存储卡,使得当该卡在锁定状态中时,该卡被示出为空驱动器,以及当该卡在解锁状态中时,能够读取在该卡中存储的目录或文件名。
在文件系统管理区50和文件系统数据区51之间的边界取决于文件系统的格式参数,以及因此存储卡2不需要严格地区分该边界。可以从存储容量大致地预测管理区50所要求的大小。因此,在锁定状态中,例如,可以读取MBR或BPB,或可以读取包含管理区50的略微大些的区域。因此,存储卡2不是必须识别文件系统的格式。
一般地,当设备被挂载时,要求设备和分区信息的辨识。因此,当在锁定状态中能够最低限度地读取MBR时,存储卡2能够常常被挂载。在存储卡2被初始化后,能够通过读取MID来辨识设备信息。MID是一种类型的卡辨识信息,其被保存在被包含在存储卡2中的卡辨识(CID)寄存器中。此外,MBR是获得存储卡2的分区信息所要求的信息。然而,当事先确定了指示存储卡2的仅第一分区是有效的规则时,存储卡2可以被挂载而不读取MBR。作为能够读取在锁定状态中的存储卡2的主机装置1的一个示例,以下实例能够被认为是在图35的存储系统的实例中的一个示例。也就是说,针对挂载存储卡2,主机装置1:
(a)能够读取仅MBR,
(b)能够读取仅MBR和PBR,
(c)能够读取从MBR到FAT,或
(d)能够读取从MBR到根目录条目。
当在解锁状态中的存储卡2通过使用控制命令执行锁定操作时,以及当用户密钥被注册时,存储卡能够改变到锁定状态。此外,当在锁定状态中的存储卡2通过使用控制命令执行解锁操作时,以及当指定的密钥匹配注册的密钥时,存储卡能够改变到解锁状态。解锁操作的示例包含:随后描述的,使用用户密钥的解锁操作,以及使用主密钥的解锁操作。此外,通过根据控制命令擦除包含用户密钥的数据的一部分,锁定状态也能够被改变到解锁状态。随后将描述这些操作的细节。
另外,在存储卡2中,通过使用控制命令,关于用户密钥的各种设置(配置操作)是可执行的。这个配置操作通常在解锁状态中是可执行的,但是存储卡具有配置模式(配置模式),配置模式(配置模式)甚至在锁定状态中能够允许配置操作。也就是说,存储卡2(其中,配置模式在开启状态中)甚至在锁定状态中能够执行配置操作。随后将描述配置操作的细节。
图4是更详细地示出锁定状态和解锁状态的内部状态的图。如上所述,如果当通电时用户密钥没有被注册,则存储卡2在解锁状态中。在解锁状态中(在图4的右面上),配置模式在默认设置中是开启状态。此外,主机装置1通过使用控制命令来执行配置操作以注册用户密钥。在另一方面,如果当通电时用户密钥被注册,则存储卡2在锁定状态中(在图4的左面上)。存在两种状态,其中配置模式是开启的和关闭的。当配置模式是关闭状态时,不能执行解锁操作。
例如,当存储卡2,由某一主机装置1(主机装置1-1)将用户密钥注册在存储卡2中,连接到另一个主机装置1(主机装置1-2)时,存储卡2变成在锁定状态中。然而,当由主机装置1-1将配置模式设置为开启状态时,主机装置1-2可以将用户密钥设置到在锁定状态中的存储卡2。以后,当主机装置1-2将配置模式设置为关闭状态时,不能执行配置操作。
用户密钥可以被注册,以及将被注册的用户装置的用户密钥可以被注册至多最大注册数。在解锁操作中,当用户密钥中的一个用户密钥与输入密钥匹配时,能够释放锁定状态。
1.5存储卡的功能块
接着,将参照图5描述存储卡2的功能框,其尤其聚焦配置操作。图5是存储系统的功能框图。
1.5.1符号定义
在解释功能框之前,用于在本描述中使用的符号被定义如下。
(i)通常的密钥符号的定义
●Ku(用户密钥):由用户设置的密钥
●Km(主密钥):在出厂(shipping)时被设置的并且具有高优先级的密钥
●Kcp(卡公开密钥):卡RSA密码的公开密钥
●Kcs(卡秘密密钥):卡RSA密码的秘密密钥
●Ccx(密码代码,x=g或h):指示用于使用的密码系统和算法的代码
●Nr:随机数
(ii)转换函数的类型和记号
●F():用于在闪速存储器中存储的密码函数
编码:Kuf=F(Ku,"Enc")
解码:Ku=F(Kuf,"Dec")
注意的是,转换函数F()还包含一种实例,其中不执行转换(Kuf=Ku)。主机装置和卡使用公共的记号,但是函数自身不是必须是相同的,以及可以使用个体函数。
●Gh(),Gc():使用RSA密码的密码函数和解码函数
Kcp主机编码:Kut=Gh(Kcp,Ku)
Kcs卡解码:Ku=Gc(Kcs,Kut)
当有多个Gh()和Gc()函数时,由Ccg示出用于使用的Gh()和Gc()的类型。
●H():针对用户密钥的注册的转换函数
当通过使用压缩函数将长密钥转换成短密钥时,能够促进密钥的比较。
Nt=H(Nr,Ku)
(iii)密钥的类型和记号
●Kx或Kxy:密钥的记号
x=m:主密钥,x=u:用户密钥
y=f:由F()加密的,以便将密钥保存在闪速存储器中
y=t:在主机和卡之间的传输/接收的时间,y=v:验证的时间
主密钥的类型:Km,和Kmf
用户密钥的类型:Ku,Kut,Kuf,以及Kuv
●Nx:用于在挑战中使用的随机数的记号
x=r:随机数种子
x=t:随机数,在主机和卡之间的传输/接收时使用的密钥被埋藏在该随机数中
x=e:由卡计算的预期值
挑战数的类型:Nr,Nt,以及Ne
1.5.2关于主机装置1
如在图5中示出的,主机装置1包含CPU60、转换函数Gc()、H()和F()、固件61、寄存器62、密钥存储区63、工作存储器64、以及主机控制器65。
CPU60控制主机装置1的整体操作,以及对应于参照图1描述的MPU11。此外,CPU60能够访问转换函数Gh()和H()、固件61、寄存器62、密钥存储区63、工作存储器64、以及主机控制器65。
转换函数Gh()是在用户密钥的注册期间使用的密码函数。针对转换函数Gh(),例如,使用RSA密码系统,其中通过从存储卡2读取的公开密钥来加密用户密钥。转换函数Gh()可以是软件(例如,被存储在参照图1描述的ROM14中),但是可以是硬件以用于实现高速度。当准备了多个转换函数Gh()时,从被包含在存储卡2的状态信息中(被保存在图5的寄存器72中)的Gh()列表来选择转换函数。也就是说,Gh()列表是用于用户密钥的注册的转换函数的列表,这些转换函数由存储卡2支持。主机装置1从这个Gh()列表选择由主机装置1支持的函数。指示所选择的函数的代码Ccg被保存在工作存储器64中。当仅有一种类型的Gh()时,使用Gh()列表不是必要的。
转换函数H()是在用户密钥的认证期间使用的密码函数。通过使用从存储卡2读取的随机数,利用转换函数H()来加密用户密钥。转换函数H()也可以是软件(例如,被存储在参照图1描述的ROM14中),但是从实现高速度的视角优选地是硬件。从被包含在存储卡2的状态信息中(被保存在图5的寄存器72中)的H()列表来选择转换函数H()。也就是说,H()列表是用于用户密钥的认证的转换函数的列表,这些转换函数由存储卡2支持。主机装置1从这个H()列表选择由主机装置1支持的函数。指示所选择的函数的代码Cch被保存在工作存储器64中。当仅有一种类型的H()时,使用H()列表不是必要的。作为转换函数H(),能够使用哈希函数,以及当通过这个函数将长密钥转换为短密钥时,能够促进密钥的比较。H()的示例是MD5(Nr||Ku)。H()可以具有反函数,但是在本实施例中,H()指示该函数没有反函数的示例(针对H(),反函数由“Dec”和“Enc”来定义)。
主机控制器65执行在主机装置1和存储卡2之间的接口处理。主机控制器65对应于在图1中的主机接口电路12。主机控制器65向卡2发出各种命令,以及根据卡2的响应来控制命令的执行。
CPU60操作地执行固件61,以及控制主机装置1的操作。此外,固件61包含以上提及的管理实用工具。管理实用工具基于随机数或在主机装置1中固有的信息来准备用户密钥而不接受例如来自用户的口令的输入。作为准备用户密钥的方法,能够使用各种已知的方法,以及在主机装置1中固有的信息的示例包含随机数生成,以及主机装置1的制造编号或序列号。可替代地,可以基于使用在主机装置1中固有的信息和在存储卡2中固有的信息的计算的结果来准备用户密钥。固件61被存储在例如图1的ROM14中。
寄存器62保存从存储卡2读取的状态信息。状态信息的示例包含随机数Nr和RSA密码的密码密钥Kcp。作为寄存器62,例如,能够使用易失性存储器,以及寄存器对应于例如在图1中的RAM13。
在密钥存储区63中,由管理实用工具准备的用户密钥Ku或从用户输入的可接受的用户密钥Ku被F()加密,并且被保存为Kuf。密钥存储区63对应于例如在图1中没有示出的非易失性半导体存储器(其可以被称为“主机存储器”)。在密钥存储区63中的信息被管理,以便不能从外部容易地读取该信息。
当CPU60执行各种处理时,诸如关于用户密钥的处理,工作存储器64用作工作区,以及它对应于例如在图1中RAM13。此外,工作存储器64保存供使用的Ccg和Cch,或由CPU60计算的密钥Kut、Nt等。
1.5.3存储卡2
CPU70控制存储卡2的整体操作,以及对应于参照图1描述的MPU42。此外,CPU70能够访问转换函数Gc()、H()和F()、固件71、寄存器72和73、工作存储器74、以及非易失性存储器65。
转换函数Gc()是在用户密钥的注册期间使用的密码函数。此外,针对转换函数Gc(),例如,使用RSA密码系统,其中通过秘密密钥来解码用密钥。转换函数Gc()可以是软件(例如,被存储在参照图1描述的ROM14中),但是可以是硬件以用于实现高速度。转换函数Gc()对应于主机装置1的转换函数Gh()。另外,转换函数Gc()是被包含在针对用户密钥的注册的作为函数的列表的Gh()列表中的任何函数,这些函数由存储卡2支持。
转换函数H()是在用户密钥的认证期间使用的密码函数。通过使用从非易失性存储器75读取的随机数,利用转换函数H()来加密用户密钥。转换函数H()也可以是软件(例如,被存储在参照图1描述的ROM14中),但是从实现高速度的视角优选地是硬件。转换函数H()对应于主机装置1的转换函数H()。另外,转换函数H()是被包含在针对用户密钥的认证的作为函数的列表的H()列表中的任何函数,这些函数由存储卡2支持。如上所述,在转换函数H()中,能够使用哈希函数,从而密钥长度可以被缩短以及能够促进比较。
主机接口76执行在存储卡2和主机装置1之间的接口处理。主机接口76对应于在图1中的主机接口41。
固件71由CPU70执行。此外,CPU70操作地执行固件71,以及控制存储卡2的操作。固件71被存储在例如图1的ROM43中,以及从主机装置1不能看到或访问。
寄存器72能够保存指示存储卡2的状态的状态信息。主机装置1能够通过使用控制命令从寄存器72读取该状态信息,以及能够掌握存储卡2的状态。每当执行解锁操作,或用户密钥的擦除操作或检查操作时,例如通过CPU70,随机数Nr被更新为不同的值。不将秘密密钥Kcs示出给主机装置,以及因此该密钥没有被保存在寄存器72中。
寄存器73是由主机装置1能够写入的寄存器。此外,寄存器73保存从主机装置1传送的各种密钥信息(例如,Ku,Kut,Km,Ccg,Cch,Nt等)。
当寄存器72和73是硬件时,这些寄存器对应于例如在图1中的寄存器46,但是虚拟寄存器可以由RAM44上的固件71构成。关于状态的初始值,当存储卡2被初始化时,CPU70将来自非易失性存储器75的所要求的信息拷贝到寄存器72。信息的示例包含:Gh()列表,H()列表,随机数Nr,以及公开密钥Kcp。
当CPU70执行各种处理时,诸如关于用户密钥的处理,工作存储器74用作工作区,以及对应于例如在图1中的RAM44。此外,工作存储器74保存所计算的比较值Kuv和Kmv,预期值Ne以及诸如此类。主机装置1不能直接访问工作存储器74。
非易失性存储器75对应于在图1中的NAND闪速存储器31。主机装置1不能直接访问非易失性存储器75,以及经由主机接口76或CPU70(在图中的控制器32)来访问该存储器。非易失性存储器75以非易失性的方式保存各种必要信息(例如,Kuf,Kmf,Nr,Kcp,Kcs,Gh()列表,H()列表等)。这些信息被保存在从主机装置1不能看到的区域中,以及该信息不能被主机装置1直接访问。也就是说,这些信息被保存在在图2中没有示出的区域中。此外,这些信息基本上具有固定值。然而,如上所述,随机数种子Nr被CPU70更新。在这种情况下,CPU70更新Nr,以便所更新的值与过去的值不相同。另外,非易失性存储器75以非易失性方式来保存存储卡2的固有信息,例如序列号。序列号能够被主机装置1读取、
2.存储系统的操作
接着,将描述以上提及的构造的存储系统的操作。在下文中,将依次描述配置操作和锁定/解锁操作。
2.1在通电后紧接着的存储卡的操作
首先,将参照图6来描述在存储卡2连接到主机装置1以及通电后紧接着的操作。图6是示出存储卡2的操作的流程图。注意的是,在图6中的处理主要由CPU70来执行。
当存储卡2连接到主机装置1时,主机装置1向存储卡2供应电力。接着,主机装置1的CPU60发出初始化命令,以初始化存储卡2。响应于这个命令,存储卡2的CPU70执行初始化操作(步骤S11)。初始化进行处理以获得一种状态,在该状态中,从主机装置1能够访问存储卡2的存储空间,以及更具体地进行处理以获得一种状态,在该状态中,能够接受来自主机装置1的读取命令。这个状态将被称为传输状态(“tran”状态)。此外,在初始化处理的过程中,从非易失性存储器75将所要求的信息读取到寄存器73。此外,在初始化处理的过程中,在主机装置1和存储卡2之间的总线的传输模式被选择。例如,在总线中准备了传输模式,以及数据的传输速度根据该传输模式而改变。在初始化处理中选择这些传输模式中的任何一个传输模式。
存储卡2,其已经改变到传输状态,的CPU70确定在存储卡2中是否设置了至少一个用户密钥(步骤S12)。可以由CPU70参考非易失性存储器75来执行这个确定。更具体地,CPU70能够通过检查加密的用户密钥Kuf是否被保存在非易失性存储器75中来执行该确定。可替代地,指示用户密钥是否被设置的信息可以被保存作为在寄存器72中的状态信息的一部分。
当用户密钥没有被设置时(步骤S12,否),CPU70使存储卡进入解锁状态(步骤S13)。也就是说,主机装置1能够对存储卡的文件系统管理区50和文件系统数据区51两者执行读取访问和写入访问。
在解锁状态中,所有配置操作是可以执行的(步骤S14)。能够执行用户密钥的注册、擦除、检查等。此外,在存储卡2中,配置模式在默认设置处于被关闭的关闭状态中。因此,例如,当用户密钥被设置在另一个主机装置1(第二主机装置1)中时,配置操作被执行以将配置模式设置为开启状态。接着,将描述在这种情况下的处理的流。
当存储卡2,在存储卡2中,用户密钥被设置以及在步骤S14中由第一主机装置1将配置模式设置为开启状态,连接到第二主机装置1时,存储卡2的CPU70基于以下事实识别某一用户密钥被注册:加密的用户密钥Kuf被保存在非易失性存储器75中,或诸如此类(步骤S12,是)。
接着,CPU70确定配置模式是否在开启状态中(步骤S15)。这个确定参考被设置到例如存储卡2中的寄存器72的状态信息是可以执行的。
当配置模式在开启状态中时(步骤S15,开启),存储卡2在锁定状态中,以及配置操作处于可执行状态(步骤S16)。第二主机装置1设置用户密钥(步骤S17)。接着,只要配置模式没有被关闭,则它保持在步骤S16中。
当第二主机装置1关闭在步骤S16中的配置模式(步骤S18)时,禁止配置操作的执行,而存储卡2维持锁定状态(步骤S19)。
在步骤S19中,主机装置能够执行解锁操作(步骤S20)。在解锁操作中,当存储卡2被由第二主机装置所注册的用户密钥认证时,存储卡2改变到解锁状态(步骤S13)。因此,主机装置1能够访问存储卡2的文件系统数据区51。是否禁止读取来自文件系统管理区50的数据取决于挂载情况。
此外,当主机装置1向在解锁状态中的存储卡2执行锁定操作时,存储卡2能够被改变到锁定状态。在这时,主机装置1确定用户密钥是否是匹配的,以及当匹配时,主机装置1将存储卡设置为锁定状态。可替代地,主机装置1可以仅确认用户密钥被注册,以及当任何用户密钥被注册时,主机装置1可以将存储卡设置为锁定状态。
2.2配置操作
将参照图7来描述以上配置操作的细节。图7是示出配置操作的内容的表。
配置操作包含以下七个功能。
(1)“设置用户密钥”:设置(注册)用户密钥功能
(2)“清除用户密钥”:清除所注册的用户密钥功能
(3)“验证用户密钥”:验证所注册的用户密钥功能
(4)“启用密钥加密”:启用密钥的加密功能
(5)“禁用密钥加密”:禁用密钥的加密功能
(6)“启用配置模式”:开启在锁定状态中的配置模式功能
(7)“禁用配置模式”:关闭在锁定状态中的配置模式功能
这里,七个基本功能是示例性的,但是可以扩展配置功能。因此,例如,当由特定用户密钥改变了解锁状态时,增加执行特定操作的设置是可能的,在该特定操作中,仅允许读取存储空间,并且不允许写入。关于功能的类型,没有特别限制。
在下文中,将依次描述配置操作的细节。
2.3“设置用户密钥”功能
将描述“设置用户密钥”功能。如上所述,唯一的用户密钥可以被设置为针对每个主机装置的用户密钥。接着,在用户密钥被设置后,通过输入任何注册的用户密钥,存储卡可以被设置为可用状态(解锁状态)。长密钥的使用显著地降低了针对不同主机装置设置相同密钥的可能性。
2.3.1主机装置1的操作
首先,将参照图8来描述在“设置用户密钥”功能的执行期间主机装置1的操作。图8是示出主机装置1的处理的流的流程图,以及这个处理例如主要由CPU60来执行。
如在该图中示出的,主机装置1的CPU60发出针对存储卡2的寄存器72的读取命令,以及读取存储卡2的状态信息(步骤S31)。接着,CPU60检查密钥加密是启用了还是禁用了(步骤S32)。关于密钥加密是启用了还是禁用了的信息被读取作为在步骤S31中的状态信息的一部分。此外,密钥加密的启用/禁用可以被设置在一种状态中,在该状态中,没有用户密钥被注册,以及一旦用户密钥被注册,则启用/禁用不能被改变。然而,当所有用户密钥被清除时,能够再次设置启用/禁用。注意的是,密钥加密默认地被禁用。
当使用密钥加密时(步骤S33,是),主机装置1执行“启用密钥加密”功能,以启用密钥加密(步骤S34)。
当没有使用密钥加密时(步骤S33,否),主机装置1实际上从主机控制器65向存储卡2传送用户密钥Ku的明文(步骤S35)。可以由CPU60通过使用管理实用工具自动地准备这个用户密钥Ku,或者可以接受来自用户的用户密钥的输入。所传送的用户密钥Ku由F()来加密,以及被保存在存储卡2的寄存器73中(Kuf)。
当使用密钥加密时(步骤S32,是,以及步骤S34),基于在步骤S31中读取的状态信息来确定用于使用的转换函数Gh(),以及确定对应于该函数的代码Ccg。从由卡支持的多个Gc()和Gh()对中,选择由主机装置能够使用的一对。接着,通过使用转换函数Gh()来加密用户密钥Ku(步骤S36)。根据Kut=Gh(Kcp,Ku)来计算加密的用户密钥Kut。
接着,主机装置1从主机控制器65向存储卡2传送所确定的代码Ccg和所加密的用户密钥Kut(步骤S37)。这些信息被保存在存储卡2的寄存器73中。
随后,主机装置1向存储卡2发出“设置用户密钥”功能的执行命令。响应于该命令,在存储卡2中执行“设置用户密钥”功能(步骤S38)。后面将参照图9来描述在存储卡2中的处理。
随后,当存储卡2的忙状态被清除时,主机装置1识别的是,在存储卡2中的处理完成了。忙状态是一种状态,其中存储卡2不能接受任何命令。当忙状态被清除以改变到就绪状态时,存储卡2能够接受命令。从存储卡2向主机装置1发送作为就绪/忙信号(或从该卡发送给主机装置的分组信息)的这个信息。
接着,主机装置1例如从存储卡2的寄存器72来读取状态信息(步骤S39)。接着,主机装置1检查在存储卡2中的执行结果(步骤S40)。因此,当在存储卡2中的配置操作是成功的时(步骤S40,成功),主机装置1识别的是,“设置用户密钥”功能被正常地完成。在另一方面,当配置操作失败时(步骤S40,失败),主机装置1识别的是,“设置用户密钥”功能已经失败。
2.3.2存储卡2的操作
接着,将参照图9来描述在以上步骤S38中的存储卡2的操作。图9是示出存储卡的处理的流程图。
如在该图中示出的,当从主机装置1接收到“设置用户密钥”功能的执行命令时,例如,存储卡2的CPU70判断密钥加密是否被启用(步骤S51)。当启用密钥加密时(步骤S51,是),CPU读取被设置到寄存器73的信息以处理该信息。确定对应于从主机装置1接收的代码Ccg的转换函数Gc(),以及此外,通过使用转换函数F()从所接收的加密的用户密钥来计算将被存储在非易失性存储器75中的加密的用户密钥Kuf(步骤S52)。更具体地,根据Kuf=F(Gc(Kcs,Kut),"Enc")来计算加密的用户密钥Kuf。通过Kcs将Kut解码为Ku,Kcs是RSA密码Gc的秘密密钥。因此,Gc(Kcs,Kut)=Ku。当密钥被存储在闪速存储器中时,密钥被设置,以便该密钥不能被看到。计算通过由转换函数F()加密Ku获得的Kuf。
在另一方面,当没有启用密钥加密时(步骤S51,否),CPU70通过使用转换函数F()来加密所接收的明文用户密钥Ku来计算Kuf(步骤S53)。更具体地,根据Kuf=F(Ku,"Enc")来计算加密的用户密钥Kuf。
在步骤S52或S53后,CPU70将所计算的加密的用户密钥Kuf写入在非易失性存储器75中(步骤S54)。接着,CPU70检查将加密的用户密钥Kuf写入到非易失性存储器75中是否是成功的(步骤S55)。
当写入是成功的时(步骤S55,是),CPU70将状态信息存储在例如寄存器72中,该状态信息指示配置操作是成功的(步骤S56)。在另一方面,当写入失败时(步骤S55,否),CPU70在寄存器72中存储状态信息,该状态信息指示配置操作已经失败(步骤S57)。
随后,CPU70清除忙状态,以结束配置操作。
2.3.3“设置用户密钥”序列
接着,将描述在以上“设置用户密钥”功能的执行期间的序列。在本描述中,2.3.1和2.3.2的以上描述是简化的和概述的。
图10示出了在启用密钥加密的情况下的“设置用户密钥”的序列。
如在该图中示出的,主机装置1首先确定用户密钥Ku。如上所述,用户密钥Ku由管理实用工具来准备,或可以接受来自用户的用户密钥的输入。接着,主机装置1通过转换函数F()来加密用户密钥,以准备加密的用户密钥Kuf,以及这个密钥被保存在密钥存储区63中。注意的是,主机装置1从密钥存储区63读取加密的用户密钥,以及通过转换函数F()来解码这个密钥,从而能够获得明文用户密钥Ku。
接着,主机装置1从存储卡2读取卡信息(加密的协议/算法(Gh()列表)或公开密钥Kcp)。接着,主机装置1从Gh()列表来选择可以使用的转换函数Gh(),以及加密该用户密钥Ku以计算加密的用户密钥Kut(=Gh(Kcp,Ku))。此外,主机装置1向存储卡2传送指示所选择的Gh()的代码Ccg和所加密的用户密钥Kuf(设置在寄存器73中的信息),以及主机装置指令存储卡2注册所准备的用户密钥Ku。
存储卡2基于在寄存器73中接收的代码Ccg来选择转换函数Gc(),以及通过对应的秘密密钥Kcs来解密(解码)所加密的用户密钥Kut,以获得明文用户密钥Ku。接着,存储卡2通过使用密钥转换函数F()来准备加密的用户密钥Kuf(=F(Ku,"Enc"),以及将该密钥存储在非易失性存储器75中。接着,存储卡2向主机装置1通知注册完成或注册失败。
通过以上,在主机装置1和存储卡2之间注册了用户密钥Ku。注意的是,作为密码函数Gh,例如,使用RSA2048的加密,以及作为Gc,例如,使用RSA2048的解码。
图11示出了在禁用密钥加密的情况下的“设置用户密钥”的序列。在状态寄存器72中存在指示禁用加密的状态信息,但是假定主机装置1已经读取了这个寄存器,以及因此从图11中省略了该信息。
如在该图中示出的,主机装置1首先确定用户密钥Ku。如上所述,用户密钥Ku由管理实用工具来准备,或可以接受来自用户的用户密钥的输入。接着,主机装置1通过转换函数F()来加密用户密钥Ku,以准备加密的用户密钥Kuf,以及这个密钥被保存在密钥存储区63中。
接着,主机装置1将明文用户密钥Ku传送给存储卡2,以及指令存储卡2注册所准备的用户密钥Ku。
存储卡2通过使用密钥转换函数F()来准备加密的用户密钥Kuf(=F(Ku,"Enc")),以及将该密钥存储在非易失性存储器75中。接着,存储卡2向主机装置1通知注册完成或注册失败。
2.4“清除/验证用户密钥”、“启用/禁用密钥加密”、“启用/禁用配置模式”功能
接着将描述“清除用户密钥”功能、“验证用户密钥”功能、“启用密钥加密”功能、“禁用密钥加密”功能、“启用密钥配置模式”功能以及“禁用配置模式”功能。“清除用户密钥”功能是用于从存储卡2清除注册的用户密钥的功能。“验证用户密钥”功能是用于验证所注册的用户密钥是有效的还是无效的(正确还是不正确)的功能。“启用密钥加密”功能和“禁用密钥加密”功能分别是用于启用和禁用密钥加密的功能。“启用配置模式”功能和“禁用配置模式”功能是分别用于开启和关闭配置模式的功能。
2.4.1主机装置1的操作
将参照图12来描述在以上“清除/验证用户密钥”功能、“启用/禁用密钥加密”功能或“启用/禁用配置模式”功能的执行期间主机装置1的操作。图12是示出主机装置1的处理的流程图,以及这个处理例如主要由CPU60来执行。
如在该图中示出的,主机装置1的CPU60发出针对存储卡2的寄存器72的读取命令,以及读取存储卡2的状态信息(步骤S61)。当将被执行的功能是“清除用户密钥”或“验证用户密钥”时(步骤S62,“清除用户密钥”或“验证用户密钥”),处理前进到步骤S63的处理。接着,CPU60检查密钥加密是启用的还是禁用的(步骤S63,否)。当禁用密钥加密时(步骤S63,否),主机装置1实际上从主机控制器65向存储卡2传送明文用户密钥Ku(步骤S64)。所传送的用户密钥Ku被保存在存储卡2的寄存器73中。
当启用密钥加密时(步骤S63,否),主机装置基于在步骤S61中读取的状态信息(H()的列表)来确定用于使用的转换函数H(),以及确定对应于所确定的函数的代码Cch。接着,主机装置通过使用转换函数H()来加密用户密钥Ku,以计算挑战数Nt(步骤S65)。根据Nt=H(Nr,Ku)来计算挑战数Nt。随机数Nr也是从存储卡2作为状态信息被读取的信息。接着,主机装置1从主机控制器65向存储卡2传送所确定的代码Cch和挑战数Nt(步骤S66)。这些信息被保存在存储卡2的寄存器73中。
随后,主机装置1向存储卡2发出“清除用户密钥”功能或“验证用户密钥”功能的执行命令。响应于这个命令,在存储卡2中,执行“清除用户密钥”功能或“验证用户密钥”功能(步骤S70)。随后将参照图13来描述在存储卡2中的处理。
当存储卡2的忙状态被清除时,主机装置1识别的是,在存储卡2中的处理完成了。接着,主机装置1例如从存储卡2的寄存器72来读取状态信息(步骤S71)。接着,主机装置1检查在存储卡2中的执行结果(步骤S72)。因此,当在存储卡2中的配置操作是成功的时(步骤S72,成功),主机装置1识别的是,“清除用户密钥”功能或“验证用户密钥”功能被正常地完成。也就是说,当执行“清除用户密钥”功能时,主机装置识别的是,在步骤S64中传送的用户密钥Ku被清除。在另一方面,当执行“验证用户密钥”功能时,主机装置识别的是,在步骤S64或步骤S66中传送的用户密钥Ku是正确的用户密钥。
在另一个方面,当在步骤S70中配置操作失败时(步骤S72,失败),主机装置1识别的是,“清除用户密钥”或“验证用户密钥”已经失败。也就是说,当执行“清除用户密钥”功能时,主机装置识别的是,在步骤S64中传送的用户密钥Ku没有被清除。在另一方面,当执行“验证用户密钥”功能时,主机装置识别的是,在步骤S64或步骤S66中传送的用户密钥Ku是错误的用户密钥。
当将被执行的功能是“启用密钥加密”、“禁用密钥加密”、“启用配置模式”或“禁用配置模式”时(步骤S62,其它),不需要用户密钥Ku,以及因此,省略步骤S64至S66的处理。接着,当执行“启用密钥加密”功能或“禁用密钥加密”功能时,CPU60发出密钥加密的启用命令或禁用命令,以及向存储卡2传送该命令(步骤S68)。在另一方面,当执行“启用配置模式”功能或“禁用配置模式”功能时,CPU60发出配置模式的启用命令或禁用命令,以及向存储卡2传送该命令(步骤S69)。
响应于这些命令,在存储卡2中,执行“启用密钥加密”、“禁用密钥加密”、“启用配置模式”或“禁用配置模式”(步骤S70)。随后,将参照图16和图17来描述这些细节。
随后,处理前进到步骤S71。注意的是,如上所述,当用户密钥没有被注册时,密钥加密的设置是可能的。因此,当用户密钥被注册时以及当执行“启用/禁用密钥加密”功能时,从存储卡2向主机装置1将操作通知为失败。
2.4.2“清除/验证用户密钥”的卡的操作
接着,将参照图13来描述在以上步骤S70中的“清除/验证用户密钥”的执行中的卡的操作。图13是示出存储卡2的处理的流程图。
如在该图中示出的,当从主机装置1接收到“清除/验证用户密钥”功能的执行命令时,例如,存储卡2的CPU70判断密钥加密是否是启用的(步骤S81)。当启用密钥加密时(步骤S81,是),CPU70确定对应于从主机装置1接收的代码Cch的转换函数H(),以及通过使用转换函数H(),在非易失性存储器75中保存的加密的用户密钥Kuf,以及作为状态信息被保存在寄存器72中的随机数Nr,还计算预期值Ne(步骤S82)。更具体地,根据Ne=H(Nr,F(Kuf,"Dec"))来计算预期值Ne。接着,CPU70将从主机装置1接收的挑战数Nt与所计算的预期值Ne进行比较(步骤S83)。
当没有启用密钥加密时(步骤S81,否),CPU70通过使用转换函数F()来加密所接收的明文用户密钥Ku来计算比较值Kuv(步骤S84)。更具体地,根据Kuv=F(Ku,"Enc")来计算比较值Kuv。接着,CPU70将从非易失性存储器75读取的加密的用户密钥Kuf与所计算的比较值Kuv进行比较(步骤S85)。
作为比较的结果,当两个值不匹配时(步骤S86,否),CPU70将状态信息存储在例如寄存器72中,该状态信息指示配置操作已经失败(步骤S91)。
作为比较的结果,当两个值匹配时(步骤S86,是),处理前进到步骤S87的处理。也就是说,当将被执行的功能是“清除用户密钥”时(步骤S87,清除),从非易失性存储器75清除在步骤S83或S85中匹配的加密的用户密钥Kuf(步骤S88)。当清除失败时(步骤S89,是),处理前进到步骤S91。当处理成功时(步骤S89,否),CPU70在寄存器72中存储状态信息,该状态信息指示配置操作是成功的(步骤S90)。当将被执行的功能是“验证用户密钥”时(步骤S87,验证),处理前进到步骤S90。
随后,CPU70清除忙状态,以结束配置操作。
2.4.3“清除用户密钥”序列
接着,将描述在以上“清除用户密钥”功能的执行期间的序列。在本描述中,在以上2.4.1和2.4.2的“清除用户密钥”功能的描述是简化的和概述的。
图14示出了启用密钥加密的情况的“清除用户密钥”序列。
如在该图中示出的,主机装置1首先从存储卡2读取卡信息(加密的协议/算法(H()列表)或随机数Nr)。然后,主机装置1从H()列表选择可以使用的转换函数H(),以及通过使用随机数Nr来加密用户密钥Ku,以计算挑战数Nt(=H(Nr,Ku))。这里,将被加密的用户密钥Ku是由主机装置1期望清除的用户密钥。此外,主机装置1向存储卡2传送代码Ccg,代码Ccg指示所选择的H()和所计算的挑战数Nt,以及指令存储卡2清除用户密钥Ku。
存储卡2读取存储在非易失性存储器75中的加密的用户密钥Kuf,以及通过转换函数F()来解密(解码)该密钥,以获得明文用户密钥Ku。然后,存储卡2基于所接收的代码Ccg来选择转换函数H(),以及计算预期值Ne(=H(Nr,F(Kuf,"Dec")))。
然后,存储卡2将挑战数Nt与预期值Ne进行比较,以及从非易失性存储器75清除对应的加密用户密钥Kuf。注意的是,当多个加密的用户密钥Kuf被存储在非易失性存储器75中时,针对每个密钥来计算预期值Ne,以及将每个预期值Ne与挑战数Nt。然后,存储卡清除预期值Ne中对应于匹配挑战数Nt的预期值的加密的用户密钥Kuf。然后,存储卡2向主机装置1通知用户密钥的清除完成或清除失败。
通过以上,主机装置1能够清除在存储卡2中注册的用户密钥。
图15示出了禁用密钥加密的情况下的“清除用户密钥”序列。指示禁用加密的状态信息被存留在寄存器72中,但是假定主机装置1已经读取了这个寄存器,以及因此从图15省略了状态信息。
如在该图中示出的,主机装置1首先向存储卡2传送明文用户密钥Ku,以及指令存储卡2清除用户密钥Ku。
然后,存储卡2通过使用转换函数F()来加密所接收的明文用户密钥Ku,以获得比较值Kuv。然后,存储卡2将比较值Kuv与保存在非易失性存储器75中的加密的用户密钥Kuf进行比较,以及从非易失性存储器75清除加密的用户密钥Kuf。然后,存储卡2向主机装置1通知用户密钥的清除完成或清除失败。
注意的是,尽管在该图中没有示出,但是也可以有一种方法,在该方法中,根据Kuv=F(Kuf,"Dec")来计算Kuv,并且将Kuv与Ku进行比较。
注意的是,“验证用户密钥”功能的序列对应于图14和图15,从图14和图15省略了Kuf的清除处理,以及因此省略了详细描述。
2.4.4“启用/禁用密钥加密”的卡的操作
接着,将参照图16来描述在图12的步骤S70中的“启用/禁用密钥加密”功能的执行中的卡的操作。图16是示出存储卡2的处理的流程图。
如在该图中示出的,当从主机装置1接收到“启用密钥加密”功能或“禁用密钥加密”功能的执行命令时,例如,存储卡2的CPU70判断用户密钥是否被注册(步骤S101)。当用户密钥已经被任何主机装置1注册时(步骤S101,否),密钥加密的开启/关闭不能被改变,以及因此处理前进到步骤S106,在步骤S106中,功能的执行失败。也就是说,CPU70例如在寄存器72中存储状态信息,该状态信息指示配置操作已经失败。
当用户密钥没有被注册时(步骤S101,是),“启用/禁用密钥加密”功能是可执行的。当接收到“启用密钥加密”功能的执行命令时(步骤S102,设置启用模式),CPU70启用密钥加密,以及在寄存器72中存储指示启用的信息作为状态信息(步骤S103)。当接收到“禁用密钥加密”功能的执行命令时(步骤S102,设置禁用模式),CPU70禁用密钥加密,以及在寄存器72中存储指示禁用的信息作为状态信息(步骤S104)。
然后,CPU70例如在寄存器72存储状态信息(步骤S105),该状态信息指示配置操作是成功的。随后,CPU70清除忙状态,以结束配置操作。
2.4.5“启用/禁用配置模式”的卡的操作
接着,将参照图17来描述在图12的步骤S70中的“启用/禁用配置模式”功能的执行中的卡的操作。图17是示出存储卡2的处理的流程图。
如在该图中示出的,当从主机装置1接收到“启用配置模式”功能或“禁用配置模式”功能的执行命令时,例如,存储卡2的CPU70判断用户密钥是否被注册(步骤S111)。当用户密钥没有被注册时(步骤S111,否),存储卡2在解锁状态中。因此,主机装置1能够在主机装置和存储卡2之间自由地执行配置操作。因此,不必设置配置模式,以及处理前进到步骤S116,在步骤S116中,功能的执行失败。也就是说,CPU70例如在寄存器72中存储状态信息,该状态信息指示配置操作已经失败。
当用户密钥被注册时(步骤S111,是),“启用/禁用配置模式”功能是可执行的。当接收到“启用配置模式”功能的执行命令时(步骤S112,设置启用模式),CPU70开启配置模式(步骤S113)。当接收到“禁用配置模式”功能的执行命令时(步骤S112,设置禁用模式),CPU70关闭配置模式(步骤S114)。
在步骤S113或S114后,CPU70例如在寄存器72存储状态信息(步骤S115),该状态信息指示配置操作是成功的。随后,CPU70清除忙状态,以结束配置操作。
2.5解锁操作
接着,将描述根据本实施例的解锁操作,解锁操作用于在存储系统中将在锁定状态中的存储卡2改变到解锁状态。
2.5.1解锁操作的类型
在本实施例中,准备了三种类型的解锁操作。将参照图18来描述这些解锁操作。图18是示出如何选择三种类型的解锁操作的流程图。
如在该图中示出的,当用户密钥是已知的时(步骤S121,是),执行使用用户密钥的解锁操作(UNLOCK(U)操作)(步骤S123)。用户密钥是已知的情况是由管理实用工具准备的用户密钥Ku被正确地保存在主机装置1中的情况,接受由用户输入正确的用户密钥的情况,或诸如此类。
即使当用户密钥没有被记住(步骤S121,否)时以及如果用户知道主密钥(步骤S122,否),则使用主密钥的解锁操作(UNLOCK(M)操作)是可能的(步骤S124)。也就是说,当从用户接受正确的主密钥的输入时,执行UNLOCK(M)操作,以及存储卡2能够被改变到解锁状态。然而,当执行UNLOCK(M)操作时,与UNLOCK(U)操作不同,删除擦除在存储卡2中注册的所有用户密钥。然而,不擦除文件系统管理区50和文件系统数据区51。
当主密钥丢失时(步骤S122,是),能够通过执行擦除操作,将存储卡2从锁定状态改变为解锁状态(步骤S125)。在这种情况下,不仅所有的用户密钥而且在管理区50中的信息的至少一部分被擦除。当所有存储区51被擦除时,要求相当长的时间。因此,通过擦除用户数据区的一部分的方法或控制器32置乱例如用于将逻辑地址转换到物理地址的表的方法,读出数据被改变为无意义的数据,这缩短了禁用数据的时间。
2.5.2主机装置1的操作
接着,将描述以上解锁操作的细节。图19是示出主机装置1在使用用户密钥或主密钥的解锁操作(UNLOCK(U)或UNLOCK(M)操作)中的处理的流程图。当存储卡2在锁定状态中并且配置模式是关闭状态时,这种解锁操作是可以执行的。
如在该图中示出的,主机装置1的CPU60发出针对存储卡2的寄存器72的读取命令,以及读取存储卡2的状态信息(步骤S131)。状态信息包含:指示是否启用密钥加密的信息、指示可以使用的密码系统的类型的信息(H()列表)、公开密钥(Kcp)以及当启用密钥加密时随机数(Nr)。接着,CPU60基于读出的状态信息,来检查密钥加密是启用的还是禁用的(步骤S132)。
当没有启用密钥加密时(步骤S132,没有使用),主机装置1实际上从主机控制器65向存储卡2传送用户密钥Ku的明文(步骤S133)。
当启用密钥加密时(步骤S132),主机装置1的CPU60基于在步骤S131中读取的H()列表来确定用于使用的转换函数H(),以及确定对应于所确定的函数的代码Cch。接着,CPU通过使用转换函数H()使用随机数Nr来加密用户密钥,以计算挑战数Nt(步骤S134)。也就是说,根据Nt=H(Nr,Ku)来计算挑战数Nt。
接着,主机装置1从主机控制器65向存储卡2传送所确定的代码Cch和所计算的挑战数Nt(步骤S133)。这些信息被保存在存储卡2的寄存器73中。
注意的是,当确定一种类型的可以使用的密码系统时,不必识别该系统,以及因此代码Cch不是必须被发送。此外,即使当启用密钥加密时,不是必须执行主密钥的加密。在这种情况下,可以事先确定例如在主机装置1和存储卡2之间主密钥没有被加密。在这种情况下,具有的优点是,能够容易地实现挂载锁定/解锁功能。
随后,主机装置1向存储卡2发出解锁操作的执行命令(UNLOCK(U),UNLOCK(M))。响应于这个命令,在存储卡2中执行解锁操作(步骤S136)。后面,将参照图20来描述在存储卡2中的处理。
当存储卡2的忙状态被清除时,主机装置1识别在存储卡2中的处理完成了。然后,主机装置1从存储卡2的寄存器72读取状态信息(步骤137)。当在状态信息中包含的状态信息指示存储卡2在解锁状态中时(步骤S138,解锁),主机装置1识别解锁操作是成功的。在另一方面,当状态信息指示存储卡2在锁定状态中时(步骤S138,锁定),主机装置1识别解锁操作已经失败。
2.5.3存储块2的操作
接着,将参照图20来描述在以上步骤S136中的存储卡2的操作。图20是示出在存储卡2中的处理的流程图。
如在该图中示出的,当从主机装置1接收到解锁操作(UNLOCK(U)、UNLOCK(M))的执行命令时,例如,存储卡2的CPU70判断解锁操作是使用用户密钥的解锁操作,还是使用主密钥的解锁操作(步骤S141)。
在使用用户密钥的解锁操作的情况下(步骤S141,否:Ku或Nt),CPU70判断是否启用密钥加密(步骤S142)。当启用密钥加密时(步骤S142,启用:Nt),CPU70确定对应于从主机装置1接收的代码Cch的转换函数H(),以及通过使用转换函数H(),在非易失性存储器75中保存的加密的用户密钥Kuf,以及作为状态信息被保存在寄存器72中的随机数Nr,还计算预期值Ne(步骤S143)。更具体地,根据Ne=H(Nr,F(Kuf,"Dec"))来计算预期值Ne。接着,CPU70将从主机装置1接收的挑战数Nt与所计算的预期值Ne进行比较(步骤S144)。
作为比较的结果,当两个值匹配时(步骤S147,是),CPU70释放存储卡2的锁定状态以将该卡改变到解锁状态(步骤S148)。然后,CPU70在寄存器72中存储作为状态信息的指示状态的信息,以及清除忙状态以结束解锁操作。当多个用户密钥被注册时,多个密钥Kuf被存留,以及因此需要计算多个值Ne。在这种情况下,匹配Nt的Ne是目标用户密钥。当Ne中一个Ne与Nt匹配时,可以省略剩余密钥Ne的计算/比较。
作为步骤S144的比较的结果,当两个值不匹配(关于所有的值Ne)(步骤S147,否)时,CPU70实际上将存储卡2维持在锁定状态中(步骤S149)。然后,CPU70清除忙状态以结束解锁状态。
当在步骤S142中禁用密钥加密时(步骤S142,禁用:Ku),CPU70通过使用转换函数F()来加密所接收的明文用户密钥Ku以计算预期值Kuv(步骤S145)。更具体地,根据Kuv=F(Ku,"Enc")来计算预期值Kuv。然后,CPU70将从非易失性存储器75读取的加密的用户密钥Kuf与所计算的预期值Kuv进行比较(步骤S146)。当两个值匹配时(步骤S147,是),处理前进到步骤S148,以及当值不匹配时(步骤S147,否),处理前进到步骤S149。当用户密钥被注册时,多个密钥Kuf被存留,以及因此,将这些密钥Kuf与所计算的值Kuv进行比较,当密钥Kuf中一个Kuf与Kuv匹配时,可以省略剩余密钥(Kuf)的计算/比较。
在步骤S141中,当所接收的密钥是主密钥(步骤S141,是:Km)时,CPU70通过使用转换函数F()将所接收的明文主密钥Km转换以计算比较值Kmv(步骤S150)。更具体地,根据Kmv=F(Km,"Enc")来计算比较值Kmv。然后,CPU70将从非易失性存储器75读取的主密钥的预期值Kmf与所计算的比较值Kmv进行比较(步骤S151)。当两个值匹配时(步骤S152,是),CPU70擦除在非易失性存储器75中记录的所用用户密钥Kuf(步骤S153),以前进到步骤S148。当值不匹配时(步骤S152,否),处理前进到步骤S149。
2.5.4"UNLOCK(U)"和"UNLOCK(M)"序列
接着,将描述在以上"UNLOCK(U)"和"UNLOCK(M)"操作的执行中的序列。
图21示出了启用密钥加密的情况下的"UNLOCK(U)"的序列。
如在该图中示出的,主机装置1首先从例如从存储卡2的寄存器72来读取卡信息(加密的协议/算法(H()列表)或随机数Nr)。然后,主机装置1从H()列表选择可以使用的转换函数H(),以及通过使用随机数Nr来加密用户密钥Ku,以计算挑战数Nt(=H(Nr,Ku))。此外,主机装置1发出"UNLOCK(U)"命令。然后,主机装置1向存储卡2传送指示所选择的H()的代码Ccg和挑战数Nt,以及向存储卡2传送UNLOCK(U)命令。
存储卡2读取存储在非易失性存储器75中的加密的用户密钥Kuf,以及通过转换函数F()来解密(解码)该密钥,以获得明文用户密钥Ku。然后,存储卡2基于所接收的代码Cch来选择转换函数H(),以及计算预期值Ne(=H(Nr,F(Kuf,"Dec")))。
然后,存储卡2将挑战Nt与预期值Ne进行比较。如在“清除用户密钥”序列中描述的,当多个加密的用户密钥Kuf被存储在非易失性存储器75中时,针对每个密钥来计算预期值Ne,以及将每个预期值Ne与挑战数Nt进行比较。然后,当预期值中的一个预期值匹配挑战数Nt时,存储卡2认证主机装置1。然后,存储卡2从锁定状态改变到解锁状态。然后,存储卡2向主机装置1通知完成至解锁状态的改变。
图22示出了禁用密钥加密的情况下的"UNLOCK(U)"序列。
指示禁用密钥加密的状态信息被存储在寄存器72中,但是假定主机装置1已经读取了这个寄存器,以及因此从图22省略了状态信息。如在该图中示出的,主机装置1首先向存储卡2发出"UNLOCK(U)"命令。然后,主机装置1首先向存储卡2传送UNLOCK(U)连同明文用户密钥Ku。
然后,存储卡2通过使用转换函数F()来加密所接收的明文用户密钥Ku,以获得比较值Kuv。然后,存储卡2将比较值Kuv与保存在非易失性存储器75中的加密的用户密钥Kuf进行比较,然后,当任何Kuf匹配Kuv时,存储卡2认证主机装置1。然后,存储卡2从锁定状态改变到解锁状态。然后,存储卡2向主机装置1通知完成至解锁状态的改变。
注意的是,尽管在该图中没有示出,但是也可以有一种方法,在该方法中,根据Kuv=F(Kuf,"Dec")来计算Kuv,并且将Kuv与Ku进行比较。
图23示出了特别是在主密钥没有被加密的情况下的"UNLOCK(M)"的序列。
如在该图中示出的,主机装置1首先发出"UNLOCK(M)"命令。然后,主机装置向存储卡2传送"UNLOCK(M)"命令连同明文主密钥Km。
然后,存储卡2通过使用转换函数F()来转换所接收的主密钥Km,以获得比较值Kmv。然后,存储卡2将保存在非易失性存储器75中的预期值Kmf与所计算的比较值Kmv进行比较,然后,当预期值Kmf匹配Kmv时,存储卡2认证主机装置1。然后,存储卡2擦除在非易失性存储器75中保存的所有用户密钥Kuf,以及从锁定状态改变到解锁状态。然后,存储卡2向主机装置1通知完成至解锁状态的改变。
注意的是,尽管在该图中没有示出,但是也可以有一种方法,在该方法中,根据Kmv=F(Kmf,"Dec")来计算Kmv,并且将Kmv与Km进行比较。
2.5.5当主密钥丢失时的解锁操作
接着,将描述图18的步骤S125,即在主密钥Km丢失的情况下的解锁操作。
如上所述,当用户密钥Ku和主密钥Km两者丢失时,能够通过初始化在存储卡2中的数据将存储卡2改变到解锁状态。图24示出了在主机装置1和存储卡2中的处理的序列。
主机装置1,其已经从用户接受用于数据的初始化和解锁存储卡2的命令,向存储卡2发出擦除命令。这个擦除命令是一种类型的解锁命名,其与通常的存储器数据擦除命令分别被准备。
然后,存储卡2擦除存储在非易失性存储卡75中的所有用户密钥Kuf。此外,存储卡2擦除在管理区50中的文件系统信息的一部分。在用户数据区,擦除在用户数据区中存储的信息的一部分,或对该信息置乱以缩短用于禁用该数据的时间。关于重要数据,主机装置个体地加密文件,从而能够避免数据的泄露。然后,存储卡2从锁定状态改变到解锁状态。随后,存储卡2向主机装置1通知完成至解锁状态的改变。
存储卡,其已经接收了擦除命令,擦除在图2的FAT1或FAT2附近的数据,以便存储卡2的数据不能从主机装置1读取。主机装置1通常向这个卡辨识为“未格式化的卡”。当该卡再次被格式化时,该卡能够再次是可用的。在存储卡2中,文件系统管理区50没有严格地必须被擦除,以及管理区50的所需要的大小能够大致地从存储容量来预测。因此,可以擦除包含至少FAT1和FAT2的区域的数据,或可以覆写指示没有使用的FAT代码。因此,存储卡2不必识别文件系统的格式。文件系统不仅由FAT而且有时由位图来构成。
2.6锁定操作
接着,将描述根据本实施例的锁定操作,锁定操作用于在存储系统中将在解锁状态中的存储卡2改变到锁定状态。
2.6.1主机装置1的操作
关于根据本实施例的锁定操作,将参照图25首先描述在主机装置1中的处理。图25是示出在锁定操作中主机装置1的处理的流程图。注意的是,当存储卡2在解锁状态中时,锁定操作是可以执行的。
首先,主机装置1的CPU60从存储卡2的寄存器72读取状态信息,以及确认存储卡2在解锁状态中。随后,CPU60发出锁定命令,以及从主机控制器65向存储卡2传送锁定命令。
然后,在存储卡2中执行锁定操作(步骤S161)。然后,当忙信号被清除并且通知在存储卡2中的锁定操作的结束时,主机装置1的CPU60再次从存储卡2读取状态信息(步骤S162)以及检查锁定操作是否是成功的(步骤S163)。
当被包含在状态信息中的状态信息指示存储卡2在锁定状态中时,锁定操作是成功,以及如果不是这样,则锁定操作失败。
2.6.2存储卡2的操作
接着,将描述存储卡2的操作。图26是示出在存储卡2中的处理的流程图,以及对应于在图25中在步骤S161中执行的处理的内容。
如在该图中示出的,存储卡2的CPU70判断用户密钥是否被注册(步骤S171)。可以通过检查用户密钥Kuf是否被保存在非易失性存储器75中,来执行这个判断,或可以通过检查寄存器72的状态信息来执行这个判断。
当用户密钥被注册时(步骤S171,是),CPU70将存储卡2改变到锁定状态(步骤S172)。当用户密钥没有被注册时(步骤S171,否),CPU70使存储卡2维持在解锁状态中(步骤S173)。
随后,CPU70更新寄存器72的状态信息,清除忙状态,以及向主机装置1通知锁定操作的结束。
3.操作的特定示例
现在将参照图27至图32来描述以上存储系统的用户密钥注册操作的特定示例。图27至图32是存储系统的示意性视图,以及依次示出了用户密钥被注册在两个主机装置1-1和1-2中以及然后主机装置1-1执行解锁操作的行为。
如在图27中示出的,第一存储卡2-1连接到第一主机装置1-1,在第一存储卡1-1中用户密钥没有被注册。如在图28中示出的,存储卡2-1在解锁状态中。因此,存储卡2-1执行在解锁状态中的初始化,以及改变到传输状态。接着,第一主机装置1-1执行配置操作的“设置用户密钥”功能,以注册第一用户密钥Ku1。第一主机装置1-1加密所注册的第一用于密钥Ku1,以及在第一主机装置1-1的寄存器63中存储加密的第一用户密钥Kuf1(=F(Ku1,"Enc"))。此外,由存储卡2-1加密的加密的第一用户密钥Kuf1被存储在存储卡2-1的非易失性存储器75中。然后,第一主机装置1-1执行配置操作的“启用配置模式”功能,以开启配置模式,以便由第二主机装置1-2来注册用户密钥。
接着,如在图29中示出的,存储卡2-1连接到第二主机装置1-2。如在图30中示出的,用户密钥Ku1已经被注册在存储卡2-1中,以及因此存储卡2-1在锁定状态中。因此,存储卡2-1执行在锁定状态中的初始化,以及改变到传输状态。当存储卡2-1改变到传输状态时,尽管存储卡2-1在锁定状态中,但是第二主机装置1-2能够读取文件系统信息的至少一部分。因此,第二主机装置1-2能够识别存储卡2-1以及能够向作为驱动器的存储卡2-1分配驱动器号。此外,在存储卡2-1中,开启配置模式,以及因此第二主机装置1-2能够执行配置操作。因此,第二主机装置1-2执行配置操作的“设置用户密钥”的功能,以注册第二用户密钥Ku2。第二主机装置1-2加密所注册的第二用户密钥Ku2,以及在第二主机装置1-2的寄存器63中存储加密的第二用户密钥Kuf2(=F(Ku2,"Enc"))。此外,由存储卡2-1加密的加密的第二用户密钥Kuf2被存储在存储卡2-1的非易失性存储器75中。第二用户密钥Ku2可以与第一用户密钥Ku1相同或不同。通常,当在第一主机装置1-1和第二主机装置1-2之间不能执行信息交换时,使用不同的密钥(使用相同的密钥是困难的)。然后,第二主机装置1-2执行配置操作的“禁用配置模式”功能,以关闭配置模式。
接着,如在图31中示出的,存储卡2-1连接到第一主机装置1-1。然后,如在图32中示出的,用户密钥Ku1和ku2已经被注册,以及因此存储卡2-1在锁定状态中。然而,类似于第二主机装置1-2,第一主机装置1-1能够将在锁定状态中的存储卡2-1识别为驱动器。然后,第一主机装置1-1通过使用在寄存器63中存储的用户密钥Ku1来执行解锁操作,以及将存储卡2-1从锁定状态改变到解锁状态。存储卡2-1将这两个注册的用户密钥与Kuf1进行比较,以及当这些密钥中的一个密钥匹配时(在这个实例中,Ku1),该卡改变到解锁状态。因此,用户能够自由地访问存储卡2-1。
在图32中,如果用户密钥Ku1从寄存器63丢失并且不能执行使用用户密钥Ku1的解锁操作,则使用主密钥的解锁操作是可以执行的。在这种情况下,被存储在存储卡2-1中的两个用户密钥Kuf1和Kuf2都被擦除。
图33示出了一种情况,在该情况中,第二存储卡2-2被注册在第一主机装置1-1中。第一主机装置1-1能够通过使用存储卡2-2的唯一信息来辨识该卡(例如,使用序列号或诸如此类,以及在存储卡中准备读取序列号的命令)。因此,第一主机装置1-1能够辨识第一存储卡2-1和第二存储卡2-2,以及能够向各自卡分配不同的用户密钥Ku。此外,当主机装置通过卡的唯一信息来辨识存储卡时,主机装置能够辨识用于将存储卡设置为解锁状态的特定密钥。
4根据本实施例的效果
在根据本实施例的存储系统中,能够增强存储卡的便利性,以及能够增强安全水平。在下文中,将详细描述本效果。
4.1即使在锁定状态中存储卡能够被挂载为驱动器
在根据本实施例的存储卡中,如在以上1.4的段落中描述的,尽管存储卡在锁定状态中,但是能够读取文件系统信息。因此,主机装置1能够识别在锁定状态中的存储卡2,以及能够向作为驱动器的该存储卡分配驱动器号。也就是说,针对将该卡识别为驱动器的目的,不必执行解锁操作。因此,能够简化将存储卡2挂载为驱动器的过程,以及能够增强用户的便利性。
4.2共同的初始化序列
此外,在根据本实施例的存储系统中,如在以上2.1的段落中描述的,在完成存储卡2的初始化序列以及存储卡2改变到传输状态后,执行锁定操作或解锁操作。也就是说,初始化序列与锁定/解锁操作完全分开,以及首先执行初始化序列。例如,在下文中,已经有如下问题:在锁定状态中,总线带宽不能从1比特切换到4比特,以及因此不能设置传输模式,直到存储卡被设置为解锁状态。然而,解决了此类问题。此外,在本实施例中,控制命令是可以执行的,而不管是锁定状态还是解锁状态。
因此,在具有锁定/解锁功能的存储系统以及没有该功能的存储系统中,初始化序列能够被共同使用。因此,促进了存储系统的设计。此外,没有考虑存储卡2是否使用锁定/解锁功能,任何类型的主机装置1能够使用存储卡2,这能够增强用户的便利性。
此外,如参照图10描述的,大致在三个步骤中完成了用户密钥的注册处理。也就是说,有以下三个步骤:从存储卡2读取各种信息,向存储卡2传送用户密钥,以及向主机装置1通知注册完成。因此,相当大地简化了处理。
4.3安全水平的提升
此外,在根据本实施例的存储系统中,可以在主机装置1和在加密的状态中的存储卡2之间传送/接收用户密钥。另外,关于所使用的函数的信息不指示函数自身,而是指示函数的选择信息的代码Cch或Ccg。因此,即使在这些信息被泄露了时,能够防止由非法主机装置的伪装,以及能够增强抗篡改,从而增强安全水平。
此外,如在以上1.5.2的段落中描述的,能够由管理实用工具来准备用户密钥Ku。管理实用工具由CPU60来执行,以担当用户密钥准备构件。然后,管理实用工具能够准备用户密钥,该用户密钥针对主机装置是唯一的并且具有不能通过人的手工输入而输入的口令长度水平。基本上,口令的安全水平明显地依赖于口令长度。因此,与常规技术相比,通过使用管理实用工具能够显著地提升安全水平。
此外,能够针对每个主机装置和每个存储卡个体地设置用户密钥。这个方面还有助于安全水平的提升。
另外,通过使用管理实用工具,每当存储卡2连接到主机装置1时,不必要求用户输入口令。也就是说,在主机装置1和存储卡2之间执行自动认证,以及当存储卡被认证时,在锁定状态中的存储卡2自动地改变到解锁状态。因此,用户不必识别存储卡2是在锁定状态中,以及能够在存储卡2连接到主机装置1后立即自由地访问存储卡2。此外在这个方面中,能够增强用户的便利性。而且,一个主机装置能够管理多个卡的用户密钥。在这种情况下,主机装置1通过读取每个卡的唯一信息(例如,序列号)来识别卡,以及通过将序列号与用户密钥关联来管理卡。
4.4口令丢失对策
在根据本实施例的存储系统中,准备了用户密钥Ku。然后,用户密钥的注册启用存储卡2的锁定操作。此外,当用户密钥能够被注册时,使用权可以被设置给主机装置1。然后,用户密钥还用于将在锁定状态中的存储卡2改变到解锁状态。
此外,在针对用户密钥丢失的情况的准备中,在本实施例中准备了主密钥Km。例如在存储卡2的出厂时,主密钥Km被设置,以及禁止由用户来改变。另外,通过使用主密钥,能够将存储卡2改变到解锁状态,同时擦除所有注册的用户密钥。例如,在存储器出厂时,主密钥被编程,以及在印刷状态中被售卖。当用户将主密钥存储在家中而不携带该密钥时,在通常的使用环境中没有任何安全问题。
4.5缩短“强制擦除”时间段的时间
此外,如在以上2.5.5的段落中描述的,当用户密钥和主密钥两者都丢失时,通过执行擦除操作,存储卡2能够被改变到解锁状态。
在这种情况下,在存储卡2中,从非易失性存储器75擦除所有用户密钥和文件系统信息的一部分。擦除用户数据区的一部分,或数据被置乱,从而能够缩短用户数据区的禁用时间,以及能够防止主机装置1在长时间段上处于冻结状态。注意的是,在这种情况下,要求格式化以将存储卡2设置为能够使用的状态。在用户数据区中的数据没有被完全擦除,留下数据块,但是能够例如通过由用户的个体加密来保护个体的数据块。
4.6配置操作的扩展
当配置操作命令被扩展以例如通过特定用户密钥将存储卡设置为解锁状态时,添加以下设置是可能的:仅允许读取并且写入是不可能的。
5.修改
如上所述,在设备中,主机装置、主机系统、以及根据以上实施例的存储系统,能够增强用户的便利性。
注意的是,以上实施例不是仅一个实施例,而是可以多方面地被修改。也就是说,以上一个实施例包含多个方面,以及可以执行多个方面中的仅一部分。
5.1第一修改
将描述第一修改。图34是根据本修改的存储系统的框图。如在该图中示出的,本修改对应于结构,在该结构中,固件还包含在图5中的有效标志。有效标志是指示在非易失性存储器75中的用户数据区(从外围能够访问的区域)的数据是有效的还是无效的的信息。
将参照图35来描述有效标志。图35是在存储卡2中的固件71和在非易失性存储器75中的用户数据区的示意图。图35将以上提及的MBR和BPB示出为启动扇区。
如在该图中示出的,在非易失性存储器75中,从外部能够访问的用户数据区(文件系统管理区50和文件系统数据区51)被分割成管理单元MUs(MU1至MUn)并且被管理。n是2或更大的自然数。以管理单元为单元来执行数据的读取和写入。一个管理单元对应于一个或多个物理单元。
此外,存储卡2包含针对每个管理单元MU的有效标志VF(VF1至VFn)。有效标志VF被存储在区域中,数据被保存在该区域中,即使当电源被关断时,例如在非易失性存储器中。然后,有效标志VF指示对应的管理单元MU是否保存有效值,即对应管理单元Mu的区域是否由主机装置1识别为数据擦除区。
图36是示出当存储卡从主机装置1接收到擦除、写入或读取访问时存储卡2的操作的流程图。这些操作主要由CPU70的控制来执行。
如在该图中示出的,当来自主机装置1的访问是数据擦除指令时(步骤S180,是),CPU70执行主密钥的认证操作(步骤S181)。这个认证处理类似于例如参照图23描述的处理。也就是说,例如,存储卡2请求主机装置1输入主密钥。响应于这个请求,主机装置1向存储卡2传送明文主密钥Km。然后,存储卡2通过转换函数F()将所接收的主密钥Km转换,以获得比较值Kmv。然后,存储卡2将存储在非易失性存储器75中的预期值Kmf与所计算的比较值Kmv进行比较。然后,当预期值Kmf匹配Kmv时,存储卡2认证主密钥Km。
当主密钥被认证时(步骤S182,是),CPU70将所有有效标志VFs设置为“0”(步骤S183)。然而,存储在非易失性存储器75的管理单元MU中的实际数据自身不被擦除。注意的是,此处描述的词语“擦除”与先前存储的用户数据的擦除有关以及不意味着是否执行非易失性存储器的擦除命令。
当主密钥的认证失败时(步骤S182,否),不执行擦除(步骤S184),以及例如,向主机装置1传送状态错误。
接着,将描述来自主机装置1的访问是写入指令的情况(步骤S180,否,以及步骤S185,是)。在这种情况下,CPU70检查对应于针对所访问的区域的管理单元MU的有效标志VF(步骤S186)。当有效标志VF是“0”时,意味的是,在从主机装置1看到的管理单元MU中,数据被擦除(实际上,该数据被留在管理单元MU中)。因此,CPU70实际上擦除在管理单元MU中的数据(步骤S187)。然后,CPU70在管理单元MU中,写入从主机装置1接收的写入数据(步骤S188),以及CPU将对应的有效标志VF设置为“1”(步骤S189)。
当在步骤S186中有效标志VF是“1”时,不要求擦除,以及写入数据被写入在对应的管理单元MU中(步骤S190)。有效标志VF保持为“1”。
接着,将描述来自主机装置1的访问是读取指令的情况(步骤S180,否,以及步骤S185,否)。在这种情况下,CPU70检查对应于针对所访问的区域的管理单元MU的有效标志VF(步骤S191)。当有效标志VF是“0”时(步骤S191,是),CPU70不读取来自非易失性存储器75的数据,而是向主机装置1输出预定的固定数据(数据,在该数据中,所有比特是“1”,或数据,在该数据中,所有比特是“0”)(步骤S192)。
在另一方面,当有效标志VF是“1”时(步骤S191,否),CPU70读取来自非易失性存储器75的对应的管理单元MU的数据,以及向主机装置1输出这个数据(步骤S193)。
根据以上结构,为了执行擦除操作,必须通过了主密钥的认证。这可以防止存储卡2被不同于存储卡2的所有者的人来初始化(图18的流程图示出了实施例,在该实施例中,当忘记了主密钥时,能够通过擦除操作来擦除数据,但是本修改的不同在于:主密钥用于允许擦除)。
此外,根据本修改,当接收到数据的擦除命令时,不擦除存储在非易失性存储器75中的实际数据。而是,CPU70通过使用有效标志VF来管理擦除目标数据。以这种方式,不要求实际数据擦除操作,以及因此能够增强存储卡2的操作速度。此外,当接收到数据读取请求时,CPU70首先参考有效标志VF。然后,当VF=“0”时,固定数据被输出而不读取来自非易失性存储器75的数据。因此,即使当实际数据被留在非易失性存储器75中时,能够防止这个数据被错误的读取。
期望的是,MBR和BPB例外地是可以读取的而不管有效标志。在这种情况下,与管理区50的引导(leading)地址区或管理区50的一部分相关联的有效标志被固定为“1”或从“有效标志管理”被排除。
5.2其它修改
修改不局限于以上修改。例如,可以独立地实现一个方面,在该方面中,文件系统信息的一部分在锁定状态中是可读的。此外,七个功能被包含在配置操作中的实例已经作为示例被描述,但是可以实现这些功能中的仅一部分。
此外,当事先确定用于在主机装置1和存储卡2之间使用的一种类型的加密系统时,不必传送代码Cch或Ccg,以及存储卡不必保存Gh()列表和H()列表。另外,加密系统不局限于在以上实施例中描述的系统,以及可以应用其它各种系统。
此外,用于由存储卡2向主机装置1通知各种操作的结束的手段不局限于忙信号,以及可以使用另外的信号。当忙状态完成了时,该卡可以向主机装置发送分组以通知该主机装置。
另外,关于在配置操作中的用户密钥的处理,三种类型,即注册、删除和检查,已经被示例化,但是可以包含用户密钥更改功能。在这种情况下,主机装置1通过使用改变目标用户密钥来执行认证操作,以及然后主机装置1可以发出改变命令连同新的用户密钥。新的用户密钥可以由管理实用工具来准备,或由用户来输入。此外,用户密钥可以被加密,或可以不被加密。
此外,在以上实施例中,作为存储设备的示例,SD存储卡已经被描述。然而,存储设备不局限于SD存储卡,以及可以是任何存储介质。此外,连接到主机装置1的设备的数量不局限于一个,以及可以同时连接两个或更多设备。在这种情况下,主机装置1个体地执行针对每个设备的用户密钥注册操作。此外,文件系统不局限于FAT文件系统。存储卡2不必识别文件系统,以及因为可以使用在锁定状态中被限制读取的区域或由擦除命令擦除的区域,从存储容量预测的区域。不必严格地确定这些区域。
此外,在需要时可以改变在以上实施例中描述的流程图和序列图中的顺序,以及可以同时执行多个处理步骤。另外,主机装置1和存储卡2的结构不局限于图1和图5。只要能够实现在以上实施例中描述的功能,则结构中的每个不局限于硬件或软件,以及对结构没有特别的限制。
以上实施例包括以下方面。
[1]一种设备包括:
半导体存储器(在图1中31)包含从外部能够访问的第一区域和第二区域;以及
控制器(在图1中32),其控制所述半导体存储器,
其中所述设备包含解锁状态,在所述解锁状态中允许从所述第一区域和所述第二区域的读取,以及锁定状态,在所述锁定状态中,允许从所述第一区域的读取,以及禁止从所述第二区域的读取,
所述第一区域存储文件系统信息的至少一部分(在图2中的FAT和DIR条目),以及
在所述锁定状态中,从外部能够读取所述文件系统信息的所述至少一部分(图3)。
[2]根据[1]所述的设备,
其中所述半导体存储器被配置为保存由通过第一密码函数(在图9中F())来加密在所述设备中注册的用户密钥所准备的至少一个加密的用户密钥(在图5、9中的Kuf),
当所述用户密钥被注册时,在通电后所述控制器立即执行在所述锁定状态中的初始化(图30),
当所述用户密钥没被注册时,在通电后所述控制器立即执行在所述解锁状态中的初始化(图28),
当所述用户密钥被注册时以及当所述用户密钥没被注册时,按照相同的序列来执行所述初始化(图6),
在所述初始化中,选择总线传输模式中的任何一个总线传输模式,所述总线在主机和卡之间连接,以及
在所述锁定状态中,在所述设备的初始化后,从外部能够访问所述文件系统信息的所述至少一部分(图3)。
[3]根据[1]或[2]所述的设备
其中在所述解锁状态中,配置操作启用所述用户密钥的注册、改变和删除,以及允许从所述第一区域和所述第二区域两者的读取(图3),
所述锁定状态包含第一模式(配置模式开启)和第二模式(配置模式关闭),以及在所述第一模式中,所述配置操作允许所述用户密钥的注册、修改和删除,以及禁止至所述解锁状态的改变,以及在所述第二模式中,所述配置操作禁止所述用户密钥的注册、修改和删除,以及使得能够至所述解锁状态的改变(图4)。
[4]根据[1]至[3]所述的设备
其中所述控制器将从外部接收的密钥与在所述设备中注册的所述用户密钥进行比较(在图20中的S144、S146),
当比较结果匹配时,所述设备从所述锁定状态改变到所述解锁状态(在图20中的S148)。
[5]根据[4]所述的设备
其中所述半导体存储器存储主密钥(在图5中的Kmf),所述主密钥事先被注册并且不能通过所述配置操作来改变,
所述控制器将从外部接收的所述密钥与所述主密钥进行比较(在图20中的S151),
当比较结果匹配时,所述控制器删除所注册的用户而不擦除用户数据区(在图20中的S153),以及所述设备从所述锁定状态改变到所述解锁状态(在图20中的S148)。
[6]根据[1]或[2]所述的设备
其中用于在所述锁定状态和所述解锁状态之间改变所述设备的用户密钥在所述设备中是能够注册的,
当所述用户密钥没被注册时,所述控制器包含设置密钥加密的启用/禁用的功能,以及当所述用户密钥被注册时,该设置是固定的(图16),
所述控制器包含第二密码函数(在图8中的Gc())以及第三密码函数(在图20中的H()),它们在密钥加密中是能够使用的,
所述第二密码函数(在图8中的Gc())用于所述用户密钥的注册,以及第三密码函数(在图20中的H())用于所述用户密钥的认证,以及
所述用户密钥由所述第二密码函数或第三密码函数来加密,以及从外部被传送给所述设备(图10,14)。
[7]根据[6]所述的设备
其中针对认证以删除所述用户密钥的主密钥在所述设备中是能够注册的,以及
即使当密钥加密被设置为启用时,所述主密钥不被加密,以及被传送给所述设备(图23)。
[8]一种主机装置,其能够访问包含锁定状态和解锁状态的设备,所述主机装置包括:
主机存储器(在图5中63),其被配置为存储用户密钥;以及
主机控制器(在图5中60、65),其控制所述设备,
其中,所述控制器初始化所述设备,以及然后从所述设备读取文件系统信息的至少一部分而不管所述设备在所述锁定状态中还是在所述解锁状态中,以识别所述设备是格式化的存储设备,
所述主机控制器初始化所述设备,以及然后检查所述设备是在所述锁定状态中还是在所述解锁状态中,以及
当所述设备在所述锁定状态时,所述控制器传送所述用户密钥以将所述设备改变到所述解锁状态。
[9]根据[8]所述的主机装置,
其中当所述文件系统信息的所述至少一部分被读取以及所述设备被识别为格式化的存储设备时,
驱动器号被分配给作为驱动器的所述设备以使得能够从应用至作为所述驱动器的设备的访问。
[10]根据[8]或[9]所述的主机装置,
其中当所述主机控制器将所述用户密钥传送给所述设备时,
所述主机控制器选择由所述设备支持的第三密码函数中的一个第三密码函数,
通过使用所选择的密码函数(在图19中的H())来加密所述用户密钥,以及
传送所加密的用户密钥(在图19中的S134-135)。
[11]根据[10]所述的主机装置,
其中所述主机控制器准备所述用户密钥,以及以非易失性的方式在主机存储器(在图5中63)中存储通过使用转换函数(在图10中的F())加密所准备的用户密钥所获得的加密的用户密钥(在图5中的Kuf),以及
所述主机控制器在所述主机存储器中存储所加密的用户密钥,以及然后将所述用户密钥传送给所述设备。
[12][1]的设备,
其中所述控制器管理作为一组单位区域的所述第一区域和所述第二区域,以及通过使用针对所述单位区域中的每个单位区域的标志来管理除了引导地址区之外的第一区域以及第二区域,以及
当所述控制器接收到来自外部的数据擦除命令时,所述控制器将所述标志设置为值,该值指示数据已经被擦除而没有擦除在所述第二区域中的数据。
[13][12]的设备,
其中当所述控制器接收到擦除命令时,所述控制器请求外部来认证主密钥,以及
当所述主密钥被认证时,所述控制器设置所述标志。
[14][12]的设备,
其中当所述控制器从外部接收数据写入命令时,所述控制器检查所述标志,以及
当所述标志被设置时,所述控制器擦除在所述第二区域的对应区域中的数据,以及然后将数据写入该区域。
[15][12]的设备,
其中当所述控制器从外部接收数据读取命令时,所述控制器检查所述标志,以及
当所述标志被设置时,所述控制器将固定数据输出给外部。
[16]一种主机系统包括:
第一主机装置(在图27中1-1)包含在[8]中所述的主机装置;以及
第二主机装置(在图27中1-2)包含在[8]中所述的主机装置,
其中所述第一主机装置向所述设备设置第一用户密钥,以及启用针对在锁定状态中的设备的用于注册用户密钥的模式(在图27中的配置模式)(图28),
第二主机装置初始化所述设备,设置第二用户密钥,以及禁用该模式,在所述设备中由所述第一主机装置启用了该模式(图30),以及
当该模式被禁用时,该设备被设置为能够从锁定状态改变到解锁状态(图32)。
[17]根据[16]的主机系统,
其中设置了第一用户密钥和第二用户密钥的设备能够由第一主机装置和第二主机装置通过分别使用第一用户密钥和第二用户密钥的认证操作来使用。
[18]一种存储系统包括:
在[1]中所阐述的设备(在图5中2);以及
在[8]中所阐述的主机装置(在图5中1),
其中当所述用户密钥被注册时,
所述主机装置生成所述用户密钥,通过使用所述主机装置的第一密码函数来加密所述用户密钥,将加密的用户密钥存储在所述主机装置的主机存储器中,以及通过使用第二密码函数(在图10中Gh())和公开密钥(在图10中Kcp)来加密所述用户密钥,以及
所述设备通过使用解码函数(在图10中Gc)和秘密密钥(在图10中的Kcs)来解码由所述第二密码函数和所述公开密钥加密的所加密的用户密钥,通过使用所述设备的第一密码函数(在图10中F())来加密所解码的用户密钥,以及在所述半导体存储器中存储用户密钥。
[19]根据[18]的存储系统,
其中所述主机装置通过使用转换函数(在图5中的F())来解码在所述主机装置的主机存储器中存储的加密的用户密钥(在图5中Kuf)以获得所述用户密钥,以及
所述设备通过使用所述设备的第一密码函数来解码存储在所述设备的半导体存储器中的加密的用户密钥(在图5中Kuf)以获得用户密钥(在图21中Ku=F(Kuf,"Dec"))
[20]一种存储系统包括:
在[1]中所阐述的设备(在图5中2);以及
在[8]中所阐述的主机装置(在图5中1),
其中当所述用户密钥被认证时,
所述主机装置通过使用第三密码函数(在图21中H())和由所述设备提供的随机数(在图21中Nr)来加密所述用户密钥,
所述设备通过使用第三密码函数(在图21中H())、所述随机数(在图21中Nr)、以及存储在半导体存储器中的加密的用户密钥(在图21中Kuf),来认证由所述主机装置加密的用户密钥(在图21中Nt),以及
当所述认证是成功的时,所述设备从锁定状态改变到解锁状态(图21)。
尽管已经描述了某些实施例,但是这些实施例仅是通过示例来呈现,并且不局限于本发明的范围。实际上,本申请中描述的新颖的方法和系统可以以各种其他方式被具体化;此外,在不背离本发明的精神的情况下,可以在本申请中描述的实施例中做出替代和改变。当落入本发明的范围和精神内时,所附权利要求书和它们的等同物旨在覆盖此类形式或修改。
权利要求书(按照条约第19条的修改)
1.一种设备包括:
半导体存储器,包含通过在主机和所述设备之间连接的接口从外部能够访问的第一区域;以及
控制器,其控制所述半导体存储器,
其中所述设备包含解锁状态,在所述解锁状态中,允许访问所述第一区域,以及锁定状态,在所述锁定状态中,禁止访问所述第一区域,
其中所述设备能够在所述设备中保存一个或多个用户密钥,
其中所述设备包含针对注册、改变、以及删除在所述半导体存储器中的用户密钥的配置操作的功能,
在通电后,如果用户密钥中的任何用户密钥被注册,则所述设备在所述锁定状态中,或者如果没有一个用户密钥被注册,则所述设备在所述解锁状态中,
执行初始化序列而不管所述设备在所述锁定状态中还是在所述解锁状态中,以及
其中在所述解锁状态中,所述设备允许所述第一区域的访问以及配置操作的执行,
在所述锁定状态中,所述设备禁止访问所述第一区域以及被配置为在第一模式中或在第二模式中,以及
在所述锁定状态的所述第一模式中,所述设备允许所述配置操作的执行,以及禁止至所述解锁状态的改变,以及在所述锁定状态的所述第二模式中,所述设备禁止所述配置操作的执行,以及当在通过所述接口从外部接收的密钥与在所述设备中注册的用户密钥中的一个用户密钥之间的比较结果匹配时,允许至所述解锁状态的改变。
2.根据权利要求1所述的设备,
其中所述半导体存储器存储主密钥,所述主密钥事先被注册并且不能通过所述配置操作来改变,以及
当在通过所述接口从外部接收的密钥与在所述设备中注册的所述主密钥之间的比较结果匹配时,所述设备删除所注册的用户密钥,以及所述设备从所述锁定状态改变到所述解锁状态。
3.根据权利要求1所述的设备,
其中当用户密钥中的任何用户密钥没有被注册时,使用用户密钥中的一个用户密钥被注册将所述设备指定为密钥加密被启用或被禁用,以及维护密钥加密被启用或禁用的设置,
所述设备能够保存由通过第一密码函数加密用户密钥所准备的加密的用户密钥。
4.根据权利要求3所述的设备,
其中所述控制器包含第二密码函数以及第三密码函数,它们在密钥加密中是能够使用的,
所述第二密码函数用于所述用户密钥的注册,以及所述第三密码函数用于所述用户密钥的认证,以及
所述用户密钥由所述第二密码函数或第三密码函数来加密,以及从外部被传送给所述设备。
5.根据权利要求4所述的设备,
其中当所述密钥加密被设置为启用时,在从外部接收将与用户密钥比较的密钥时,所述设备将来自外部的密钥认为是加密的,以及在从外部接收将与主密钥比较的密钥时,所述设备将来自外部的密钥认为是未加密的而不管所述密钥加密被设置为启用还是禁用。
6.根据权利要求1所述的设备,
其中所述控制器管理作为一组单位区域的所述第一区域,以及通过使用针对所述单位区域中的每个单位区域的标志来管理所述第一区域,
当所述控制器接收到来自外部的数据擦除命令时,所述控制器将所述标志设置为值,该值指示数据已经被擦除而没有擦除在所述第一区域中的数据,以及
当所述控制器接收到来自外部的数据读取命令时,其中所述标志被设置,所述控制器返回不同于在所述第一区域中记录的任何数据。
7.根据权利要求5所述的设备,
其中当成功地完成与主密钥的认证时,所述控制器接受以接收擦除命令。
8.根据权利要求1所述的设备,其中所述半导体存储器还包含从外部能够访问的第二区域,
在所述解锁状态和所述锁定状态中,允许从所述第二区域的读取,以及
所述第二区域存储文件系统信息的至少一部分。
9.根据权利要求1所述的设备,其中在所述初始化序列中,选择总线传输模式中的任何一个总线传输模式,所述总线连接在所述主机和所述设备之间。
10.一种主机装置,其能够访问包含锁定状态和解锁状态的设备,所述主机装置包括:
主机存储器,其被配置为存储用户密钥;以及
主机控制器,其控制所述设备,
其中,所述主机装置初始化所述设备,以及然后检查所述设备是在所述锁定状态中还是在所述解锁状态中,
其中所述设备在所述解锁状态中,所述主机装置向所述设备设置第一用户密钥,以及启用针对在所述锁定状态中的所述设备的用于注册用户密钥的第一模式,
其中由于用户密钥已经设置到所述设备,因此所述设备在所述锁定状态中,具有所述第一用户密钥的所述主机装置将所述第一用户密钥传送给所述设备以将所述设备改变到所述解锁状态,以及如果使用所述第一用户密钥,所述设备改变到所述解锁状态,则启用所述第一模式,以及
其中所述设备在所述锁定状态中和在所述第一模式中,具有第二用户密钥的所述主机装置将所述第二用户密钥注册到在所述第一模式中的所述设备,以及然后禁用所述第一模式。
11.根据权利要求10所述的装置,
其中在所述设备的初始化后,所述控制器从所述设备读取文件系统信息的至少一部分而不管所述设备在所述锁定状态中还是在所述解锁状态中,以识别所述设备是格式化的存储设备。
12.根据权利要求11所述的装置,
其中当所述文件系统信息的所述至少一部分被读取以及所述设备被识别为格式化的存储设备时,
驱动器号被分配给作为驱动器的所述设备以使得能够从应用至作为所述驱动器的设备的访问。
13.根据权利要求10所述的装置,
其中当所述主机控制器将所述用户密钥传送给所述设备时,
所述主机控制器选择由所述设备支持的第三密码函数中的一个第三密码函数,
通过使用所选择的第三密码函数来加密所述用户密钥,以及
传送所加密的用户密钥。
14.根据权利要求13所述的装置,
其中所述主机控制器准备所述用户密钥,以及以非易失性的方式在主机存储器中存储通过使用转换函数加密所准备的用户密钥所获得的加密的用户密钥,以及
所述主机控制器在所述主机存储器中存储所加密的用户密钥,以及然后将所述用户密钥传送给所述设备。
15.一种主机系统,其能够访问包含锁定状态和解锁状态的设备,所述主机系统包括:
第一主机装置;以及
第二主机装置,
其中所述第一主机装置向所述设备设置第一用户密钥,以及启用针对在所述锁定状态中的设备的用于注册用户密钥的模式,
第二主机装置初始化所述设备,设置第二用户密钥,以及禁用该模式,在所述设备中由所述第一主机装置启用了该模式,以及
当该模式被禁用时,所述设备被设置为能够从锁定状态改变到解锁状态。
16.根据权利要求15所述的系统,
其中设置了第一用户密钥和第二用户密钥的设备能够由第一主机装置和第二主机装置通过分别使用第一用户密钥和第二用户密钥的认证操作来使用。
17.一种存储系统包括:
在权利要求1中所阐述的设备;以及
在权利要求10中所阐述的主机装置,
其中当所述用户密钥被注册时,
所述主机装置生成所述用户密钥,通过使用所述主机装置的第一密码函数来加密所述用户密钥,将加密的用户密钥存储在所述主机装置的主机存储器中,以及通过使用第二密码函数和公开密钥来加密所述用户密钥,以及
所述设备通过使用解码函数和秘密密钥来解码由所述第二密码函数和所述公开密钥加密的所加密的用户密钥,通过使用所述设备的第一密码函数来加密所解码的用户密钥,以及在所述半导体存储器中存储所加密的用户密钥。
18.根据权利要求17的系统,
其中所述主机装置通过使用转换函数来解码在所述主机装置的主机存储器中存储的加密的用户密钥以获得所述用户密钥,以及
所述设备通过使用所述设备的第一密码函数来解码存储在所述设备的半导体存储器中的加密的用户密钥以获得所述用户密钥。
19.一种存储系统包括:
在权利要求1中所阐述的设备;以及
在权利要求10中所阐述的主机装置,
其中当所述用户密钥被认证时,
所述主机装置通过使用第三密码函数和由所述设备提供的随机数来加密所述用户密钥,
所述设备通过使用所述第三密码函数、所述随机数、以及存储在所述半导体存储器中的加密的用户密钥,来认证由所述主机装置加密的用户密钥,以及
当所述认证是成功的时,所述设备从锁定状态改变到解锁状态。
Claims (20)
1.一种设备包括:
半导体存储器,包含从外部能够访问的第一区域和第二区域;以及
控制器,其控制所述半导体存储器,
其中所述设备包含解锁状态,在所述解锁状态中,允许从所述第一区域和所述第二区域的读取,以及锁定状态,在所述锁定状态中,允许从所述第一区域的读取,以及禁止从所述第二区域的读取,
所述第一区域存储文件系统信息的至少一部分,以及
在所述锁定状态中,从外部能够读取所述文件系统信息的所述至少一部分。
2.根据权利要求1所述的设备,
其中所述半导体存储器被配置为保存由通过第一密码函数来加密在所述设备中注册的用户密钥所准备的至少一个加密的用户密钥,
当所述用户密钥被注册时,在通电后所述控制器立即执行在所述锁定状态中的初始化,
当所述用户密钥没被注册时,在通电后所述控制器立即执行在所述解锁状态中的初始化,
当所述用户密钥被注册时以及当所述用户密钥没被注册时,按照相同的序列来执行所述初始化,
在所述初始化中,选择总线传输模式中的任何一个总线传输模式,所述总线在主机和卡之间连接,以及
在所述锁定状态中,在所述设备的初始化后,从外部能够访问所述文件系统信息的所述至少一部分。
3.根据权利要求1所述的设备,
其中在所述解锁状态中,配置操作启用所述用户密钥的注册、改变和删除,以及允许从所述第一区域和所述第二区域两者的读取,
所述锁定状态包含第一模式和第二模式,以及
在所述第一模式中,所述配置操作允许所述用户密钥的注册、修改和删除,以及禁止至所述解锁状态的改变,以及在所述第二模式中,所述配置操作禁止所述用户密钥的注册、修改和删除,以及使得能够至所述解锁状态的改变。
4.根据权利要求1所述的设备,
其中所述控制器将从外部接收的密钥与在所述设备中注册的所述用户密钥进行比较,以及
当比较结果匹配时,所述设备从所述锁定状态改变到所述解锁状态。
5.根据权利要求4所述的设备,
其中所述半导体存储器存储主密钥,所述主密钥事先被注册并且不能通过所述配置操作来改变,
所述控制器将从外部接收的所述密钥与所述主密钥进行比较,以及
当比较结果匹配时,所述控制器删除所注册的用户密钥而不擦除用户数据区,以及所述设备从所述锁定状态改变到所述解锁状态。
6.根据权利要求1所述的设备,
其中用于在所述锁定状态和所述解锁状态之间改变所述设备的用户密钥在所述设备中是能够注册的,
当所述用户密钥没被注册时,所述控制器包含设置密钥加密的启用/禁用的功能,以及当所述用户密钥被注册时,所述设置是固定的,
所述控制器包含第二密码函数以及第三密码函数,它们在密钥加密中是能够使用的,
所述第二密码函数用于所述用户密钥的注册,以及所述第三密码函数用于所述用户密钥的认证,以及
所述用户密钥由所述第二密码函数或第三密码函数来加密,以及从外部被传送给所述设备。
7.根据权利要求6所述的设备,
其中针对认证以删除所述用户密钥的主密钥在所述设备中是能够注册的,以及
即使当密钥加密被设置为启用时,所述主密钥不被加密,以及被传送给所述设备。
8.一种主机装置,其能够访问包含锁定状态和解锁状态的设备,所述主机装置包括:
主机存储器,其被配置为存储用户密钥;以及
主机控制器,其控制所述设备,
其中,所述控制器初始化所述设备,以及然后从所述设备读取文件系统信息的至少一部分而不管所述设备在所述锁定状态中还是在所述解锁状态中,以识别所述设备是格式化的存储设备,
所述主机控制器初始化所述设备,以及然后检查所述设备是在所述锁定状态中还是在所述解锁状态中,以及
当所述设备在所述锁定状态时,所述控制器将所述用户密钥传送给所述设备以将所述设备改变到所述解锁状态。
9.根据权利要求8所述的装置,
其中当所述文件系统信息的所述至少一部分被读取以及所述设备被识别为格式化的存储设备时,
驱动器号被分配给作为驱动器的所述设备以使得能够从应用至作为所述驱动器的设备的访问。
10.根据权利要求8所述的装置,
其中当所述主机控制器将所述用户密钥传送给所述设备时,
所述主机控制器选择由所述设备支持的第三密码函数中的一个第三密码函数,
通过使用所选择的第三密码函数来加密所述用户密钥,以及
传送所加密的用户密钥。
11.根据权利要求10所述的装置,
其中所述主机控制器准备所述用户密钥,以及以非易失性的方式在主机存储器中存储通过使用转换函数加密所准备的用户密钥所获得的加密的用户密钥,以及
所述主机控制器在所述主机存储器中存储所加密的用户密钥,以及然后将所述用户密钥传送给所述设备。
12.根据权利要求1的所述的设备,
其中所述控制器管理作为一组单位区域的所述第一区域和所述第二区域,以及通过使用针对所述单位区域中的每个单位区域的标志来管理除了引导地址区之外的第一区域以及第二区域,以及
当所述控制器接收到来自外部的数据擦除命令时,所述控制器将所述标志设置为值,该值指示数据已经被擦除而没有擦除在所述第二区域中的数据。
13.根据权利要求12的所述的设备,
其中当所述控制器接收到擦除命令时,所述控制器请求外部来认证主密钥,以及
当所述主密钥被认证时,所述控制器设置所述标志。
14.根据权利要求12的所述的设备,
其中当所述控制器从外部接收数据写入命令时,所述控制器检查所述标志,以及
当所述标志被设置时,所述控制器擦除在所述第二区域的对应区域中的数据,以及然后将数据写入该区域。
15.根据权利要求12的所述的设备,
其中当所述控制器从外部接收数据读取命令时,所述控制器检查所述标志,以及
当所述标志被设置时,所述控制器将固定数据输出给外部。
16.一种主机系统包括:
第一主机装置,包含在权利要求8中所阐述的主机装置;以及
第二主机装置,包含在权利要求8中所阐述的主机装置,
其中所述第一主机装置向所述设备设置第一用户密钥,以及启用针对在所述锁定状态中的设备的用于注册用户密钥的模式,
第二主机装置初始化所述设备,设置第二用户密钥,以及禁用该模式,在所述设备中由所述第一主机装置启用了该模式,以及
当该模式被禁用时,所述设备被设置为能够从锁定状态改变到解锁状态。
17.根据权利要求16所述的系统,
其中设置了第一用户密钥和第二用户密钥的设备能够由第一主机装置和第二主机装置通过分别使用第一用户密钥和第二用户密钥的认证操作来使用。
18.一种存储系统包括:
在权利要求1中所阐述的设备;以及
在权利要求8中所阐述的主机装置,
其中当所述用户密钥被注册时,
所述主机装置生成所述用户密钥,通过使用所述主机装置的第一密码函数来加密所述用户密钥,将加密的用户密钥存储在所述主机装置的主机存储器中,以及通过使用第二密码函数和公开密钥来加密所述用户密钥,以及
所述设备通过使用解码函数和秘密密钥来解码由所述第二密码函数和所述公开密钥加密的所加密的用户密钥,通过使用所述设备的第一密码函数来加密所解码的用户密钥,以及在所述半导体存储器中存储所加密的用户密钥。
19.根据权利要求18的系统,
其中所述主机装置通过使用转换函数来解码在所述主机装置的主机存储器中存储的加密的用户密钥以获得所述用户密钥,以及
所述设备通过使用所述设备的第一密码函数来解码存储在所述设备的半导体存储器中的加密的用户密钥以获得所述用户密钥。
20.一种存储系统包括:
在权利要求1中所阐述的设备;以及
在权利要求8中所阐述的主机装置,
其中当所述用户密钥被认证时,
所述主机装置通过使用第三密码函数和由所述设备提供的随机数来加密所述用户密钥,
所述设备通过使用所述第三密码函数、所述随机数、以及存储在所述半导体存储器中的加密的用户密钥,来认证由所述主机装置加密的用户密钥,以及
当所述认证是成功的时,所述设备从锁定状态改变到解锁状态。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013129832 | 2013-06-20 | ||
JP2013-129832 | 2013-06-20 | ||
JP2014019731A JP2015026358A (ja) | 2013-06-20 | 2014-02-04 | デバイス、ホスト装置、ホストシステム、及びメモリシステム |
JP2014-019731 | 2014-02-04 | ||
PCT/JP2014/053391 WO2014203558A1 (en) | 2013-06-20 | 2014-02-06 | Device and memory system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105339919A true CN105339919A (zh) | 2016-02-17 |
Family
ID=50391331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480034597.XA Pending CN105339919A (zh) | 2013-06-20 | 2014-02-06 | 设备和存储系统 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20160103625A1 (zh) |
EP (1) | EP3011460A1 (zh) |
JP (1) | JP2015026358A (zh) |
KR (1) | KR20160010605A (zh) |
CN (1) | CN105339919A (zh) |
TW (2) | TW201616390A (zh) |
WO (1) | WO2014203558A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108120A (zh) * | 2016-11-25 | 2018-06-01 | 捷鼎国际股份有限公司 | 数据储存系统及其数据储存方法 |
CN110851887A (zh) * | 2019-10-18 | 2020-02-28 | 浙江大华技术股份有限公司 | 多媒体存储卡的数据保护方法、装置、设备和存储介质 |
TWI690805B (zh) * | 2018-07-12 | 2020-04-11 | 慧榮科技股份有限公司 | 開卡裝置及利用開卡裝置驗證並且啟用一資料儲存裝置之方法 |
CN111128195A (zh) * | 2019-11-29 | 2020-05-08 | 合肥讯飞读写科技有限公司 | 智能演示器的声纹控制方法、智能演示器和设备 |
CN111523155A (zh) * | 2019-02-05 | 2020-08-11 | 西部数据技术公司 | 解锁在安全数字操作模式下锁定的安全数字存储器设备的方法 |
US11157181B2 (en) | 2018-07-12 | 2021-10-26 | Silicon Motion, Inc. | Card activation device and methods for authenticating and activating a data storage device by using a card activation device |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7421589B2 (en) * | 2004-07-21 | 2008-09-02 | Beachhead Solutions, Inc. | System and method for lost data destruction of electronic data stored on a portable electronic device using a security interval |
WO2017061153A1 (ja) * | 2015-10-09 | 2017-04-13 | ソニー株式会社 | メモリ、メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法 |
CN107122309A (zh) * | 2016-02-25 | 2017-09-01 | 瑞昱半导体股份有限公司 | 电子装置及其控制方法 |
CN109074455B (zh) * | 2016-04-25 | 2022-04-29 | 横河电机株式会社 | 擦除装置 |
US10911229B2 (en) | 2016-08-04 | 2021-02-02 | Macronix International Co., Ltd. | Unchangeable physical unclonable function in non-volatile memory |
US11258599B2 (en) | 2016-08-04 | 2022-02-22 | Macronix International Co., Ltd. | Stable physically unclonable function |
US10855477B2 (en) | 2016-08-04 | 2020-12-01 | Macronix International Co., Ltd. | Non-volatile memory with physical unclonable function and random number generator |
US10404478B2 (en) * | 2016-08-04 | 2019-09-03 | Macronix International Co., Ltd. | Physical unclonable function using divided threshold distributions in non-volatile memory |
US10680809B2 (en) | 2016-08-04 | 2020-06-09 | Macronix International Co., Ltd. | Physical unclonable function for security key |
JP2018156696A (ja) | 2017-03-15 | 2018-10-04 | 東芝メモリ株式会社 | 半導体記憶装置及びメモリシステム |
US11030346B2 (en) * | 2018-07-13 | 2021-06-08 | Ememory Technology Inc. | Integrated circuit and data processing method for enhancing security of the integrated circuit |
JP2020119298A (ja) * | 2019-01-24 | 2020-08-06 | キオクシア株式会社 | メモリシステム |
JP7074705B2 (ja) | 2019-03-20 | 2022-05-24 | キオクシア株式会社 | メモリ装置及びメモリ装置の制御方法 |
US10656854B1 (en) * | 2019-10-22 | 2020-05-19 | Apricorn | Method and portable storage device with internal controller that can self-verify the device and self-convert the device from current mode to renewed mode without communicating with host |
KR20210078109A (ko) * | 2019-12-18 | 2021-06-28 | 삼성전자주식회사 | 스토리지 장치 및 이를 포함하는 시스템 |
US11380379B2 (en) | 2020-11-02 | 2022-07-05 | Macronix International Co., Ltd. | PUF applications in memories |
CN112580115A (zh) * | 2020-12-23 | 2021-03-30 | 湖南国科微电子股份有限公司 | Nvme设备的安全管理方法、装置、设备及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1443378A2 (en) * | 2003-01-30 | 2004-08-04 | Kabushiki Kaisha Toshiba | Information Processing Apparatus and User Operation Restriction Method used in the Same |
CN1556953A (zh) * | 2002-06-25 | 2004-12-22 | ������������ʽ���� | 信息存储器件、存储器存取控制系统、方法及计算机程序 |
CN101187903A (zh) * | 2006-11-20 | 2008-05-28 | 株式会社日立制作所 | 外部存储装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5440631A (en) * | 1992-04-24 | 1995-08-08 | Fijitsu Limited | Information distribution system wherein storage medium storing ciphered information is distributed |
KR100505106B1 (ko) * | 2002-05-29 | 2005-07-29 | 삼성전자주식회사 | 강화된 보안 기능을 갖춘 스마트 카드 |
JP2005293774A (ja) * | 2004-04-02 | 2005-10-20 | Hitachi Global Storage Technologies Netherlands Bv | ディスク装置の制御方法 |
JP2010225000A (ja) * | 2009-03-25 | 2010-10-07 | Nec Corp | 着脱可能記録媒体のパスワード設定方式 |
KR20120069954A (ko) * | 2010-12-21 | 2012-06-29 | 에스케이하이닉스 주식회사 | 블럭 보호 기능을 갖는 비휘발성 메모리 시스템 및 블럭 상태 제어 방법 |
-
2014
- 2014-02-04 JP JP2014019731A patent/JP2015026358A/ja active Pending
- 2014-02-06 KR KR1020157035943A patent/KR20160010605A/ko not_active Application Discontinuation
- 2014-02-06 CN CN201480034597.XA patent/CN105339919A/zh active Pending
- 2014-02-06 EP EP14713935.6A patent/EP3011460A1/en not_active Withdrawn
- 2014-02-06 WO PCT/JP2014/053391 patent/WO2014203558A1/en active Application Filing
- 2014-02-24 TW TW105102390A patent/TW201616390A/zh unknown
- 2014-02-24 TW TW103106185A patent/TW201500963A/zh unknown
-
2015
- 2015-12-18 US US14/974,665 patent/US20160103625A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1556953A (zh) * | 2002-06-25 | 2004-12-22 | ������������ʽ���� | 信息存储器件、存储器存取控制系统、方法及计算机程序 |
EP1443378A2 (en) * | 2003-01-30 | 2004-08-04 | Kabushiki Kaisha Toshiba | Information Processing Apparatus and User Operation Restriction Method used in the Same |
CN101187903A (zh) * | 2006-11-20 | 2008-05-28 | 株式会社日立制作所 | 外部存储装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108120A (zh) * | 2016-11-25 | 2018-06-01 | 捷鼎国际股份有限公司 | 数据储存系统及其数据储存方法 |
TWI690805B (zh) * | 2018-07-12 | 2020-04-11 | 慧榮科技股份有限公司 | 開卡裝置及利用開卡裝置驗證並且啟用一資料儲存裝置之方法 |
US11157181B2 (en) | 2018-07-12 | 2021-10-26 | Silicon Motion, Inc. | Card activation device and methods for authenticating and activating a data storage device by using a card activation device |
CN111523155A (zh) * | 2019-02-05 | 2020-08-11 | 西部数据技术公司 | 解锁在安全数字操作模式下锁定的安全数字存储器设备的方法 |
CN111523155B (zh) * | 2019-02-05 | 2023-10-24 | 西部数据技术公司 | 解锁在安全数字操作模式下锁定的安全数字存储器设备的方法 |
CN110851887A (zh) * | 2019-10-18 | 2020-02-28 | 浙江大华技术股份有限公司 | 多媒体存储卡的数据保护方法、装置、设备和存储介质 |
CN111128195A (zh) * | 2019-11-29 | 2020-05-08 | 合肥讯飞读写科技有限公司 | 智能演示器的声纹控制方法、智能演示器和设备 |
Also Published As
Publication number | Publication date |
---|---|
JP2015026358A (ja) | 2015-02-05 |
WO2014203558A1 (en) | 2014-12-24 |
KR20160010605A (ko) | 2016-01-27 |
TW201616390A (zh) | 2016-05-01 |
US20160103625A1 (en) | 2016-04-14 |
EP3011460A1 (en) | 2016-04-27 |
TW201500963A (zh) | 2015-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105339919A (zh) | 设备和存储系统 | |
CN102257483B (zh) | 管理对存储器件中的地址范围的访问 | |
CN102576334B (zh) | 一次写入多次读取(worm)存储器器件的验证和保护 | |
US8898477B2 (en) | System and method for secure firmware update of a secure token having a flash memory controller and a smart card | |
JP4847967B2 (ja) | 多目的コンテンツ制御を備えたメモリシステム | |
CN101507224B (zh) | 保护数据盒带 | |
EP2335181B1 (en) | External encryption and recovery management with hardware encrypted storage devices | |
US20160110295A1 (en) | Secure data encryption in shared storage using namespaces | |
CN109542334B (zh) | 存储器装置 | |
JP4829639B2 (ja) | データ処理装置およびデータ処理方法 | |
JP4857284B2 (ja) | 多目的コンテンツ制御をするコントロール構造の生成システム | |
US20100058073A1 (en) | Storage system, controller, and data protection method thereof | |
US20070015589A1 (en) | Communication card, confidential information processing system, and confidential information transfer method and program | |
CN102947836B (zh) | 存储设备、主机设备和使用双重加密方案在第一和第二存储设备之间传递密码的方法 | |
JP2009032038A (ja) | リムーバブルな暗号化/復号化モジュールが接続されるストレージシステム | |
JP2009100394A (ja) | 情報処理装置および方法、記録媒体、プログラム、並びに情報処理システム | |
US7290144B1 (en) | Access-control method for software modules and programmable electronic device therefor | |
US10678953B1 (en) | Self-contained key management device | |
JP2008524757A (ja) | 多目的コンテンツ制御をするコントロール構造及びコントロール構造を用いる方法 | |
US20060156413A1 (en) | Host device, portable storage device, and method for updating meta information regarding right objects stored in portable storage device | |
US20090187770A1 (en) | Data Security Including Real-Time Key Generation | |
JP4561213B2 (ja) | ハードディスクセキュリティ管理システムおよびその方法 | |
US20220318434A1 (en) | Method and device for secured deciphering of ciphering data | |
CN102610039B (zh) | 一种用于租赁豆浆机的加密方法 | |
JP2009105856A (ja) | 情報処理装置および方法、記録媒体、プログラム、並びに情報処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160217 |
|
WD01 | Invention patent application deemed withdrawn after publication |