半导体存储卡和数据读取装置的制作方法

文档序号:6560317阅读:171来源:国知局
专利名称:半导体存储卡和数据读取装置的制作方法
技术领域
本发明涉及存储数字内容的半导体存储卡,以及从半导体存储卡读取数字内容的数据读取装置。进一步说,本发明涉及到半导体存储卡及适用于数字内容版权保护的数据读取装置。
背景技术
多媒体网络技术的发展已经触及到通过通信网络如因特网传播的数字内容,比如音乐内容。这使得坐在家中访问世界各地的各种音乐成为可能。比如说,音乐内容可以下载到个人计算机(下文中称作PC),再存储到装在PC内的半导体存储卡上。半导体存储卡也可以从PC取出,装到便携式音乐播放器上。这样,人们就可以一边走路一边听音乐了。半导体存储卡结构紧凑,重量轻,具有非易失性的大容量半导体存储器(如闪存储器)。
在这样的音乐传播中,存储在半导体存储卡内的数字内容需要事先使用密钥等进行加密,以防止数字内容的非授权拷贝。也需要一种装置,使多数是商用PC机上标准设备的文件管理软件程序不能将数字内容拷贝到其它存储媒体上。
一种防止非授权拷贝的可能的方法中,只有专用软件程序才能访问半导体存储卡。比如,当PC与半导体存储卡之间的验证处理已经肯定地完成了,PC就获准访问半导体存储卡;如果由于缺少专用软件程序,PC与半导体存储卡之间的验证处理未肯定地完成,就不准PC访问半导体存储卡。
但是,上述方法中,PC机总需要专用软件程序访问半导体存储卡,用户不能得到通过半导体存储卡的自由数据交换。这样,上述方法就失去了半导体存储卡的方便性,也就是,失去了一个优点作为商用PC机上标准设备的文件管理软件程序可以用来访问半导体存储卡。
只能被专用软件程序访问半导体存储卡作为存储数字内容的存储媒体是很好的,因为这种半导体存储卡具有数字内容的版权保护功能。但是,存在这样一个问题半导体存储卡不能用作普通用途计算机系统中的辅助存储装置。
发明的公开因此,本发明的一个目的是提供一种半导体存储卡,它既可以用作存储数字内容的存储媒体,又可以用作存储普通用途计算机数据(非版权保护目的)的存储媒体,以及提供从存储媒体中读取数据的装置。
上述目的的实现是由可以在/从电子设备中使用/卸除的半导体存储卡来完成的,它包括可再写非易失性存储器;控制电路,由电子设备控制访问可再写非易失性存储器内的验证区域和非验证区域,其中的控制电路包括非验证区域控制访问单元,由电子设备控制访问控制非验证区域;验证单元,它执行验证处理,检查电子设备是否合适,以及当电子设备合适时肯定地验证电子设备;和验证区域访问控制单元,它只有在验证单元肯定地验证了电子设备才允许电子设备访问验证区域。
使用上述结构,需要版权保护的数据可以存储在验证区域,其它数据可以存储在非验证区域,这样就使得这种半导体存储卡可能存储需要版权保护的数字内容和其它数据两者。
在上述的半导体存储卡中,验证单元可以生成反应验证处理结果的密钥,以及验证区域访问控制单元解密使用密钥加密了的指令,密钥是由验证单元产生的,按照解密后的指令控制电子设备访问验证区域,加密的指令从电子装置送出。
使用上述结构,即使半导体存储卡与电子设备之间的通信是分接的(tapped),访问验证区域的指令也已经加密,反应事先验证的结果。因此,这种半导体存储卡具有可靠的功能以保护验证区域使之免于非法访问。
在上述的半导体存储卡中,验证单元可以对电子设备执行质询-应答式相互验证,以及从质询数据和应答数据生成密钥,质询数据被送至电子设备去检查电子设备是否合适;生成的应答数据表明验证单元是适当的。
使用上述结构,只有当二装置都相互肯定地验证了,密钥才能为半导体存储卡和电子设备所共享。另外,对每一次验证密钥都是变化的。由于不使用密钥就无法访问验证区域,这样,验证区域的安全性得以提高。
在上述的半导体存储卡中,从电子设备送来的加密的指令可以包括标记字段和地址字段,标记字段没有加密,规定访问的验证区域的形式;地址字段被加密,规定将要访问的区域的地址,其中验证区域访问控制单元使用密钥解密地址字段,并控制电子设备访问验证区域,这样,在标记字段规定的形式的访问就在加密的地址字段中的地址所表示的区域内进行。
使用上述的结构,只有指令的地址字段才被加密。这有利于通过接收指令的半导体存储卡进行指令的解密和解码。
上述的半导体存储卡还可以包括预存识别数据的识别数据存储电路,预存的识别数据对半导体存储卡是唯一的,能够将该半导体存储卡与其它半导体存储卡区分开来,其中验证单元与电子设备使用存储在识别数据存储电路中的识别数据执行相互验证,并从识别数据中生成密钥。
使用上述结构,在相互的验证处理中,对每个半导体存储卡而言唯一的数据被交换了。这样就保证了较高水平的安全性,免得相互验证的非法解码。
上述的半导体存储卡还可以包括调整验证区域和非验证区域大小的区域大小调整电路。
使用上述结构,半导体存储卡可以被动态的使用。也就是说,半导体存储卡可以主要用作数字内容的记录媒体和用作计算机系统中的辅助存储装置。
在上述的半导体存储卡中,可以通过将可再写非易失性存储器连续的区域按预定大小划分为两部分而得到验证区域和非验证区域;区域大小调整电路通过改变验证区域和非验证区域之间的边界地址来调整验证区域和非验证区域的大小。
使用上述结构,调整验证区域和非验证区域的大小只能通过移动边界来改变。这减小了电路规模。
在上述的半导体存储卡中,区域大小调整电路可以包括验证区域转换表,它表明验证区域内逻辑地址与物理地址之间的相互关系;非验证区域转换表,它表明非验证区域内逻辑地址与物理地址之间的相互关系;以及转换表改变单元,它按照来自电子设备的指令改变验证区域转换表和非验证区域转换表的内容,其中验证区域访问控制单元通过引用验证区域转换表控制电子设备访问验证区域,和非验证区域访问控制单元通过引用非验证区域转换表控制电子设备访问非验证区域。
使用上述结构,按照区域大小以及逻辑地址与物理地址之间的关系,分别管理验证区域和非验证区域是可能的,因为这些区域的转换表是独立运行的。
在上述的半导体存储卡中,具有较高物理地址的区域和具有较低物理地址的区域二者共同构成具有预定大小的区域,可以分别分配给验证区域和非验证区域,非验证区域转换表表明按升序排列的逻辑地址与按降序排列的物理地址之间的相互关系,验证区域转换表表明按升序排列的逻辑地址与按降序排列的物理地址之间的相互关系。
使用上述结构,能够使逻辑地址按升序使用,区域大小可以很容易地改变,这是由于可能用到的沿着验证区域和非验证区域边界的区域变小了。这也减少了移动边界所要求转移和存储的数据的可能的交换,使得区域大小改变变得简化了。
上述的半导体存储卡还可以包括预存数据的只读存储器电路。
使用上述结构,版权保护功能得以加强,这是通过把半导体存储卡的识别数据存储到专用存储器以及根据识别数据的识别结果来存储数字内容而得到的。
在上述的半导体存储卡中,每个验证区域和非验证区域可以包括从/到能够读/写数据的电子设备读/写存储区域;和只能读数据不能写数据的电子设备的只读存储区域,控制电路还包括随机数发生器,电子设备每次将数据写到可再写非易失性存储器,随机数发生器就产生一个随机数,以及每个验证区域访问控制单元和非验证区域访问控制单元使用随机数加密数据,并将加密了的数据写入读/写存储区域,将随机数写入只读存储区域。
使用上述结构,非法企图,诸如对读/写存储区域的篡改,可以通过检查存储在只读存储区域内的随机数的一致性来查出。这就加强了数据写入的安全性。
在上述的半导体存储卡中,控制电路还可以包括一个转换表,它表明在每个验证区域和非验证区域内逻辑地址与物理地址之间的相互关系;和一个转换表改变电路,它按照来自电子设备的指令改变转换表的内容,和验证区域访问控制单元和非验证区域访问控制单元通过引用转换表控制电子设备访问验证区域和非验证区域。
使用上述结构,即使构成同一个文件的多个逻辑块是破碎的,这些逻辑块也能容易地变为逻辑上连续的。这提高了访问同一文件的速度。
在上述的半导体存储卡中,控制电路还包括加密/解密单元,它加密写入验证区域和非验证区域的数据以及解密从验证区域和非验证区域读出的数据。
使用上述结构,使得验证区域和非验证区域防止非法攻击如损坏半导体存储卡和直接读取这些区域的内容成为可能。
在上述的半导体存储卡中,非易失性存储器可以是闪存储器,以及控制电路还包括未删除列表读取单元,它按照来自电子设备的指令,识别在验证区域和非验证区域内的未删除区域,并将表示未删除区域的信息送给电子设备。
使用上述结构,电子设备能够识别未删除区域,并在闪存储器被再写前删除识别过的未删除区域。
在上述的半导体存储卡中,验证单元可以要求电子设备的用户在验证处理过程中输入用户密钥,密钥是用户的唯一信息,控制电路还包括存储用户密钥的用户密钥存储单元;识别信息存储单元,它存储识别电子设备已经由验证单元确认验证过的识别信息;以及用户密钥请求禁止单元,它在验证单元开始验证处理后从目标电子设备获取识别信息,检查从目标电子设备获取的该识别信息是否已经存储在识别信息存储单元,并且在从目标电子设备获取的识别信息已经存储到识别信息存储单元内时,禁止验证单元请求电子设备的用户输入用户密钥。
使用上述结构,用户不必每次访问半导体存储卡都必须输入口令和个人数据。这可以防止个人数据的非法使用和非法分接的发生。
上述目标的实现是通过从上述半导体存储卡读取数字内容的数据读取装置来完成的,已经存储在半导体存储卡的非验证区域的数字内容以及表示数字内容可读取次数的信息预存在验证区域内,数据读取装置包括判断装置,当数字内容能够从非验证区域读取时,读出数字内容可从非验证区域读取的次数的信息并根据该信息所表示的读取次数判断数字内容能否读出;再现装置,只有当判断装置判定数字内容可以读取时才从非验证区域读取数字内容,并减少数字内容可读取的次数,数字内容可读取的次数信息存储在验证区域内。
使用上述结构,可能限制数字内容从半导体存储卡读取的次数。这使得本发明可适用于可充值的,租借音乐内容。
上述目的还可由一种数据读取装置实现,该数据读取装置从上述半导体存储卡读出数字内容,并将读出的数字内容再现为模拟信号,可以再现为模拟信号的数字内容存储在半导体存储卡的非验证区域,表示数字内容可由电子设备数字输出次数的信息存储在验证区域,数据读取装置包括再现装置,从非验证区域读取数字内容并将数字内容再现为模拟信号;判断装置,读出表示数字内容可由电子设备数字输出次数的信息,该信息表示的次数并根据判定数字内容是否可以数字化输出;以及数字输出装置,只有当判断装置判定数字内容能够数字化输出时才数字化输出数字内容,并减少数字内容可读取的次数,数字内容可读取的次数信息存储在验证区域内。
使用上述结构,可能限制从半导体存储卡数字化拷贝数字内容的次数。这提供了版权所有者所期望的详细具备警告和注意事项的版权保护。
如前所述,本发明是一种半导体存储卡,它具有灵活的功能既可以作为存储数字内容的记录媒体,又可以当作计算机的辅助存储装置。本发明对电子音乐数字内容的健康传播方式是特别安全的。它在实际上是很有价值的。
根据本发明提供一种可以在电子设备中使用和/或从电子设备中移除的半导体存储卡,包括可再写非易失性存储器;和控制电路,其控制电子设备对可再写非易失性存储器内的验证区域和非验证区域的访问,其中控制电路包括非验证区域访问控制单元,其控制电子设备对非验证区域的访问;验证单元,其执行验证处理去检查电子设备是否具有访问半导体存储卡的权限,当电子设备具有访问半导体存储卡的权限时确认验证电子设备;和验证区域访问控制单元,只有当验证单元确认验证了电子设备时其才允许电子设备访问验证区域,其中借助将可再写非易失性存储器中预定大小的连续区域分成两块,生成了验证区域和非验证区域,以及半导体存储卡进一步包括用于保存关于验证区域与非验证区域之间的边界的信息的装置;和区域大小改变电路,其改变验证区域和非验证区域的大小,其中在删除可再写非易失性存储器中存储区域的所有内容之后,区域大小改变电路借助改变关于边界的信息来改变验证区域和非验证区域的大小,以及验证区域访问控制单元和非验证区域访问控制单元通过引用关于边界的信息来控制电子设备对验证区域和非验证区域的访问。
根据本发明,进一步提供一种用于控制可以在电子设备中使用和/或从电子设备中移除的半导体存储卡的方法,该半导体存储卡包括可再写非易失性存储器;和用于保存关于验证区域与非验证区域之间的边界的信息的装置,所述验证区域与非验证区域是借助将可再写非易失性存储器中预定大小的连续存储区域分成两块而生成的;和控制电路,其控制电子设备对验证区域和非验证区域的访问,该控制方法包括以下步骤控制电子设备对非验证区域的访问;只有在通过验证处理已经确定电子设备具有访问验证区域的权限时才允许电子设备访问验证区域;以及在删除可再写非易失性存储器中连续存储区域的所有内容之后,借助改变关于边界的信息来改变验证区域和非验证区域的大小,其中验证区域访问控制步骤和非验证区域访问控制步骤通过引用关于边界的信息来控制电子设备对验证区域和非验证区域的访问。
附图简述

图1示出了作为本发明实施方案的,涉及到电子音乐传播的PC的外形图,并示出了可装入PC也可从PC上卸下来的半导体存储卡的外形图。
图2示出了将半导体存储卡用作记录媒体的便携式播放器的外形图。
图3,图示PC的硬件结构框图。
图4,图示播放器的硬件结构框图。
图5,图示半导体存储卡的硬件结构和外形图。
图6,图示可以被PC和播放器识别出的半导体存储卡内的各种存储区域。
图7A,7B,和7C示出了PC或播放器访问半导体存储卡内的一个区域时限制和指令格式。图7A,图示访问每个区域要遵从的规则。图7B示出了改变每个区域大小要遵从的规则。图7C,是一个代表半导体存储卡内区域的略图。
图8,是一个流程图示出了PC(或播放器)将音乐内容等写入半导体存储卡的步骤。
图9,是一流程图示出了从半导体存储卡读出音乐内容等并通过播放器(或PC)播放的步骤。
图10,是一操作流程图示出了播放器(或PC)处理存储在半导体存储卡的验证区域内的读取次数的操作。
图11,是一操作流程图示出了播放器(或PC)处理存储在半导体存储卡的验证区域内的允许数字化输出次数的操作。
图12示出了半导体存储卡的验证区域和非验证区域共同的数据结构,同时示出了相应数据结构读/写处理的流程图。
图13A到13D示出了逻辑地址与物理地址之间关系的改变。图13A示出了改变前的关系。图13B示出了改变后的关系。图13C示出了对应图A的转换表。图13D示出了对应图B的转换表。
图14A到14D示出了涉及半导体存储卡中未删除块的功能。图14A,图示逻辑块和物理块的使用状态。图14B示出了对应图14A中示出的块的使用状态的未删除块列表。图14C是一流程图,示出了在使用未删除块列表指令和删除指令前PC或播放器删除块的步骤。图14D是一个逻辑块使用状态表。
图15示出了在验证区域内的播放器和半导体存储卡之间通信顺序,并示出了在验证区域内使用的主要部件。
图16示出了在本发明的存储卡和外部装置之间的各种验证的通信顺序。
图17示出了图16示出的相互验证的详细步骤的通信顺序。
图18A到图18C示出了半导体存储卡的验证区域和非验证区域之间的边界改变之前的状态。图18A是一个存储器示意图示出了闪存储器内物理地址结构。图18B示出了非验证区域专用的转换表。图18C示出了验证区域专用的转换表。
图19A到图19C示出了半导体存储卡的验证区域和非验证区域之间的边界改变之后的状态。图19A是一个存储器示意图示出了闪存储器内物理地址结构。图19B示出了非验证区域专用的转换表。图19C示出了验证区域专用的转换表。
实施本发明的最佳模式下面将接结合附图描述本发明的实施方案。
图1是一个示意略图示出了通过通信网络下载数字内容如音乐内容的PC,以及可以装入PC和可以从PC卸下来的半导体存储卡(下文中称为存储卡)。
一台PC 102包括显示器103,键盘104,和扬声器106,并通过嵌入PC 102的调制解调器连接到通信线101。存储器卡写入器107已经插入PC 102的卡槽(存储卡写入器插槽105)。存储卡写入器插槽105是基于PCMCIA(个人计算机存储卡国际协会)标准等。存储卡写入器107是电气连接PC 102和存储卡109的适配器。存储卡109插入存储卡写入器107的存储卡插槽108。
用户使用以上系统和按下面的步骤,从网络上内容提供商处获取音乐数据。
首先,用户通过通信线101将期望的音乐内容下载到PC 102的硬盘上。但是,由于音乐内容加了密,所以要求用户执行一定的步骤才能播放PC 102上获得的音乐内容。
为了播放获得的音乐内容,用户必须事先使用信用卡等向内容提供商付费。用户付费时,用户从内容提供商出接收口令和权限信息。口令是用户用来解密加密过的音乐内容的密钥。权限信息表示用户被允许在PC上播放音乐内容的各种情况,如允许播放的次数,允许写入存储卡的次数,表示允许用户播放内容期限的截止日期。
得到口令和权限信息后,当用户试图在PC 102的扬声器上输出音乐时,就通过键盘104输入口令到PC 102,同时具有版权保护功能的的专用应用程序(下文中称为应用程序)PC 102上运行。之后,应用程序检查权限信息,使用口令解密加密过的音乐内容,播放解密后音乐内容,从扬声器106输出声音。
当权限信息表示允许内容写入存储卡时,应用程序可以将加密的音乐数据、口令和权限信息写入存储卡109。
图2是一个将存储卡109用作存储媒体的便携式拷贝/播放装置(下文中称为播放器)201的示意略图。
在播放器201的上表面,有液晶显示单元202和操作按钮203。在播放器201的前侧,有存储卡插槽206和通信口213,存储卡109插入存储卡插槽206,借助USB(通用串行总线)等得到通信口213并连接到PC 102。在播放器201的一侧,有模拟输出端口204,数字输出端口205,和模拟输入端口223。
播放器201,在存储有音乐数据、口令和权限信息的存储卡109装入播放器201后,检查权限信息。当音乐被允许播放时,播放器201读出音乐数据,解密读出的音乐数据,将解密的音乐内容转换为模拟信号,并通过连接到模拟输出端口204的耳机208输出模拟信号声音。播放器201可以选择输出数字音乐数据到数字输出端口205。
播放器201也可以将模拟声音信号转换为数字信号并将数字信号存储到存储卡109,模拟信号是通过经麦克等到模拟输入端口223输入到播放器201的。播放器也可以通过通信口213从PC 102下载音乐数据、口令、和权限信息,并将下载的信息记录到存储卡109。也就是说,在将音乐数据记录到存储卡109和播放记录在存储卡109上的音乐数据方面,播放器可以代替如图1所示的PC 102和存储卡写入器107。
图3示出了PC 102的硬件结构框图。
PC 102包括CPU 110,预存设备密钥111a和控制程序111b的ROM111,RAM 112,显示器103,含调制解调器口和USB的通信口113,调制解调器口用于连接到通信线101,USB用于连接到播放器201,键盘104,内部总线114,连接存储卡109和内部总线214的存储卡写入器,解码器117,用于从存储卡109读出的加密的音乐数据的解码,AAC解码器118,符合MPEG2-AAC(ISO13818-7)标准用于译解解码过的音乐数据,D/A转换器119,用于将解码的数字音乐数据转换为模拟声音信号,扬声器106,和存储文件管理软件程序和应用程序的硬盘120。
PC 102可执行以下处理(1)通过执行存储在硬盘120内的文件管理软件程序,把存储卡109用作含有如同硬盘中具有的独立文件系统(如IS09293)的辅助存储装置,(2)借助执行存储在硬盘中的专用应用程序通过通信口113的调制解调器口,从通信线101下载音乐内容等,(3)相互验证后,将音乐内容等存入存储卡109,和(4)从存储卡109读出音乐数据并将读出的音乐数据输出到扬声器106。
存储在ROM 111的装置密钥111a是对PC 102唯一的秘密密钥,正如下面将要描述的,用于相互验证等。
图4示出了播放器201的硬件结构框图。
播放器201包括CPU210,预存装置密钥211a和控制程序211b,RAM212,液晶显示器单元203,借助用于连接到PC 102的USB得到的通信口213,操作按钮202,内部总线214,连接存储卡109和内部总线的卡I/F单元215,与存储卡109执行相互验证的验证电路216,解密器217,用于从存储卡109读出的加密的音乐数据的解密,AAC解码器218,符合MPEG2-AAC(ISO13818-7)标准用于解码已解密的音乐数据,D/A转换器219,用于将解码的数字音乐数据转换为模拟声音信号,扬声器224,A/D转换器221,用于将从模拟输入端口223输入的模拟声音信号转换为数字音乐数据,和存储文件管理软件程序和应用程序的硬盘120。AAC解码器220,符合MPEG2-AAC(ISO13818-7)标准用于解码数字音乐数据,解码器222,用于解码加密过的音乐数据,模拟输出端口204,数字输出端口205和模拟输入端口223。
播放器201从ROM211将控制程序211b装入RAM212允许CPU210执行控制程序211b。这样,播放器201就可以从存储卡109读出音乐内容,将读出的音乐内容输出到扬声器224,也可以将音乐内容通过模拟输入端口223和通信端口213输入到存储卡109。也就是说,用户不仅可以象使用普通播放器一样将播放器用于个人拷贝和播放音乐,还可以拷贝和播放由电子音乐传播系统传播的和通过PC 102下载的音乐内容(受版权保护的)。
图5示出了存储卡109的硬件结构和外形图。
存储卡109包含可以进行数据重复写入的可再写非易失性存储器。可再写非易失性存储器的容量为64MB,由3.3V电源驱动并由外部电源提供时钟信号。存储卡109为一个2.1mm厚,24mm宽,32mm深的矩形平行六面体。存储卡109在其侧面有写保护开关,并通过在存储卡109端部的9针连接端子连接到外部装置。
存储卡109含三块IC(集成电路)芯片控制IC302,闪存储器303,和ROM 304。
闪存储器303是一种高速可擦除、块删除型可再写非易式存储器,并包括逻辑存储区域验证区域332和非验证区域331。验证区域332只能被已经通过验证的适当装置访问。非验证区域331可以被无论是否通过验证的任何装置访问。在本实施方案中,验证区域332用来存储涉及到版权保护的重要数据,而非验证区域用作普通计算机系统中的辅助存储装置。请注意,闪存储器303内的某一地址是用作这两种存储区域的边界。
ROM304包括只读区域并被称作特殊区域的存储区域。特殊区域预存信息包括作为存储卡109标识符的介质ID 341;表明存储卡109制造者名称的制造者名称342。注意介质ID 341对存储卡109是唯一的,将存储卡109与其它半导体存储卡区分开;介质ID 341用于装置之间的相互验证并用于防止对验证区域332的非授权访问。
控制IC302是由有源元件(逻辑门电路等)组成的控制电路,并包括验证单元321、指令判断控制单元322、主密钥存储控制单元323、特殊区域访问控制单元324、验证区域访问控制单元325、非验证区域访问控制单元326、和加密/解密电路327。
验证单元321是对远程装置试图访问存储卡109进行质询-应答式相互验证的电路。验证单元321包括随机数发生器和加密单元,当已经确认远程装置与本地装置有同样的加密单元时远程装置被验证通过为适当的装置。注意在质询-应答式相互验证中,通信的两种装置都要执行如下步骤本地装置首先将质询数据送给远程装置,远程装置为了检验远程装置是否适当,通过处理接收到的质询数据依次产生应答数据,并将生成的应答数据送回本地装置,本地装置通过比较质询数据和应答数据来判断远程装置是否合适。
指令判断控制单元332是一个由解码电路和控制电路构成的控制器。解码电路通过指令引线识别指令(到存储卡109的指令)输入并执行识别过的指令。指令判断控制单元332根据收到的指令控制部件321到327。
指令判断控制单元332接收的指令不仅包括从/到闪存储器303读出,写入和删除指令,还包括控制闪存储器303的指令(涉及到地址空间,未删除数据等的指令)。
比如说,关于读/写数据,安全读(SecureRead)地址计数指令和安全写(SecureWrite)地址计数指令定义为访问验证区域332的指令,而读(Read)地址计数指令和写(Write)地址计数指令定义为访问非验证区域331的指令。在上述指令中,″地址″是一串扇区的第一扇区的顺序号,由指令从/到扇区读或写数据。″计数″是扇区的总数,由指令从/到扇区读或写数据。″扇区″是表示从/到存储卡109读或写数据的总数的一个单位。在本发明实施方案中,一个扇区是512字节。
主密钥存储单元323预存主密钥323a,主密钥323a由远程装置在相互验证期间使用,用于保护在闪存储器303中的数据。
特殊区域访问控制单元324是用于从特殊区域(ROM)304中读出信息(如介质ID 341)的电路。
验证区域访问控制单元325和非验证区域访问控制单元326是用于分别从/到验证区域332和非验证区域331读/写数据的电路。单元325和326中每一个单元通过四个数据引线送数据到外部装置(PC102,播放器201等)或从外部装置接收数据。
应该注意到,这里的访问控制单元325和326中的每一个单元含有一个块(32个扇区,或16Kb)大小的缓存器,合理地,以扇区为单位输入/输出数据到/从区域332或331,以响应外部装置发出的指令,尽管当闪存储器303被重写时,它以块为单位输入/输出数据。更具体地,当一个在闪存储器303内的扇区要重写时,访问控制单元325或326从闪存储器303包含的扇区的块中读出数据,立即删除在存储器303内的块,重写在缓存器内的扇区,然后将包括重写扇区的数据块写入闪存储器303。
加密/解密电路327是在验证区域访问控制单元325和非验证区域访问控制单元326控制下用存储在主密钥存储单元323内的主密钥执行加密和解密的电路。加密/解密电路327在数据写到闪存储器303之前先加密数据,在从闪存储器303读出数据之后解密数据。实施加密和解密是为了防止非法行为如解开存储卡109、直接分析闪存储器303内的内容和从验证区域332盗取口令。
应该注意到,这里的控制IC302包括同步电路、易失存储区域、和非易失性存储区域以及主要部件321到327。同步电路产生与时钟引线提供的时钟信号同步的内部时钟信号,并向每个部件提供产生的内部时钟信号。
也是为了保护存储在特殊区域(ROM)304内的信息免于被非授权人员篡改,特殊区域(ROM)可以嵌入控制IC内。另外,信息可以存储在闪存储器303内。在这种情形下,特殊区域访问控制单元324可能对写入信息的数据施加限制,或加密/解密电路327可能在信息存入闪存储器303前对信息进行加密。
图6示出了可被PC 102和播放器201识别的存储卡内的各种存储区域。存储卡109中的存储区域划分为三个主要区域特殊区域304;验证区域332;和非验证区域331。
特殊区域304是只读区域。使用专用指令从特殊区域304读取数据。只有当PC 102或播放器201与存储卡109之间的验证已经肯定时,才可能从验证区域332读取数据或写数据到验证区域332。使用加密的指令访问验证区域332。非验证区域331可以由通用指令如符合ATA(AT附件)或SCSI(小型计算机系统接口)标准的指令访问。也就是说,可以从非验证区域331读数据或将数据写到非验证区域331而无须验证处理。因此,作为PC 102上标准设备的文件软件程序可以用于从非验证区域331读取数据或写数据到非验证区域331,正如用高速ATA(Flash ATA)或紧凑的闪存储器。
三个主要区域存储下面示出的各种信息,提供具有普通PC辅助存储装置功能的区域,和提供具有由电子音乐传播系统传播的音乐数据版权保护功能的区域。
非验证区域331存储加密的内容426,用户数据427等。加密的内容是作为版权保护对象的音乐数据并已经加密。用户数据427是与版权保护相关的基本数据。验证区域332存储加密密钥425,加密密钥425是用于解密存储在非验证区域331内的加密内容426的秘密密钥。特殊区域304存储访问验证区域332所必须的介质ID 341。
PC 102或播放器201首先从装入它自己的存储卡109中的特殊区域304读出介质ID 341,然后使用介质ID 341从验证区域332提取加密密钥425和权限信息。当从权限信息得到确认时,存储在非验证区域331内的加密的内容426被允许播放,加密的内容426可以被读出和播放,尽管用加密密钥425加密了。
在这里,假设用户用PC 102等只将非法获得的音乐数据写入存储卡109内的非验证区域331,然后试图播放来自装在播放器201的存储卡109的音乐数据。在这样的情况下,尽管在存储卡109内的非验证区域331存储了音乐数据,但没有对应音乐数据的加密密钥425和权限信息存储在验证区域332。所以,播放器不能播放音乐数据。使用这种结构,存储卡109内只拷贝了音乐内容而没有授权的加密密钥或权限信息,音乐内容是不能播放的,数字内容的非授权拷贝是被禁止的。
图7A,7B,和7C示出了PC 102或播放器201访问存储卡109内的一个区域时的限制和指令格式。图7A,图示访问每个区域要遵从的规则。图7B示出了改变每个区域大小要遵从的规则。图7C,是代表半导体存储卡109内一个区域的略图。
特殊区域304是一个只读区域,能够被专用指令访问无须验证处理。存储在特殊区域304的介质ID 341用来生成或解密用于访问验证区域332的加密指令。更具体地,PC 102或播放器201读出介质ID341,用于访问验证区域332的加密指令,和将加密的指令送到存储卡109。一收到加密的指令,存储卡109就使用介质ID 341解密加密的指令,翻译并执行指令。
只有当试图访问存储卡109的装置(如PC 102或播放器201)与存储卡109之间的验证已经确认时,才可以访问验证区域332。验证区域332的大小等于(YYYY+1)个扇区的大小。也就是说,验证区域332在逻辑上由扇区0到扇区YYYY(第YYYY扇区)构成,实际上是由具有第XXXX扇区地址的扇区到具有第(XXXX+YYYY)扇区地址的扇区构成。注意扇区地址是唯一分配给构成闪存储器303的所有扇区的顺序号。
非验证区域可以被符合ATA或SCSI标准的标准指令访问。非验证区域331的大小等于XXXX个扇区。也就是说,非验证区域331在逻辑上和实际上由扇区0到第(XXXX-1)扇区构成。
在这里应该注意到,可选择的块区域501可以预先分配在闪存储器303内。可选择的块是一组可选择的块,可以用来代替验证区域332或非验证区域331内的有缺陷的块(具有不能从中正常读写数据的有缺陷区域的块)。
在本实施方案中,特殊区域304可以不用验证而被访问。但是,为了防止任何人的非法分析,特殊区域只能被那些确认已经验证的装置,或用于访问特殊区域304的指令被加密。
现在,将结合图7B和图7C来描述验证区域332和非验证区域331的大小的改变。
在闪存储器303内的验证区域332和非验证区域331的总存储容量等于(XXXX+YYYY+1)个扇区的容量,这是从闪存储器303内的所有存储区域减去可选择块区域及其它后得到的一个固定值。区域332和331的大小都是可变的,并可以通过改变边界地址值XXXX来改变。
改变区域大小的第一步是执行验证。执行这一验证是为了防止任何用户使用一种在PC用户中流行的标准设备程序或试图非法访问的软件程序轻易地改变区域大小。验证结束后,使用改变区域大小的专用指令,将非验证区域331的大小(新扇区的数字,XXXX)送到存储卡109。
存储卡109,一收到上述改变区域大小的专用指令,就将值XXXX存储到存储卡109内的非易失性存储区域等,然后控制随后的使用值XXXX作为新的边界地址的对验证区域332和非验证区域331的访问。更具体地,存储卡109将闪存储器303内的物理扇区0到XXXX扇区分配给非验证区域331,第XXXX扇区到第(XXXX+YYYY)分配给验证区域332。访问控制单元325和326执行逻辑地址与物理地址之间的地址转换,并监视分配的区域外的不适当的访问的产生。这里应该注意到,逻辑地址由外部装置识别为存储卡109的数据空间地址,对应指令中使用的值,而物理地址被识别为含在存储卡109内的闪存储器303的数据地址空间。
如果借助减小边界地址,验证区域332增加了,将需要一个保持地址改变前后逻辑兼容性的排列。为此,所有存储在验证区域332的数据,都向着地址减小的方向移动(拷贝)比如边界地址减小的总数。使用这样的措施,物理地址对应新边界地址开始的新逻辑地址。使用这样的排列,验证区域332的数据空间扩大了,而验证区域33内的存储数据的逻辑地址保持不变。
改变区域大小的专用指令在使用前可以加密,以防止非法访问。
图8是一个流程图示出了PC 102(或播放器201)将音乐数据等写到存储卡109的步骤。在下面的描述中,假设PC 102将音乐数据写入存储卡109(S601)。
(1)PC 102使用装置密钥111a等用验证区域321执行质询-应答式验证,当验证已经确认时,从存储卡109提取主密钥323a(S602)。
(2)然后,PC 102使用专用指令从存储卡109内的特殊区域304提取介质ID 341(S603)。
(3)接下来,PC 102生成随机数,并从提取的主密钥332a和介质ID 341生成用来加密音乐数据的口令(S604)。在上述步骤中,随机数的产生时由,比如,加密质询数据(随机数)在验证处理过程中送到存储卡109。
(4)生成的口令用主密钥323a和介质ID 341加密,然后将口令作为加密密钥425写入验证区域332(S605)。此时,在数据(加密密钥425)传送之前,将数据写入验证区域332的指令已经加密并被送到了存储卡109。
(5)使用口令将音乐内容加密并以加密后的内容426存储到非验证区域(S606)。
图9是一个流程图示出了从存储卡109读出音乐内容等和用播放器201(或PC 102)播放的步骤。在下面的描述中,假设存储在存储卡109的音乐数据用播放器201播放(S701)。
(1)播放器201使用装置密钥211a等用存储卡109的验证单元321实施质询-应答式验证,并在验证已经确认时从存储卡109提取主密钥323a(S702)。
(2)然后,播放器201使用专用指令从存储卡109内的特殊区域304提取介质ID 341(S703)。
(3)接下来,播放器201从存储卡109内的验证区域提取加密密钥425(S704)。此时,在数据(加密密钥425)读出之前,从验证区域332读出数据的指令已经加密并被送到存储卡109。
(4)使用主密钥332a和提取口令的介质ID 341对得到的加密密钥425进行解密(S705)。解密步骤是图8中是出的加密步骤的逆。
(5)解密的内容426从非验证区域331读出并使用在步骤S705提取的口令来解密,同时如同音乐一样播放解密的内容(S706)。
如前所述,存储在存储卡109内非验证区域的331的音乐内容,在没有存储在验证区域332的加密密钥425时,是不能解密的。因此,即使只有音乐内容被非法地拷贝到了其它存储卡,拷贝的音乐数据也不能正常播放。使用这一结构,音乐数据的版权得到了安全地保护。
也如同前面所描述的,只有已经确认验证过的装置才获准访问存储卡内的验证区域。这种结构提供了版权保护,其中,只有满足一定条件的装置才被获准访问存储卡内的验证区域。这一功能是通过选择性地使用用于验证的设备密钥、加密算法等得到的。
在上述示例中,当加密的内容被写入存储卡109时,首先,使用主密钥和介质ID加密用于加密的口令;然后,将加密后的口令作为加密密钥存储在验证区域332(S605)。但是,主密钥和介质ID两者之一可以作为加密口令。这一结构简化了加密并提供了一个好处尽管加密的强度可能减弱,但减小了存储卡109或播放器102的电路大小。
在上述示例中,只有当验证已经确认时,播放器201和PC 102才能从存储卡109提取主密钥323a。但是,主密钥323a可以事先嵌入播放器201和PC 102。可选择地,主密钥323a可以加密并作为加密的主密钥存储在特殊区域304内。
现在,将描述两个存储卡的验证区域的使用示例。在两个示例中,″读取的次数″和″允许数字输出的次数″分别地存储在验证区域。
图10是一个流程图,它示出了播放器201(或PC 102)处理存储在存储卡109内的验证区域内的读取次数812的操作。在本示例中,播放器201可以播放存储在存储卡109内非验证区域331内的音乐数据,播放的次数是存储在存储卡109内的读取次数所表示的次数(S801)。
(1)播放器201使用装置密钥211a等用存储卡109的验证单元321实施质询-应答式验证,并在验证已经确认时从存储卡109提取主密钥323a(S802)。
(2)然后,播放器201使用专用指令从存储卡109内的特殊区域304提取介质ID 341(S803)。
(3)接下来,播放器201从存储卡109内的验证区域提取加密密钥425(S804)。此时,在数据(加密密钥425)读出之前,从验证区域332读出数据的指令已经加密并被送到了存储卡109。
(4)接下来,播放器201从存储卡109内的验证区域332提取读取次数812,并检查读取次数812(S804)。当读取次数表示为无限制时,播放器201按照图9(S806到S808)中示出的步骤(S704到S706)播放音乐。
(5)当读取次数812为0时,就判断为不再允许读取(S805),播放终止(S809)。当读取次数812不是0也不是表示无限读取的一个数值时,播放器将次数减1,并将结果写入验证区域332(S805),然后按照图9(S806到S808)中示出的步骤(S704到S706)播放音乐。
如上所述,借助预存表示音乐可以播放的次数的读取次数812,控制播放器201播放音乐的次数是可能的。这使得本发明技术适用于通过,比如租借的CD或信息站终端(为音乐传播连接到通信网络的在线售货机)得到的音乐的模拟再现。
应该注意到,这里的″读取时间″可以存储来代替读取次数812,以限制音乐内容播放的总的次数。可以选择地,可以存储读取次数和读取时间相结合的信息。如其他示例,当一段时间后(如10秒)内容还在播放,读取次数812就可以减少。如其他示例,读取次数812可以加密后再存储,免得该信息被篡改。
图11是一个流程图,示出了播放器201(或PC 102)处理存储在存储卡109内的验证区域内的允许数字输出的次数的操作。在本示例中,播放器201能够从存储卡109内的非验证区域331读取数据数字输出音乐数据,输出的次数等于存储在存储卡109内的允许数字输出的次数(S901)。
(1)播放器201,如同图9中所示的步骤S701到S705一样,用存储卡109实施验证,以提取主密钥323a(S902),提取介质ID 341(S903),提取加密密钥425(S904),和提取口令(S905)。
(2)然后,播放器201从存储卡109内的验证区域332提取允许数字输出的次数,并检查允许数字输出的次数(S906)。当允许数字输出的次数无限制时,播放器从非验证区域331读出加密的内容426,并用在步骤S905提取的口令解密加密的内容426为数字数据,并象音乐数据一样从数字输出端口205输出解密的数字数据(S909)。
(3)当允许数字输出的次数为0时,就判定为不再允许数字输出(S908),数据只能模拟输出(S908)。更具体地,加密的内容是从非验证区域331读出的,使用口令解密内容后播放音乐(S908)。
(4)当允许数字输出的次数913不是0也不是表示无限制数字输出的一个数值时,播放器将次数减1,并将结果写入验证区域332(S907),然后从非验证区域331读出加密的内容426,使用在步骤S905中提取的口令解密加密的内容426为数字数据,并从数字输出端口205输出解密的数字数据(S909)。
如前所述,从播放器201允许数字输出的次数,可以由存储在存储卡109内的验证区域331内的允许数字输出的次数913来控制。这使得本发明技术适用于通过,比如租借的CDs或信息站终端得到的音乐的数字再现,也就是说,存储在存储卡内的音乐数据的配音可以得到版权所有者的一定次数的授权。
应该注意到,这里的″读出次数″,″允许数字输出的时间″可以存储来代替允许数字输出的次数913,以限制音乐内容能够输出的总的次数。可以选择地,可以存储允许数字输出的次数和时间相结合的信息。如其它示例,当一段时间后(如10秒)内容还在输出,就减少允许数字输出的次数913。如其它示例,允许数字输出的次数可以加密后再存储,以免该信息被篡改。
可以增加一项功能通过版权所有者规定的次数,可以增加数字输出的次数,版权所有者是根据收到的费用来规定次数的。
现在说明存储卡109的物理数据结构(扇区和EEC块的结构)。
存储卡109采用这样一种结构适合于防止涉及到存储在闪存储器303内的数据的备份和恢复的非法行为,以及防止涉及到数据篡改的非法行为。采用这样的数据结构是由于需要对付执行前述的方法的非法操作,其中,″读取次数″或″允许数字输出的次数″被存储在验证区域332,且每一次执行处理,其值要减少。
更具体的,当记录在闪存储器303内的全部数据备份到外部辅助存储装置等以后,音乐就可以被重复地播放。这样做以后,当允许播放操作的次数变为0时,通过恢复备份的数据,又可以重复地播放音乐。同时,通过篡改读取次数,也可以非法地重复地播放音乐。所以,需要采取措施来防止这种非法行为。
图12示出了存储卡109的验证区域332和非验证区域331共同的数据结构,也示出了相应数据结构的读/写处理流程。
在本示例中,由控制IC 302内的验证单元321的随机数发生器103产生的计数器数值被用作时间变量密钥。
为每个闪存储器303内的512字节的扇区1004分配一个16字节的扩展区域1005。每个扇区存储已经使用计数器数值加密的数据。扩展区域1005由ECC数据1006和时间变量区域1007组成。ECC(纠错码)数据1006是8字节数据,作为存储在当前扇区的加密数据的ECC。时间变量区域1007是8字节的,并存储用于产生存储在当前扇区的加密数据的计数器值。
应该注意到,这里只有扇区1004能够被逻辑地访问(即使用公共指令等),以及只有扩展区域1005能够被物理地访问(即由读/写数据从/到存储卡的装置控制)。
使用上述结构,通过比较扇区数据和时间变量区域1007的内容可以防止数据的非法篡改,即使扇区数据被使用指令等篡改了,时间变量区域1007的内容是不能更改的。
更具体的,在扇区1004的单元内,PC 102或播放器201到/从闪存储器109内的验证区域332或非验证区域331写/读数据遵从下面示出的步骤。首先,描述PC 102将数据写到存储卡109的步骤(S1001)。
(1)PC 102请求存储卡109发布计数器数值。响应这一请求,存储卡109内的控制IC302用包含在控制IC302内的随机数发生器1003产生随机数(S1005),并将生成的随机数作为计数器数值送到PC 102(S1002)。
(2)由已经获得的介质ID 341和主密钥323a和收到的计数器数值生成口令(S1003)。
(3)使用口令加密要写入数据的一个扇区并送到存储卡109(S1004)。和加密的数据一起,(i)规定加密的数据将要写入的扇区的位置的信息,和(ii)用于加密的计数器数值都送到存储卡109。
(4)存储卡109将加密的数据写到规定的扇区1004(S1006)。
(5)由加密的数据运算得到ECC,作为ECC数据1006,得到的ECC被写入扩展区域1005(S1007)。
(6)与加密的数据一起收到的计数器数值被写入时间变量区域1007(S1008)。
接下来,将描述PC 102从存储卡109读取数据的步骤。(S1011)。
(1)通过规定将要读取数据的扇区的位置,PC 102请求存储卡109读取数据。一收到请求,存储卡109首先从规定的扇区读出加密的数据,并将读出的数据输出到PC 102(S1016)。PC 102接收加密的数据(S1012)。
(2)然后,存储卡109从对应规定的扇区1004的扩展区域1005内的时间变量区域1007读出计数器数值,并把读出的计数器数值送到PC 102(S1017)。PC 102接收计数器数值(S1013)。
(3)由已经获得的介质ID 341和主密钥323a和收到的计数器数值生成口令(S1014)。
(4)使用口令解密加密的数据(S1015)。
这里,如果扇区1004内的数据由于篡改等已经改变,那么,将由于从时间变量区域读出的计数器值不匹配而导致解密失败。
如前所述,闪存储器303具有时间变量区域1007,一个不能被用户看见(访问)的隐藏区域。数据使用口令被加密并存储,口令是用存储在时间变量区域1007的计数器数值生成的。使用这一结构,可以防止数据被用户非法篡改。
在上述示例中,在扩展区域1005内提供了时间变量区域1007以存储ECC。但是,在闪存储器303的其它区域内提供时间变量区域1007是可能的,如果存储在该区域的数据不能从存储卡外改变。
在上述示例中,随机数是用作计数器数值。但是,计数器数值也可以是表示时间随时改变的计时器数值,或可以是已经写入闪存储器303的数据的次数。
现在,将描述闪存储器内逻辑地址与物理地址之间关系的可描述的示例。
图13A到13D示出了逻辑地址与物理地址之间的关系的改变。图13A图示的是改变前的关系。图13B图示的是改变后的关系。图13C示出了对应图A的转换表1101。图13D示出了对应图B的转换表1101。
转换表1101中,所有逻辑地址(在图13A到13D中,逻辑块的一系列数字)和对应的物理地址(在图13A到13D中,构成闪存储器303的物理块的一系列数字)存储在一起。转换表1101存储在控制IC302等的非易失性区域内,并被验证区域访问控制单元325或非验证区域访问控制单元326,当,比如,逻辑地址转换为物理地址时。
访问存储卡109的设备不能将数据写入所有的存储卡109内实际存在的数据存储空间(即构成闪存储器303的所有实际块),但只能将数据写到由逻辑地址规定的逻辑数据空间(即逻辑块)。
采取上述措施的一个原因是为了保护可选择的区域,该可选择的区域是用来代替由于存储卡303的局部缺陷不能读/写数据的区域。即使这种有缺陷的块已经由可选择的块所替代,也要改变转换表,以便反应逻辑块与物理块数之间的相应变化,使闪存储器303能够对外部设备假称为没有出现过缺陷。这是因为,在每个文件中,要保持对应多个连续的物理块的逻辑连续性。
但是,比如构成文件的多个块分别存储到存储卡109或从存储卡109删除时,逻辑块的碎片要增加。这一特例如图13A所示,其中构成″文件1″的逻辑块的逻辑地址(0和2)是不连续的。
出现这种不连续的逻辑块时,比如,音乐数据就不能存储卡109的连续的逻辑区域。这时对每个块发行写指令″写地址计数″是必要的了,结果使写入速度下降。同样的,对每个块发行读指令″读地址计数″变得必要,即使要读取一个曲调的音乐数据,导致音乐数据的实时再现困难。
为了解决上述状态,存储卡109的控制IC302具有重写以外部设备发行的指令为基础的转换表1101。更具体地,当重写转换表1101的专用指令从命令引线输入时,存储卡109的控制IC302翻译专用指令并用专用指令之后送来的参数重写转换表1101。
将使用图13A到图13D所示的示例细述上述操作。假设收到上述专用指令前,存储器303包含在物理地址0和2表示的位置上构成文件″文件1″的数据,以及在物理地址1表示的位置构成文件″文件2″的数据。也就是说,在逻辑地址以及物理地址内,″文件2″的数据被″文件1″的数据夹在中间。
为了解决上述情况,外部装置送上述专用指令和参数到闪存储器303,专用的指令命令保护″文件1″的连续性。指令判断存储卡109的控制单元322,按照收到的专用指令和参数,重写如图13D的转换表。图13B示出了上述操作完成后闪存储器303内的逻辑地址和物理地址之间的关系。
正如从图13B所理解到的,尽管物理块的排列还没有改变,但构成″文件1″的逻辑块已经重新定位了。这样一排列,外部设备下一次和以后访问″文件1″的速度会比以前更快。
转换表1101可以象前述的那样重写,不只是为解决逻辑块的碎片问题,还可以改变存储器303的每个验证区域332和非验证区域331的大小。在最近的应用中,高速区域重定位是可能的,由于转换表1101被重写,因而要变小的物理块与要变大的物理块一样被定位。
现在,将描述涉及到未删除块的存储卡109的功能。更具体地,将要描述当收到未删除块列表指令和删除指令时,存储卡109的操作。这里,未删除块是闪存储器303内的物理块,含有没有实际删除的数据。也就是说,在块被再次使用前(在其它数据写入未删除块前),未删除块内的数据需要立即删除。
未删除块列表指令是指令判断控制单元322能够翻译和执行的指令的一种,用于获取闪存储器303内所有未删除块的列表。
存储在存储卡109的闪存储器303的现有数据必须在数据重新写入闪存储器303之前,删除在块的单元内。删除所要的时间大约是写入所用的总的时间的一半。所以,如果删除事先已经结束,写入所用的总时间将减少。因此,为了得到这样的结果,存储卡109提供了外部设备未删除块列表指令和删除指令。
假设闪存储器303的逻辑块和物理块的当前使用状态如图14A中所示。如图14A所示,逻辑块0到2为当前使用的,物理块0到2,4,和5是未删除块。
在前述的情形下,未删除块列表1203被存储在指令判断控制单元322内。对应图14A所示的块的使用情况的未删除块列表1203的内容如图14B所示。这里,未删除块列表1203是由条目构成的一个存储表,条目对应构成闪存储器303的所有物理块并具有表示在指令判断控制单元322的控制下的相应物理块的数据删除状态的数值(已经删除了数据的块用″0″表示,还没有删除数据的块用″1″表示)。
图14C是一流程图示出了PC 102或播放器201使用未删除块列表指令和在前状态的状态下的删除指令,事先删除块的步骤。这里假设闪存储器303包含表如表示逻辑块使用状态的FAT(文件分配表),如图14D所示。
外部装置如PC 102或播放器201,在存储卡109不被访问的等待时间里,向存储卡109发布未删除列表指令。一收到指令,存储卡109的指令判断控制单元322,就引用包含在指令判断控制单元322内的未删除块列表1203,检测被赋有状态值″1″的物理块0到2,4,和5,并把物理块数值送到外部装置。
然后,外部装置引用表示如图14D所示的闪存储器303内的逻辑块的使用状态表,以便识别块没有被逻辑地使用(S1202)。
外部设备,根据在步骤S1201和S1202获取的信息,识别″可删除的″块没有逻辑地使用并未被实际地删除(本例中是物理块4和5)(S1203)。然后,外部设备发布指定物理块号4和5的删除指令给存储卡109(S1204)。一收到指令,存储卡109的指令判断控制单元322就借助向验证区域访问控制单元325和非验证区域访问控制单元326送出指令,删除物理块4和5。
上述操作结束后,数据就高速写入物理块4和5,由于写数据已不再需要删除处理。
现在,将描述一项存储卡109的涉及到个人数据保护的功能。更具体地,当存储卡109为验证而检查外部设备和需要外部设备用户的个人数据时,要使用个人数据保护功能。这里,每则个人数据对每个用户是唯一的,并用来识别用户。具有适当个人数据的用户可以被存储卡109识别为授权用户,被允许访问存储卡109内的验证区域332。
这里,如果用户每次访问验证区域332都要求用户输入个人数据,或如果输入的个人数据存储在验证区域332以备每次这样的访问,就可能出现这样一个问题个人数据被人篡改,或被具有访问验证区域332权限的其它用户非法读取。
解决这一问题的一个可能的办法是使用由用户个人提供的口令加密个人数据并存储加密的个人数据,在一定程度上和音乐数据一样。
但是,在前述的情形下,每次检查个人数据时,都要求用户输入口令。这一过程麻烦,还需要口令管理。因此,存储卡109提供了回避这一问题的功能,不用必须地和重复地输入个人数据。
图15示出了验证中,播放器201与存储卡109之间的通信顺序,也示出了验证中用到的主要部件。注意到如图15所示的过程主要由播放器201的验证电路216和存储卡109的验证单元321得到的。
如图15所示,播放器201的验证电路216具有加密和解密功能,同时预存主密钥1301,等于存储卡109所持的主密钥323a,以及设备ID1302是对播放器唯一的ID,如产品序列号(s/n)。
存储卡109的验证单元321具有加密,解密和比较功能,还有两个非易失性存储区域设备ID组存储区域1310和用户密钥存储区域1311。设备ID组存储区域1310存储获准访问存储卡109的验证区域332的所有设备的设备ID。用户密钥存储区域1311存储作为个人数据从设备送来的用户密钥。
下面,将详细描述验证步骤。注意在传送和接收中,所有数据传送前被加密,在接收侧解密加密的数据。用于加密和解密的密钥,遵从下列步骤生成。
(1)存储卡109连接播放器201后,首先,播放器使用主密钥1301加密设备ID1302,并将加密设备ID1302送到存储卡109。
(2)存储卡109用主密钥323a解密收到的设备ID1302,并检查设备ID1302是否已经存储到了设备ID组存储区域1310。
(3)当存储卡判断设备ID1302已经存储,存储卡109就通知播放器201验证已经确认。当判断ID1302还没有存储,存储卡109就请求播放器201送来用户密钥。
(4)播放器201促使用户输入用户密钥,获得作为用户的个人数据的用户密钥,并向存储卡109发送得到的用户密钥。
(5)存储卡109比较收到的用户密钥与预存在用户密钥存储区域1311的用户密钥。当判定两个用户密钥匹配或当用户密钥存储区域1311为空时,存储卡109就通知播放器201验证已经确认,并把前述的步骤(3)得到的设备ID1302存入设备ID组存储区域1310。
使用上述措施,当用户的设备第一次连接到存储卡109时,要求用户输入个人数据(用户密钥)。但是,第二次及以后的连接中,不再要求用户输入个人数据,由于用设备ID验证已经自动地确认了。
现在,将结合图16,图17描述存储卡109和外部装置如PC 102或播放器201之间的各种验证协议。
图16示出了存储卡109和外部装置(本例中是播放器201)之间的各种验证内的通信顺序。
注意到如图16所示的过程主要通过播放器201的验证电路216,PC 102的控制程序111b,存储卡109的验证单元321实现。这里假设存储卡109的主密钥存储单元323存储加密的主密钥(加密的主密钥323),以及特殊区域304存储安全介质ID 343和介质ID 341,安全介质ID 343是用加密的介质ID 341生成的。
首先,播放器201向存储卡109发布指令,以便从存储卡109获取主密钥323b,并使用设备密钥211a解密获得的主密钥323b。该解密中用到的解密算法相当于现在已经从存储卡109读出的主密钥323b的加密中用到的加密算法。因此,当播放器201的设备密钥211a是授权的,解密的结果是恢复原来的主密钥。
之后,播放器201就向存储卡109发布指令,从存储卡109获取介质ID 341,并使用恢复的主密钥解密获取的介质ID。该加密中用到的加密算法和在存储在存储卡109内的安全介质ID 343的加密中用到的加密算法一样。因此该加密提供了和包含在存储卡109内的安全介质ID一样的安全介质ID。
播放器201和存储卡109使用他们分别具备的安全介质ID执行相互验证。通过这一相互验证,每个设备生成(OK/NG)信息和安全密钥,(OK/NG)信息表示远程设备是否已经验证,安全密钥作为时间变量密钥依赖于验证结果。两个设备拥有的安全密钥,只有当设备201和109都确认验证了其它设备时,才匹配,每执行一次相互验证,安全密钥要改变。
相互验证已经确认结束后,播放器201生成用于访问存储卡109内验证区域332的指令。更具体的,比如,当从验证区域332读出数据时,指令″安全读地址计数″的参数(24位地址″地址″,8位计数″计数″)被用安全密钥加密,加密的指令,由结合加密的参数和指令的标志(表示指令类型″安全读″的6位编码)生成,被送到存储卡109。
一收到加密的指令,存储卡109就判定指令的类型。在本示例中,指令被判定为″安全读″,以从验证区域332读数据。
当指令被判定为访问验证区域332的指令,包含在指令中的参数被使用通过相互验证得到的安全密钥解密。该解密中用到的解密算法符合由播放器201用到的指令的加密中的加密算法。因此,当相互验证确认完成时,也就是说,两个设备使用的安全密钥匹配时,由解密得到的参数应当等于由播放器201使用的原始参数。
然后,存储卡109从用解密的参数表示的验证区域内的扇区读出加密密钥425,用安全密钥加密读出的加密密钥,并把加密的加密密钥送到播放器201。
播放器201用通过相互验证得到的安全密钥解密接收到的数据。该解密中用到的解密算法符合存储卡使用的加密密钥425的加密中用到的加密算法。因此,当相互验证确认完成时,也就是说,两个设备使用的安全密钥匹配时,通过解密得到的数据应当等于原始的加密密钥425。
存储卡109,指令每次执行访问验证区域332,丢弃(删除)指令执行中用到的安全密钥。使用这样的排列,试图访问存储卡109内的验证区域332的外部设备,外部设备每次发布指令并在验证中确认,需要事先执行相互验证。
图17示出了如图16所示的相互验证的详细步骤的通信顺序。在本示例中,存储卡109和播放器201执行质询-应答式先后验证。
存储卡109生成随机数并把随机数作为质询数据送到播放器201,去检查播放器201是否合适。播放器201加密质询数据并把加密的质询数据返回给存储卡109,作为应答数据以证明播放器201的合适。存储卡109加密作为质询数据发送的随机数,比较接收到的应答数据和加密的质询数据。当接收到的应答数据与加密的质询数据匹配时,存储卡109判断播放器201的验证已经确认(OK),并从播放器201接收访问验证区域332的指令。当接收到的应答数据与加密的质询数据不匹配时,存储卡109判断播放器201的验证没有确认(NG),以及如果判断后播放器201发送指令访问验证区域332,存储卡109拒绝该指令。
播放器201执行相似的验证步骤检查存储卡109是否合适。也就是说,播放器201生成随机数并把随机数作为质询数据送到存储卡109,去检查存储卡109是否合适。存储卡109加密质询数据并把加密的质询数据返回给播放器201,作为应答数据以证明存储卡109的合适性。播放器201加密作为质询数据发送的随机数,比较接收到的应答数据和加密的质询数据。当接收到的应答数据与加密的质询数据匹配时,播放器201判断存储卡109的验证已经确认(OK),并访问存储卡内的验证区域332。当接收的应答数据与加密的质询数据不匹配时,播放器201判断存储卡109的验证没有确认(NG),就放弃访问验证区域332。
相互验证中用到的所有加密算法应当与存储卡109和播放器201的一样是授权的。存储卡109和播放器201获取安全密钥通过执行异或操作使用加密的质询数据和通过验证和合适性证明得到的应答数据。得到的安全密钥,或上述异或操作的结果,用于访问存储卡109内的验证区域332。使用这样的措施,设备109和201共享时间变量密钥是可能的,只有当他们在验证中已经确认了,时间变量密钥才对他们是共同的。这致使为访问验证区域332,确认验证必要条件。
安全密钥可以是用加密的质询数据、应答数据和安全介质ID的排除操作的结果。
现在,将结合图18和图19描述存储卡109内验证区域332和非验证区域331之间边界改变的各种功能。
图18A到18C示出了边界改变前闪存储器303的使用状态。图18A是一个存储器示意图,示出了闪存储器303内的物理块的结果。
图18B示出了一个转换表1103,它专用于非验证区域并存储在非验证区域访问控制单元326的非易失性存储区域。转换表1103示出了非验证区域331内的逻辑块和物理块之间的关系。非验证区域访问控制单元326引用转换表1103,把逻辑地址转换为物理地址或检查不合适的访问分配的存储区域外的访问。
图18C示出了一个转换表1102,它专用于验证区域并存储在验证区域访问控制单元325的非易失性存储区域。转换表1102示出了验证区域332内的逻辑块和物理块之间的关系。非验证区域访问控制单元325引用转换表1102,把逻辑地址转换为物理地址或检查不合适的访问分配的存储区域外的访问。
如图18A所示,改变边界前,由物理块0000到FFFF,物理块F000到FFFF的闪存储器303的外部,分配可选择块区域501,物理块0000到DFFF,其地址小于边界,分配给非验证区域331,以及物理块E000到EFFF,其地址大于边界,分配给验证区域332。
正如从图18B所示的转换表1103所理解到的,在非验证区域331内,逻辑块号匹配物理块号。另一方面,也如从图18C所示的转换表中所理解到的,在验证区域332内的逻辑块号和物理块号之间的关系是可逆的。也就是说,逻辑块0000到0FFF分别地对应物理块EFFF到E000。鉴于逻辑块是升序使用的,当边界移动时,要移动的物理块内的数据需要存储或移动,才得到了这样的排列。
图19A到19C示出了边界改变后闪存储器303的使用状态。图19A到19C分别对应图18A到18C。注意到边界移动是按从下面的步骤完成的(1)规定边界地址的专用指令通过指令引线输入到指令判断控制单元322;和(2)指令判断控制单元322重写验证区域访问控制单元325内的转换表1102和非验证区域331内的转换表1103。
如图19A到19C所示,边界从物理块E000与DFFF之间移动到物理块D000与CFFF之间。这意味着非验证区域331的大小减小了1000(16进制)个块,验证区域332的大小增加了1000(16进制)个块。
如图19B所示,随着前述的边界改变,非验证区域331的转换表1103被减少了1000(16进制)个条目,验证区域的大小增加了1000(16进制)个块,所以转换表1103示出了逻辑块0000到CFFF对应物理块0000到CFFF。反之,如图19C所示,验证区域33的转换表1102增加了1000(16进制)个条目,验证区域332的大小增加了1000(16进制)个条目,所以转换表1102示出了逻辑块0000到1FFF对应物理块EFFF到D000。
如前所述,在闪存储器303内的验证区域与非验证区域之间设定了边界,并可以通过移动边界改变两个区域的大小。这使得存储卡109能够用作不同的目的。比如,存储卡109可以主要用作存储需要版权保护的数字内容,或其它用途。
在验证区域和非验证区域内,边界改变所要移动和存储的数据的处理的数量可以减少,借助逻辑块与物理块的通信,所以,物理块用在大多数远程使用时的远程启动。
前述的逻辑块和物理块之间的通信很容易地完成,当提供了专用于验证区域332的转换表1102和专用于非验证区域的转换表1103时。
在上述的示例中,在验证区域332内,块的单元内的逻辑地址与物理地址之间的关系是可逆的。但是,也可以使用其它单元。比如,扇区或地址的单元内的逻辑地址与物理地址之间的关系可以是可逆的。
到此为止,结合其实施方案及其变化,已经描述了本发明的存储卡。但本发明并不局限于实施方案及其变化。
在上述实施方案中,每次发指令访问存储卡109的验证区域332,要求PC 102或播放器201用相同的步骤执行与存储卡的相互验证。但是,也可以根据指令的类型,使用简化的验证步骤访问验证区域332,比如,当发出写指令″安全写″时,可以不从存储卡109获取加密的主密钥323b和介质ID 341,但存储卡109可以执行写指令″安全写″,即使只确认完成了单向验证(由存储卡109对设备的验证)。用这样的排列,与版权保护相关不多的的指令执行速度很快。
本发明的存储卡109内的闪存储器303可以由其它存储媒体替代(如非易失性媒体,诸如硬盘,光盘和磁光盘)。使用任何这样的媒体,可以得到和本发明存储卡一样的效果,便携式存储卡能够保护存储数据的版权。
工业适用性正如从上述说明中所理解到的,本发明的半导体存储卡适合用作记录通过用网络如因特网传播的电子音乐的音乐内容的记录媒体。本发明的半导体也适合用作记录计算机程序或数据的记录媒体,特别适合用作便携式记录/再现装置的记录媒体。
权利要求
1.一种可以在电子设备中使用和/或从电子设备中移除的半导体存储卡,包括可再写非易失性存储器;和控制电路,其控制电子设备对可再写非易失性存储器内的验证区域和非验证区域的访问,其中控制电路包括非验证区域访问控制单元,其控制电子设备对非验证区域的访问;验证单元,其执行验证处理去检查电子设备是否具有访问半导体存储卡的权限,当电子设备具有访问半导体存储卡的权限时确认验证电子设备;和验证区域访问控制单元,只有当验证单元确认验证了电子设备时其才允许电子设备访问验证区域,其中借助将可再写非易失性存储器中预定大小的连续区域分成两块,生成了验证区域和非验证区域,以及半导体存储卡进一步包括用于保存关于验证区域与非验证区域之间的边界的信息的装置;和区域大小改变电路,其改变验证区域和非验证区域的大小,其中在删除可再写非易失性存储器中存储区域的所有内容之后,区域大小改变电路借助改变关于边界的信息来改变验证区域和非验证区域的大小,以及验证区域访问控制单元和非验证区域访问控制单元通过引用关于边界的信息来控制电子设备对验证区域和非验证区域的访问。
2.如权利要求1的半导体存储卡,其中验证单元生成反映验证处理结果的密钥,以及验证区域访问控制单元用验证单元生成的密钥解密加密的指令,并根据解密的指令控制电子设备对验证区域的访问,所述加密的指令是从电子设备发送的。
3.如权利要求2的半导体存储卡,其中验证单元对电子设备执行质询-应答式相互验证,并从质询数据和应答数据生成密钥,质询数据被发送到电子设备以检查电子设备是否具有访问半导体存储卡的权限,以及生成应答数据以表明验证单元具有访问半导体存储卡的权限。
4.如权利要求3的半导体存储卡,其中从电子设备发送的加密的指令包括标志字段和地址字段,标志字段未被加密并规定对验证区域访问的类型,地址字段被加密了并规定要访问的区域的地址,其中验证单元用密钥解密地址字段,并控制电子设备对验证区域的访问,使得对解密地址字段中的地址表示的区域进行在标志字段内规定的类型的访问。
5.如权利要求4的半导体存储卡,进一步包括识别数据存储电路,其预存对半导体存储卡唯一的识别数据,并使该半导体存储卡能够与其它半导体存储卡区分开,其中验证单元用识别数据存储电路内存储的识别数据对电子设备执行相互验证,并从识别数据生成密钥。
6.如权利要求1的半导体存储卡,其中区域大小改变电路包括验证区域转换表,其表示验证区域内逻辑地址和物理地址之间的关系;非验证区域转换表,其表示非验证区域内逻辑地址和物理地址之间的关系;和转换表改变单元,其根据来自电子设备的指令改变验证区域转换表和非验证区域转换表的内容,其中验证区域访问控制单元通过引用验证区域转换表控制电子设备对验证区域的访问,以及非验证区域访问控制单元通过引用非验证区域转换表控制电子设备对非验证区域的访问。
7.如权利要求6的半导体存储卡,其中构成具有预定大小的区域的利用较高物理地址来寻址的区域和利用较低物理地址来寻址的区域被分别分配给验证区域和非验证区域,非验证区域转换表示出了按升序排列的逻辑地址与按升序排列的物理地址之间的关系,以及验证区域转换表示出了按升序排列的逻辑地址与按降序排列的物理地址之间的关系。
8.如权利要求1的半导体存储卡,进一步包括预存数据的只读存储器电路。
9.如权利要求1的半导体存储卡,其中每个验证区域和非验证区域包括能够由电子设备读/写数据的读/写存储区域;和电子设备能够从其读数据但不能向其写数据的只读存储区域,控制电路进一步包括随机数发生器,每当电子设备写数据到可再写非易失性存储器时,其就生成随机数,以及验证区域访问控制单元和非验证区域访问控制单元中的每一个用该随机数加密数据,把加密的数据写到读/写存储区域,并把该随机数写到只读存储区域。
10.如权利要求1的半导体存储卡,其中控制电路进一步包括转换表,其示出验证区域和非验证区域的每一个内逻辑地址和物理地址之间的关系;和转换表改变电路,其按照来自电子设备的指令改变转换表的内容,以及验证区域访问控制单元和非验证区域访问控制单元通过引用转换表分别控制电子设备对验证区域和非验证区域的访问。
11.如权利要求1的半导体存储卡,其中控制电路进一步包括加密/解密单元,其加密将要写入验证区域和非验证区域的数据,并解密从验证区域和非验证区域读出的数据。
12.如权利要求1的半导体存储卡,其中非易失性存储器是闪存储器,以及控制电路进一步包括不被删除列表读取单元,按照来自电子设备的指令,其识别验证区域和非验证区域内的不被删除区域,并把表示不被删除区域的信息发送到电子设备。
13.如权利要求1的半导体存储卡,其中验证单元请求电子设备的用户在验证处理期间输入用户密钥,该密钥是对该用户唯一的信息,以及控制电路进一步包括存储用户密钥的用户密钥存储单元;识别信息存储单元,其存储识别已经由验证单元确认验证的电子设备的一个识别信息;和用户密钥请求禁止单元,在验证单元开始验证处理后,其从目标电子设备获取一个识别信息,检查从目标电子设备获取的一个识别信息是否已经存储在识别信息存储单元中,并且当从目标电子设备获取的该个识别信息已经存储在识别信息存储单元中时,禁止验证单元请求电子设备的用户输入用户密钥。
14.一种用于控制可以在电子设备中使用和/或从电子设备中移除的半导体存储卡的方法,该半导体存储卡包括可再写非易失性存储器;和用于保存关于验证区域与非验证区域之间的边界的信息的装置,所述验证区域与非验证区域是借助将可再写非易失性存储器中预定大小的连续存储区域分成两块而生成的;和控制电路,其控制电子设备对验证区域和非验证区域的访问,该控制方法包括以下步骤控制电子设备对非验证区域的访问;只有在通过验证处理已经确定电子设备具有访问验证区域的权限时才允许电子设备访问验证区域;以及在删除可再写非易失性存储器中连续存储区域的所有内容之后,借助改变关于边界的信息来改变验证区域和非验证区域的大小,其中验证区域访问控制步骤和非验证区域访问控制步骤通过引用关于边界的信息来控制电子设备对验证区域和非验证区域的访问。
全文摘要
一种半导体存储器卡包括控制IC(302),闪存(303),和ROM(304)。ROM(304)保存如对每个半导体存储器卡是唯一的介质ID的信息。闪存(303)包括一个验证存储器(332)和一个非验证存储器(331)。验证存储器只能由已被确认验证的外部设备访问。非验证存储器331能够由被确认或未被确认的外部设备访问。控制IC(302)包括控制单元(325)和(326),验证单元(321)等。控制单元(325)和(326)分别控制对验证存储器(332)和非验证存储器(331)的访问。验证单元(321)与外部设备执行相互验证。
文档编号G06F12/14GK1905073SQ200610106349
公开日2007年1月31日 申请日期2000年4月10日 优先权日1999年4月27日
发明者广田照人, 馆林诚, 汤川泰平, 南贤尚, 小塚雅之 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1