CN104350503A - 存储器设备和存储器系统 - Google Patents

存储器设备和存储器系统 Download PDF

Info

Publication number
CN104350503A
CN104350503A CN201280073465.9A CN201280073465A CN104350503A CN 104350503 A CN104350503 A CN 104350503A CN 201280073465 A CN201280073465 A CN 201280073465A CN 104350503 A CN104350503 A CN 104350503A
Authority
CN
China
Prior art keywords
data
information
main process
process equipment
key
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
Application number
CN201280073465.9A
Other languages
English (en)
Inventor
长井裕士
加藤拓
松下达之
松川伸一
津曲康史
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Publication of CN104350503A publication Critical patent/CN104350503A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2129Authenticate client device independently of the user

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

为了对主机设备进行认证,存储器设备被配置为将加密的第二密钥信息(FKB)输出到所述主机设备,将加密标识信息(E-SecretID)输出到所述主机设备,使用从所述主机设备接收的信息(HC)和所述第一密钥信息生成第三密钥信息(Hkey),使用从所述主机设备接收的随机数(RN)和所述第三密钥信息生成会话密钥(Skey),通过使用所述会话密钥对所述标识信息执行单向转换处理生成认证信息(Oneway-ID),以及将所述认证信息(Oneway-ID)输出到所述主机设备。

Description

存储器设备和存储器系统
技术领域
此处描述的实施例涉及存储器设备和存储器系统。
背景技术
通常,在需要信息安全的领域中采用认证技术,该技术使用在两个实体之间共享的秘密信息和密码作为证明他或她的有效性的措施。
例如,用于电子解决方案的IC卡(智能卡)中包括的IC芯片。IC芯片存储用于识别IC卡和密码信息的ID。此外,IC卡具有加密处理功能,用于根据ID和秘密信息执行认证。
作为内容数据版权保护技术的另一实例,用于证明SD卡(注册商标)有效性的内容保护技术是公知的(记录媒体内容保护(CPRM))。
[现有技术文件]
非专利文献1:记录媒体内容保护(CPRM)
http://www.4centity.com/
非专利文献2:媒体标识符
管理技术
(MIMT),http://www.4ecntity.com/
非专利文献3:D.Naor、M.Naor和J.Lotspiech等人所著的“Revocation and Tracing Schemes for Stateless Receivers(无状态接收机的撤销和追踪机制,Proc.CRYPTO 2001,LNCS 2139,Springer-Verlag,第41-62页,2001年)”。
发明内容
发明人待解决的问题
此处公开的实施例提供了一种可防止对秘密信息进行未授权使用的存储器设备和存储器系统。
解决问题的方式
根据下面描述的实施例的存储器设备包括第一到第三存储区。第一存储区是至少在所述存储器设备发售之后禁止从所述存储器设备的外部对其执行读取和写入的区域。第二存储区是允许从所述存储器设备的外部对其执行读取,同时禁止对其执行写入的区域。第三存储区是允许从所述存储器设备的外部对其执行读取和写入的区域。所述第一存储区是用于存储第一密钥信息(Nkey)和标识信息(SecretID)的区域。所述第二存储区是用于存储通过使用第二密钥信息(Fkey)对标识信息进行加密而生成的加密的标识信息(E-SecretID)的区域。所述第三存储区是用于存储通过对所述第二密钥信息进行加密而生成的加密的第二密钥信息(FKB)的区域。为了对主机设备进行认证,所述存储器设备被配置为将所述加密的第二密钥信息(FKB)输出到所述主机设备,将所述加密的标识信息(E-SecretID)输出到所述主机设备,使用从所述主机设备接收的信息(HC)和所述第一密钥信息生成第三密钥信息(Hkey),使用从所述主机设备接收的随机数(RN)和所述第三密钥信息生成会话密钥(Skey),通过使用所述会话密钥对所述标识信息执行单向转换处理生成认证信息(Oneway-ID),以及将所述认证信息(Oneway-ID)输出到所述主机设备。
此外,根据下面描述的实施例的主机设备是被分配标识密钥信息(IDKey)和第一密钥信息(Hkey)的主机设备。该主机设备包括第一数据生成单元和解密单元,所述第一数据生成单元使用从被认证者读取的密钥管理信息(FKB)生成可通过标识密钥信息(IDKey)解密的标识密钥信息(FKey),所述解密单元使用所生成的标识密钥信息(FKey)对从所述被认证者读取的加密的秘密标识信息(E-SecretID)进行解密以生成秘密标识信息(SecretID)。该主机设备还包括:生成随机数(RN)的随机数生成器。
第二数据生成单元,其使用第一密钥(Hkey)和随机数生成第一会话密钥(Skey);单向转换单元,其使用所生成的第一会话密钥(Skey)对所述秘密标识信息(SecretID)执行单向转换处理以生成第一单向转换数据(Oneway-ID);以及检验单元,其判定所述第一单向转换数据(Oneway-ID)和从所述被认证者接收的第二单向转换数据(Oneway-ID)是否匹配。当所述检验单元的判定结果为肯定时,对秘密标识信息(SecretID)和秘密信息(ASSV)执行单向转换处理以生成单向转换标识信息(EMID)。
根据下面描述的实施例的安全系统是包括控制器制造商、密钥发行者和媒体制造商的安全系统。所述控制器制造商在制造控制器时,向控制器中写入控制器密钥Kc和控制器唯一ID(IDcu),并且将所述控制器密钥Kc发送到所述密钥发行者。所述密钥发行者生成媒体设备密钥Kmd_i和媒体设备密钥证书Certmedia,并且使用所述控制器密钥Kc对媒体设备密钥Kmd_i进行加密以生成加密媒体设备密钥Enc(Kc,Kmd_i)。所述媒体制造商使用所述控制器中的所述控制器密钥Kc对接收自所述密钥发行者的加密媒体设备密钥Enc(Kc,Kmd_i)进行解密,并且使用通过所述控制器中的所述控制器唯一ID(IDcu)生成的控制器唯一密钥Kcu对通过解密获取的媒体设备密钥Kmd_i进行加密,然后将其存储在存储器中。
在根据下面描述的实施例的主机设备执行的第一存储器设备认证方法中,存储器设备由存储器设备制造商制造。
控制所述存储器设备的控制器由控制器制造商制造。
包括所述存储器设备和所述控制器的存储卡由存储卡制造商制造。
所述主机设备由主机设备制造商制造。
所述存储器设备包括:
第一存储区,至少在所述存储器设备发售之后禁止从所述存储器设备的外部对其执行读取和写入;
第二存储区,在所述存储器设备发售之前允许存储器设备制造商对其写入第二数据和密钥索引信息,并且可以由控制器执行读取,同时在所述存储器设备发售之后禁止对其执行写入;以及
第三存储区,在所述存储器设备发售之前允许所述存储器设备制造商对其写入第三数据,所述第三数据是加密密钥集,所述密钥中的每一者包括与所述密钥索引信息匹配的索引,并且在所述存储器设备发售之后允许所述控制器执行读取和写入,
一种允许处理所述存储器设备中的所述第一数据的电路。
一种认证处理包括:
从所述第三存储区读取所述第三数据;
将所述第三数据发送到所述主机设备;
从所述第二存储区读取所述第二数据;
将所述第二数据发送到所述主机设备;
从所述第二存储区读取所述密钥索引信息;
将所述密钥索引信息发送到所述主机设备;
从所述第一存储区读取所述第一数据;
使用所述存储器设备中的所述电路处理所述第一数据;
将结果信息发送到所述主机设备;以及
然后,使用从所述主机设备接收的信息认证所述存储器设备。
根据所述认证方法,所述系统的安全性将得到增强,因此同时用卡制造商写入的信息(记录在第三区域中)和存储器设备制造商写入的信息(记录在第二区域中)。除非这两种信息均正确,否则认证失败。此外,作为所述存储器设备制造商在所述第三区域中记录的信息集的索引信息是所述存储器设备制造商在所述第二区域中写入的信息。在此方面,除非这两种信息均正确,否则认证失败。而且,所述存储器设备制造商写入的数据是只读数据,所述卡制造商无法篡改该数据。此外,设置无法通过所述控制器读取或写入的第一区域,并且在所述存储器设备中设置处理电路。记录在所述第一区域中的数据被配置为仅在所述电路中的所述处理完成之后才被输出到所述存储器设备的外部。因此,可使用所述存储器设备制造商之外的人无法想到的数据执行认证。
根据下面描述的实施例的主机设备执行的第二存储器设备认证方法包括在执行所述第一认证方法中的从所述第二存储区读取所述第二数据的过程中执行的以下处理:
从所述主机设备发送特殊指令;
经由位于所述存储卡与所述主机设备之间的接口接收所述特殊指令;
响应于经由位于所述存储卡与所述主机设备之间的另一接口接收到所述特殊指令,通过所述控制器读取所述第二数据。
对于根据下面描述的实施例的主机设备执行的第三存储器设备认证方法,在执行所述第一和第二认证方法中的从所述存储区读取所述第二数据的过程中,这些处理的至少一者中引用的所述存储卡由包括存储功能的器件/部件/模块/或单元替代。
根据下面描述的实施例的第四存储器设备认证方法如下所述。
一种系统包括:
存储单元,其包括其中被写入第一数据并且限制对其执行访问处理的第一区域,在分别写入第二数据和索引信息之后限制对其执行部分访问处理的第二区域,以及其中被写入多个加密密钥的第三区域,每个密钥包括与所述索引信息匹配的信息;
控制单元,其由所述存储单元的制造商之外的制造商制造,并且控制所述存储单元;以及
可电连接到模块的设备。
所述设备和所述存储单元被做出如下配置:
所述第二数据、所述第三数据和所述索引信息被读取已被发送到所述设备;
所述第一数据被读取,并且使用所述第一数据获取的信息被发送到所述设备。然后,使用从所述设备接收的所述信息,执行认证所述存储器设备的处理。
下面描述的设备是包括标识信息和第一信息的设备。
所述设备包括:
第一生成单元,其使用从第二设备读取的管理信息,生成可通过标识信息解密的标识信息;
解密单元,其使用已生成的所述标识信息,对从所述第二设备读取的加密标识信息进行解密;
第二生成单元,其使用所述第一信息和随机数生成第一会话信息;以及
转换单元,其使用已生成的所述第一会话信息,对所述加密标识信息执行转换处理以生成第一转换信息,
当所述第一转换信息和从所述第二设备接收的第二转换信息匹配时,生成单向标识信息(EMID)。
在下面描述的系统中,第一企业在第一部分中写入第一部分信息和第一部分ID。所述第一部分信息被发送到第二企业。所述第一部分被发送到第三企业。
第二企业生成第二部分信息和第二部分证书信息,并且使用所述第一部分信息对所述第二部分信息进行加密以生成加密的第二部分信息。
第三企业使用所述第一部分中的所述第一部分信息对从所述第二企业接收的所述加密的第二部分信息进行解密,并且使用通过所述第一部分中的所述第一部分ID生成的信息,对通过解密获取的所述第二部分信息进行加密。
附图说明
图1解释第一实施例(第一内容数据保护技术);
图2解释第一实施例(第二内容数据保护技术);
图3示出根据第二内容数据保护技术的存储卡1000的配置实例;
图4解释根据第二实施例的存储卡1000的制造过程;
图5解释根据第二实施例的信息再现/记录系统的整体结构和操作;
图6解释根据第二实施例当内容数据C被从存储卡1000读取到主机设备2000时的操作;
图7是示出根据第三实施例的信息记录/再现系统的结构的框图;
图8解释使用基于椭圆曲线密码学的标准认证密钥交换时的操作步骤;
图9是示出根据第四实施例的存储器系统的配置实例的框图;
图10是示出根据第四实施例的存储器系统的认证流程的流程图;
图11是示出根据第四实施例的加密Fkey bundle(FKB)的配置实例的图表;
图12是示出根据第四实施例的存储器系统的配置实例的框图;
图13是示出根据第四实施例由NAND制造商执行的秘密信息写入处理的图表;
图14是示出图13中的处理的流程图;
图15是示出根据第四实施例由卡制造商执行的FKB写入处理的图表;
图16是示出图15中的处理的流程图;
图17是示出根据第一修正的被认证者的图表;
图18是示出根据第一修正下载FKB的系统的框图;
图19解释从服务器下载加密FkeyID bundle(FKB)以将其写入NAND型闪存100的流程;
图20A是示出根据第五实施例的存储器系统的配置实例的框图;
图20B解释第五实施例的第一修正;
图20C解释第五实施例的第一修正;
图20D解释第五实施例的第二修正;
图20E解释第五实施例的第二修正;
图21是示出根据第六实施例的存储器系统的配置实例的框图;
图22是示出根据第六实施例的存储器系统的认证流程的流程图;
图23是示出根据第七实施例的NAND芯片的整体配置实例的框图;
图24是示出根据第七实施例的存储器系统的认证流程的流程图;
图25示出功能控制的配置实例;
图26是示出根据第八实施例的NAND芯片的整体配置实例的框图;
图27示出NAND型闪存100的块Block1-n的配置;
图28示出存储单元阵列11的配置;
图29解释ROM块102中的只读数据;
图30是示出ECC的第一配置实例的框图;
图31是示出ECC的第二配置实例的框图;
图32是示出ECC的第三配置实例的框图;
图34是示出根据第八实施例的机密框中的机密数据的图表;
图35是示出根据第八实施例的访问控制模式的实例的图表;
图36是示出根据第八实施例的访问控制模式的使用实例的框图;
图37是示出根据第八实施例的测试流程的图表;
图38是示出根据第八实施例的数据擦除流程的图表;
图39是示出根据第九实施例的NAND芯片的配置实例的框图;
图40是示出根据第六实施例的NAND芯片的第一操作流程的图表;
图41是示出根据第六实施例的NAND芯片的第二操作流程的图表;
图42是示出根据第九实施例的测试流程的图表;
图43是示出根据第九实施例的隐藏信息的检查流程的图表;
图44是示出根据第十实施例的指令映射实例的时序图;
图45是示出根据第十实施例的指令映射实例的时序图;
图46是示出安装有被应用认证功能的NAND闪存的存储卡1000的配置实例的图表;
图47是示出被应用认证功能的NAND闪存100中的内容保护的第二应用实例的图表;
图48是示出使用被应用认证功能的NAND闪存100的硬盘驱动器(HDD)的第一配置实例的图表;
图49是示出使用被应用认证功能的NAND闪存100的硬盘驱动器(HDD)的第二配置实例的图表;
图50是示出被应用认证功能的NAND闪存100中的内容保护的第二应用实例的图表;
图51是示出被应用认证功能的NAND闪存100中的内容保护的第三应用实例的图表;
图52是示出被应用认证功能的NAND闪存100中的内容保护的第三应用实例的图表;
图53是示出读出放大器及其外围电路的配置实例的框图;
图54是图53中的读出放大器77和数据缓存12的等效电路图;
图55是其中多个实施例并存的主机设备2000和NAND闪存100的配置实例;
图56示出使用槽的方法;
图57解释将槽分为大类的方法,以及将密钥分配给主机设备2000和存储器100的方法;以及
图58示出比对密钥集中每一者的方法,以及在确保兼容性之后提供密钥集的方法。
具体实施方式
[第一实施例]
首先参考图1至图3,将解释第一实施例。
<第一内容保护技术>
参考图1,将解释以SD卡中使用的CPRM等为代表的第一内容保护技术。
具体是指用于内容数据保护的媒体ID认证方法,以及用于制造其中应用此技术的卡的步骤。
存储卡1000由以NAND闪存为代表的存储器100,以及用于控制存储器100的控制器200构成。存储器100和控制器200既可由同一制造商制造,也可分别由独立的制造商制造。图1示出其中控制器制造商A制造控制器200,存储器制造商B制造存储器100的情况。制造商A和B可属于同一公司。
存储器100和控制器200被组装为一体,并且被以卡的形式进行封装,从而制造存储卡1000。管理此组装的制造商被称为组装商C。
另外,主机设备2000由主机设备制造商D制造。主机设备制造商D从密钥颁发/管理中心3000接收主机密钥信息(Ihk),并且将其存储在主机设备2000中。而且,密钥颁发/管理中心3000将媒体密钥信息(Imk)提供给组装商C。
在此,在第一内容保护技术中,存储器100不具备安全功能,只有控制器200才具有安全功能。
另外,在第一内容保护技术中,控制器200不包含特殊的信息。在内容保护中具有重要作用的媒体ID被组装商C分配给存储器100。组装商C将媒体ID(IDm)存储在存储器100的非用户区域中,该媒体ID被分配有从密钥颁发/管理中心3000接收的媒体密钥信息Imk。
另一方面,主机设备制造商D以类似的方式从密钥颁发/管理中心3000接收主机密钥信息(Ihk)。主机密钥信息(Ihk)在制造过程中被分配给主机设备2000。
媒体密钥信息(Imk)和媒体ID(Idm)在存储卡1000和主机设备2000执行认证处理时被使用。使用基于这些信息片段建立的安全通道,执行用于防止篡改的方式。通过该安全通道,媒体ID(IDm)连同媒体密钥信息(Imk)一起被从存储卡1000发送到主机设备2000。主机设备2000通过将其中包含的主机密钥信息(Ihk)与媒体ID(IDm)和媒体密钥信息(Imk)进行比对,执行对存储卡1000的认证。
当认证完成时,主机设备200使用已接收的媒体ID(IDm),对用于内容保护的信息(例如,内容密钥)执行加密。主机设备2000还通过使用媒体ID(IDm)对内容密钥或内容附着信息执行加密处理(例如MAC(消息认证码)),来执行用于将内容数据和媒体ID(IDm)关联的处理(媒体绑定)。这样,即使内容数据、内容密钥或内容附着信息被非法复制到另一媒体,也可防止未授权的复制,因为未发现与媒体ID(IDm)的关联。
在此,可防止未授权复制的原因在于媒体ID(IDm)。如果每个存储卡1000都不包括唯一的媒体ID(IDm),但是多个存储卡1000共享同一媒体ID(IDm),则可以在不破坏内容保护系统的情况下对内容数据进行未授权复制。
最近,已制造了数亿个存储卡,组装商的数量也在显著增加。这样,无法将不同的媒体ID(IDm)分配给不同的存储卡的供应商的数量也在增加。这样导致多个包括相同媒体ID(IDm)的存储卡流入市场。
在这种情况下,需要提供一种可有效地防止伪造媒体ID(IDm)的方法。参考图2,在描述与第一内容保护技术的差别的同时,描述了第二内容保护技术。
<第二内容保护技术>
在第一内容保护技术中,组装商C将媒体ID(IDm)分配给存储卡1000。在第二内容保护技术中,控制器制造商A和存储器制造商B在制造控制器200或存储器100时分配特殊信息(在图2中,指加密ID、密钥和参数)。
具体而言,控制器制造商A根据从密钥颁发/管理中心3000接收的控制器密钥信息(Ick)生成特殊信息,并将此信息分配给控制器200。此外,存储器制造商B根据从密钥颁发/管理中心3000接收的存储器密钥信息(Imemk)生成特殊信息,并将此信息分配给存储器100。组装商C具有这样的功能:其将通过此方式被提供特殊信息的控制器200和存储器100与从密钥颁发/管理中心3000接收的媒体密钥信息(Imk)进行组合以组装存储卡1000。
在此,媒体密钥信息(Imk)通过加密状态提供,秘密信息不会向组装商C公开。所分配的特殊信息用于与媒体密钥信息(Imk)一起向主机设备2000进行认证。在该实例中,媒体ID(IDm)不会直接记录在控制器200或存储器100中。媒体ID(IDm)是基于控制器200或存储器100中存储的特殊信息导出的媒体标识信息。
此外,在第二内容保护技术中,存储器100具有安全功能,并且存储器制造商B在制造存储器100时将特殊信息分配给存储器100。就技术方面和市场方面而言,控制器制造商A的数量小于组装商C的数量。存储器制造商B的数量进一步小于控制器制造商A的数量。
在安全技术中,有必要让设备中处理数据的任一组件(例如存储卡1000或主机设备2000)务必具有信任堡垒(可信根)的角色。在此,要求被提供信任堡垒(可信根)角色的制造商是可靠的制造商。
本发明的发明人着重于以下事实:即,当制造商的数量(参与者的数量)增加时,不可靠制造商的数量也在增加,这样回到上面描述的概念。根据第二内容保护技术(图2),与仅允许组装商C分配媒体ID(图1)的第一内容保护技术相比,可以提高系统的稳定性。
在第二内容保护技术中,形成媒体ID(IDm)唯一性基础的特殊信息被同时提供给存储器100和控制器200。这样,即使存储器100或控制器200的安全性中的一者被破坏,也能保持系统稳定性,前提是另一者的安全性保持有效。此外,当任一制造商(A或B)被分配不适当的特殊信息时,可期望类似的效应。
然后,将参考图3解释根据第二内容保护技术的存储卡1000的配置实例。如上所述,存储卡1000由存储器100和控制器200构成。
控制器200包括隐藏区201,用于记录特殊信息和其它秘密信息;认证电路202,用于提供安全功能;存储器控制电路203,用于控制存储器100;存储器接口204;以及主机接口205。
存储器100包括隐藏区101,用作存储区以记录特殊信息和其它秘密信息;ROM区102,用于记录随附特殊信息和机密信息的管理信息;以及读/写区103。而且,存储器100包括认证电路107,用于提供安全功能,以及存储器外围电路108,用于控制数据的读取/写入/擦除。
对于存储器100,读/写区103是向控制器200提供正常存储区功能的区域。但是,控制器200进一步将读/写区103分类为多个区域,并且控制器200控制主机设备2000对存储器100的访问。也就是说,读/写区103被进一步分类为系统信息记录区104(系统区)、机密记录区105(受保护区)和正常记录区(正常区),对于系统信息记录区104,只有控制器200可针对主机设备2000访问,但是主机设备2000无法访问该区域;对于机密记录区105,可在主机设备2000与控制器200之间的认证成功时由主机设备2000访问;对于正常记录区,可在不认证的情况下从主机设备2000访问。
正常记录区106被用作正常数据记录区,用于存储用户数据等。机密记录区105用于记录诸如内容密钥和媒体密钥之类的秘密信息。系统信息记录区104用于记录上述特殊信息、秘密信息、随附它们的管理信息等。
在下面将描述的实施例中,将解释使用被分别提供给控制器200和存储器100的特殊信息等的方法。首先,将解释存储在控制器200中的特殊信息。接下来解释存储在存储器100中的特殊信息。
现在参考图4,将描述制造存储卡1000的方法,以及写入媒体设备密钥Kmd_i和媒体设备密钥证书Certmedia的方法。在图4中,与第一实施例(图2)的组件类似的组件被分配相同的参考标号。在该实施例中,作为特殊信息和控制器唯一ID(IDcu)的控制器密钥Kc只被提供给控制器200。需要指出,控制器密钥Kc和控制器唯一ID(IDcu)被控制器制造商A记录在控制器200的隐藏区(图4中未示出)中。但是,也可以像第一实施例中解释的那样,根据下面描述第四实施例,存储器制造商B将特殊信息存储在存储器100中。控制器密钥Kc和控制器唯一ID(IDcu)可被存储在控制器内设置的熔丝电路中。但是,存储方法不限于此。
控制器密钥Kc的唯一性和控制器唯一ID(IDcu)的唯一性可能不同。例如,每个控制器200可包括具有唯一值的控制器密钥Kc。备选地,每一批控制器200可具有它们的唯一值。或者控制器200的每个制造商可具有它的唯一值。此外,每个控制器200可包括具有唯一值的控制器唯一ID(IDcu)。备选地,每一批控制器200可具有它们的唯一值。或者控制器200的每个制造商可具有它的唯一值。尽管唯一性的粒度可根据需要选择,但是优选地,控制器密钥Kc和控制器唯一ID(IDcu)中的至少一者对于不同的控制器200具有唯一值。
要在存储卡1000中写入的媒体设备密钥Kmd_i和媒体设备密钥证书Certmedia被从密钥颁发/管理中心3000提供给组装商C(Kmd_i和媒体设备密钥证书Certmedia是构成对应于图2中的媒体密钥信息的信息集市的信息)。组装商C将被提供作为特殊信息和控制器唯一ID(IDcu)的控制器密钥Kc的控制器和存储器100进行组合以组装存储卡1000。然后,组装商C将媒体设备密钥Kmd_i与媒体设备密钥证书Certmedia一起进行加密并将它们写入存储器100。在这种情况下,被分配给控制器200的控制器Kc和控制器唯一ID(IDcu)用于写入媒体设备密钥Kmd_i。
媒体设备密钥Kmd_i和媒体设备密钥证书Certmedia被经由控制器200写入存储卡1000中包括的存储器100的信息记录区104。尽管在图4中被省略,但是存储卡1000连接到具有特定通信功能的设备(例如,个人计算机、移动电话终端、公共终端等)。通过此具有通信功能的设备,在密钥颁发/管理中心3000中颁发的数据被写入存储卡1000。
需要指出,控制器密钥kc被密钥颁发/管理中心3000分配并且被提供给控制器制造商A。备选地,它被控制器制造商A分配,并且被通知给密钥颁发/管理中心3000。控制器唯一ID(IDcu)被分配给控制器制造商A。控制器唯一ID(IDcu)根据需要被通知给密钥颁发/管理中心3000。备选地,控制器唯一ID(IDcu)由密钥颁发/管理中心3000分配,并且被提供给控制器制造商A。需要指出,可使用PGP加密在控制器制造商A与密钥颁发/管理中心3000之间接收和发送控制器Kc。
密钥颁发/管理中心3000包括密钥生成单元3002,用于生成媒体设备密钥Kmd_i和媒体设备密钥证书Certmedia;设备密钥数据库3001,用于管理所生成的媒体设备密钥Kmd_i和媒体设备密钥证书Certmedia;以及加密单元3003,其使用从控制器制造商A接收的控制器密钥Kc加密媒体设备密钥Kmd_i。
控制器密钥Kc用于加密密钥颁发/管理中心3000中的媒体设备密钥Kmd_i。媒体设备密钥Kmd_i在密钥生成器3002中生成,然后被存储在设备密钥数据库3001中。加密单元3003被从设备密钥数据库3001提供对应的媒体设备密钥Kmd_i,并且使用控制器密钥kc对其进行加密以生成加密媒体设备密钥Enc(Kc,Kmd_i)。
控制器密钥Kc是仅控制器制造商A和密钥颁发/管理中心3000可获取的信息。但是,为了降低有关控制器密钥Kc的信息由于意外或者特定原因被泄露给外部所造成的损失,理想的做法是在不同的组(包括特定数量的控制器,例如以生产批次为单位)之间使用不同的控制器密钥Kc。
需要指出,在密钥生成器3002和设备密钥数据库3001中,不仅存储卡1000的媒体设备密钥Kmd_i和媒体设备密钥证书Certmedia被生成和维护,而且主机设备2000的主机设备密钥Khd_i或主机设备证书Certhost也会以类似的方式被生成和维护。
组装商C被提供来自控制器制造商A的控制器200,并且从密钥颁发/管理中心3000接收针对控制器200加密的媒体设备密钥(加密媒体设备密钥Enc(Kc,Kmd_i)),以及对应于媒体设备密钥的媒体设备密钥证书Certmedia。为了接收所需的加密媒体设备密钥Enc(Kc,Kmd_i),可提供控制器200的型号或其生产批号。这样允许接收通过真正的控制器密钥Kc加密的媒体设备密钥。
在存储卡1000的生产过程中,加密媒体设备密钥Enc(Kc,Kmd_i)被临时写入控制器200的缓冲区RAM(未示出)。然后,控制器200使用其自己的解密器206中存储的控制器密钥Kc对加密媒体设备密钥Enc(Kc,Kmd_i)进行解密。从而在控制器200中提供媒体设备密钥Kmd_i。
另一方面,单向转换器211使用控制器200中存储的控制器密钥Kc和控制器唯一ID(IDcu)(作为控制器200的输入值)执行单向功能以生成控制器唯一密钥Kcu。使用这个新生成的控制器唯一密钥Kcu在加密器207中再次加密媒体设备密钥Kmd_i,从而生成加密媒体设备密钥Enc(Kc,Kmd_i)。该加密媒体设备密钥Enc(Kc,Kmd_i)被存储在存储器制造商B提供的存储器100的系统信息记录区104中。在这种情况下,对应于加密媒体设备密钥Enc(Kc,Kmd_i)的媒体设备密钥证书Certmedia被以类似的方式存储在系统信息记录区104中。
控制器唯一密钥(Kcu)被使用安全地存储在控制器200中的作为特殊信息的控制器密钥Kc和控制器唯一ID(IDcu)生成,然后被提供用于防止控制器外部的读取或更改的装置。因此,对加密媒体设备密钥Enc(Kc,Kmd_i)进行解密所需的信息被泄露给外部的风险很小。很难假执行媒体设备密钥Kmd_i的再加密(通过原始控制器唯一密钥Kcu1解密之后,使用另一控制器唯一密钥Kcu2对其进行加密)以便被写入存储器100的加密媒体设备密钥Enc(Kc,Kmd_i)可在单独的控制器200中使用。
在第二实施例中,使用单向功能来根据控制器密钥Kc和控制唯一ID(IDcu)生成控制器唯一密钥Kcu。但是可以采用这样一种功能:即,可以根据两个输入数据片段生成一个输出数据片段。该功能不限于单向功能。例如,可以使用AES(高级加密标准)加密器等生成控制器唯一密钥Kcu。
存储卡1000通过上述过程制造。下面将解释认证方法和使用此方法制造的存储卡1000的信息记录/再现系统。
<系统配置>
现在参考图5,将描述根据第一实施例的信息记录/再现系统的整体结构和操作。
如上所述,存储卡1000被提供加密媒体设备密钥Enc(Kc,Kmd_i)和媒体设备密钥证书Certmedia。此存储卡1000连接到主机设备2000,如图5所示。这样允许存储卡1000被写入从主机设备2000提供的内容数据C,或者允许存储卡1000将所提取的内容数据C输出到主机设备2000,如图5所示。存储卡1000和主机设备2000一起形成信息记录/再现系统。
在此,将描述主机设备2000的结构。主机设备2000包括存储单元401、认证/密钥交换处理单元402、ID组合单元403、单向转换器404、随机数生成器405、加密器/解密器406和加密器/解密器407。
存储单元401存储上述主机设备密钥Khd_j和主机设备证书Certhost。主机设备密钥Khd_j是公钥密码系统的私钥,主机设备证书Certhost是包括与主机设备密钥Khd_j配对的公钥的数据。
认证/密钥交换处理单元402具有以下功能:其通过接口单元500、202和安全通道执行与存储卡1000的认证/密钥交换处理单元213的认证/密钥交换处理以输出媒体设备密钥证书ID(IDm_cert)。此外,ID组合单元403被配置为基于公共的控制器唯一ID(IDcntr)和媒体设备密钥证书ID(IDm_cert)生成存储卡唯一ID(Idmc)。
需要指出,公共的控制器唯一ID(IDcntr)具有与控制器唯一ID(IDcu)的值不同的值。该值是ID生成器212使用控制器密钥Kc和控制器唯一ID(IDcu)生成的值。作为在ID生成器212中生成该值的方法,可以使用单向功能的方法作为例证。此方法可使用其它功能,只要一个输出数据片段可根据两个输入数据片段生成即可。所述功能不限于单向功能。
该ID组合单元403作为标识信息生成单元工作,用于基于控制器唯一ID(IDcntr)和媒体设备密钥证书ID(IDm_cert)生成存储卡唯一ID(IDmc)。该ID组合单元403仅连接两个ID以生成另一新ID。作为此简单组合的替代,例如可以使用单向功能或加密算法生成新ID。
单向转换器404使用单向功能生成媒体唯一密钥Kmu,在随机数生成器405中生成的存储卡唯一ID(IDmc)和媒体密钥Km被输入该转换器。随机数生成器405生成随机数,然后基于所获取的随机数生成媒体密钥Km和标题密钥Kt。加密器/解密器406通过上述媒体唯一密钥Kmu对标题密钥Kt进行加密。此外,加密器/解密器407通过标题密钥kt对内容数据C进行加密(以获取加密内容数据Enc(Kt,C))。
需要指出,在该实施例中,媒体唯一密钥Kmu由主机设备2000升恒,并且媒体唯一密钥Kmu被用作加密密钥以对标题密钥Kt进行加密。与传统的内容保护技术类似,还可以采用这样的机制:其中存储在机密记录区105中的媒体唯一密钥Kmu直接用于对内容数据C进行加密。另外,也可使用双加密密钥机制,其中用户唯一的用户密钥Ku通过媒体唯一密钥Kmu进行加密,内容密钥Kct通过用户密钥Ku进行加密,进一步地,内容数据通过内容密钥Kct进行加密。此外,媒体密钥Km和标题密钥Kt不仅可在主机设备中生成,它们也可提前被写入存储卡1000,或者可从外部设备(未示出)提供。
<写入内容数据的方法>
接下来,将参考图5描述从主机设备2000将内容数据C写入存储卡1000的操作。首先,存储卡1000使用单向转换器211,根据控制器密钥Kc和控制器唯一ID(IDcu)生成控制器唯一密钥Kcu。然后,使用该控制器唯一密钥Kcu对加密媒体设备密钥Enc(Kc,Kmd_i)进行解码,从而获取媒体设备密钥Kmd_i。媒体设备密钥Kmd_i和媒体设备密钥证书Certmedia被发送到认证/密钥交换处理单元213。
另一方面,主机设备2000将主机设备密钥Khd_j和主机设备证书Certhost发送到认证/密钥交换处理单元402。从而在认证/密钥交换处理单元213和402中执行认证/密钥交换处理。当该处理完成时,在存储卡1000与主机设备2000之间建立安全通道。当安全通道建立时,ID生成器212可通过接口单元200和502,以及通过安全通道输出自己生成的公共的控制器唯一ID(IDcntr)。将使用图8解释认证/密钥交换处理。
当安全通道建立时,ID生成器403连接公共的控制器唯一ID(IDcntr)和媒体设备密钥证书ID(IDm_cert)以生成存储卡唯一ID(IDmc)。
主机设备2000使用随机数生成器405生成媒体密钥(Km),并经由安全通道以及接口单元500和202将所生成的媒体密钥Km存储在存储器100的机密记录区105中。
主机设备2000使用单向转换器404,根据媒体密钥Km和存储卡唯一ID(IDmc)生成媒体唯一密钥Kmu。
主机设备2000使用随机数生成器405生成标题密钥Kt,并且进一步使用加密器/解密器406,通过媒体唯一密钥Kmu对标题密钥Kt进行加密。加密标题密钥Kte=Enc(Kmu,Kt)被存储在存储卡1000的正常记录区106中。
主机设备2000使用标题密钥Kt对内容数据C进行加密,加密内容数据Ce=Enc(Kt,C)被存储在存储卡1000的正常记录区106中。通过上述处理,完成内容数据C的记录操作。
<读取内容数据的方法>
接下来,将参考图6描述将内容数据C从存储卡1000读到主机设备2000时的操作。认证/密钥交换处理单元213和402中的认证/密钥交换处理,以及ID组合单元403中的操作一般与写入操作(图5)中相应处理和操作相同。
当认证/密钥交换处理完成,从而建立安全通道时,便可访问机密记录区105和系统信息记录区104(也就是说,可指定机密记录区105和系统信息记录区104的逻辑地址)。此外,存储在存储卡1000的机密记录区105中的媒体密钥Km被通过安全通道提供给主机设备2000的单向转换器404。单向转换器404使用该媒体密钥Km和上述存储卡唯一ID(IDmc)生成媒体唯一密钥Kmu。加密器/解密器406使用该媒体唯一密钥Kmu对存储卡1000中存储的加密标题密钥Enc(Kmu,Kt)进行解码,从而获取标题密钥Kt。然后,加密器/解密器407使用所提供的标题密钥Kt对存储卡1000中存储的加密内容数据Enc(Kt,C)进行解密,从而获取内容数据C。
如上所述,在该实施例中,根据公共密钥密码系统的媒体设备密钥Kmd_i和媒体设备密钥证书Certmedia用于认证/密钥交换处理。但是,控制器唯一ID(IDcntr)基于控制器200的控制器密钥Kc和控制器唯一ID(IDcu)生成,并且被通过安全通道提供给主机设备2000。由于通过安全通道发送,因此控制器唯一ID(IDcntr)不会泄露给外部,从而防止伪造。
另外,ID组合单元403基于该控制器唯一ID(IDcntr)和媒体设备密钥证书ID(IDm_cert)生成存储卡唯一ID(IDmc)。基于该存储卡唯一ID(IDmc),生成存储卡1000中的存储器100的媒体唯一密钥Kmu。这样,根据该实施例,即使处理使用公共密钥密码系统的认证/密钥交换,控制器200唯一的控制器唯一ID(IDcntr)也可与一对公钥和私钥相关,从而防止克隆卡的传播。
[第三实施例]
图7是示出根据第三实施例的信息记录/再现系统的结构的框图。由于存储卡1000的硬件结构可以与图3所示的结构类似,因此下文省略对其的解释。在该实施例中,如图7所示,认证/密钥交换处理单元213的操作有所不同。也就是说,对于此处的认证/密钥交换处理单元213,在ID生成器212中生成的公共的控制器唯一ID(IDcntr)不被直接发送到主机设备2000,而是被发送到控制器200中的认证/密钥交换处理单元213。然后,使用公共的控制器唯一ID(IDcntr)作为认证/密钥交换处理的参数之一。
当认证/密钥交换处理完成时,公共的控制器唯一ID(IDcntr)与媒体设备密钥证书ID(IDm_cert)一起被发送到ID组合单元403。之后的操作一般与第二实施例相同。
图8描述使用基于椭圆曲线密码学的标准认证/密钥交换时的操作步骤。
主机设备生成随机数RNh(步骤S1),然后将其与主机设备证书Certhost一起发送到存储卡1000(步骤S2)。存储卡1000检验所接收的主机设备证书Certhost中包含的数字签名,并生成随机数RNm(步骤S3)。
接下来,存储卡1000将随机数RNm和媒体设备密钥证书(Certmedia)发送到主机设备(步骤S4)。响应于此,主机设备2000检验所接收的媒体设备密钥证书Certmedia中包含的数字签名。在执行步骤S4时,存储卡1000生成椭圆曲线密码学中的Diffie-Hellman密钥交换处理所需的随机数Mk。还会使用椭圆曲线的基准点G计算质询Mv(=Mk*G)的值。在ID生成器212中生成公共的控制器唯一ID(IDcntr)。此外,使用媒体设备密钥Kmd_i,生成质询Mv的值、在步骤S2接收的随机数RNh和控制器唯一ID(IDcntr)的数字签名(步骤S6)。存储卡1000将在步骤S6生成的质询Mv的值、在步骤6生成的控制器唯一ID(IDcntr)和数字签名发送到主机设备2000(步骤S7)。
主机设备2000检验在步骤S7接收的签名,生成椭圆曲线密码学中的Diffie-Hellman密钥交换处理所需的随机数Hk,并使用椭圆曲线的基准点G计算质询Hv(=Hk*G)的值。然后它使用主机设备密钥Khd_j生成质询Hv的值和在步骤S4接收的随机数RNm的数字签名,并且计算认证/密钥交换处理共享的共享密钥Ks(=Hk*Mv)(步骤S8)。
主机设备2000将在步骤S8生成的质询Hv的值和数字签名发送到存储卡1000(步骤S9)。响应于此,存储卡1000检验在步骤S3接收的数字签名,然后计算共享密钥Ks(=Mk*Hv)。
当在上述处理中无法通过数字签名检验处理正确地检查签名时,随后的处理在任一步骤中终止。
通过执行上述认证/密钥交换处理,存储卡可安全地与主机设备共享共享密钥。在认证/密钥交换处理中,共享密钥使用主机设备和存储卡生成的质询计算。因此,共享密钥的值在不同的认证/密钥交换处理当中不同。
在上述实施例中,公共的控制器唯一ID(IDcntr)在ID生成器212中基于一对控制器密钥Kc和控制器唯一ID(IDcntr)生成。但是,除此之外,公共的控制器唯一ID(IDcntr)也可仅基于控制器唯一ID(IDcu)生成。在使控制器唯一ID(IDcu)以加密状态保持隐藏的同时,只要控制器200可生成能够向外部公开的其它特殊信息,此处使用的参数便可以是任何参数。但是,用于生成的功能需要为不可逆功能,例如单向功能。也就是说,有必要选择这样的功能:通过此功能,无法通过基于所获取的公共的控制器唯一ID(IDcntr)执行反向计算来获取原始控制器唯一ID(IDcu)。
[第四实施例]
接下来参考图9,将描述根据第四实施例的认证者、被认证者和认证方法。在该实施例中,示出这样一个实例:其中作为特殊信息的秘密信息Nkey和秘密标识信息SecretID仅由存储器制造商B提供给存储器100。但是,如在第一实施例中解释的那样,根据上述第二和第三实施例,该实施例可与这样的实例组合:其中控制器制造商A将特殊信息存储在控制器200中。
<1.配置实例(存储器系统)>
将参考图9描述根据第四实施例的存储器系统的配置实例。
图9示出存储器制造商B将秘密信息Nkey和秘密标识信息SecretID提供给存储器100之后的状态。在该实施例中,示出这样一个实例:其中存储器100例如是NAND型闪存。在此,秘密信息Nkey和秘密标识信息SecretID的唯一性可通过任何方式确定。例如,每个存储器100可包括具有唯一值的秘密信息Nkey。备选地,每一批存储器100可包括具有唯一值的秘密信息Nkey。或者存储器100的每个制造商可包括具有唯一值的秘密信息Nkey。此外,每个存储器100可包括具有唯一值的秘密标识信息SecretID。备选地,每一批存储器100可包括具有唯一值的秘密标识信息SecretID。或者存储器100的每个制造商可包括具有唯一值的秘密标识信息SecretID。
尽管唯一性的粒度可根据需要选择,但是优选地,秘密信息Nkey或秘密标识信息SecretID中的至少一者对于不同的存储器100具有唯一值。
如图所示,根据第四实施例的存储器系统包括作为被认证者的NAND闪存100、作为认证者的主机设备2000,和作为二者之间中介的控制器200。主机设备2000经由控制器200访问NAND闪存100。
在此,将简要描述诸如NAND闪存100之类的半导体产品的制造过程。半导体产品的制造过程主要分为预处理和后处理。预处理在衬底晶圆上形成电路,而后处理将晶圆切割为多个片,然后执行布线并使用树脂封装所述片。
控制器200通过多种方式配置,例如被配置为在预处理中纳入NAND闪存100,被配置为在后处理中纳入相同的封装(虽然预处理不包括此步骤),并且作为与NAND闪存100不同的芯片提供。下面包括图9的描述根据这样的情况提供:其中控制器200被作为与例如NAND闪存100不同的芯片提供。控制器200和NAND闪存100以卡形式封装(存储卡1000),例如图3所示。但是,它们不限于此形式。
如果下面不专门提及,则控制器200在许多情况下作为主机设备2000与NAND闪存100之前的中介以在这两者之间交换数据和指令。即使在这种情况下,控制器200也不会更改上述数据和指令的本质内容,因此,详细信息可下文中简单地说明。下面将提供NAND闪存100和控制器200的配置实例详细信息。
此外,如果主机设备2000被配置为专用硬件(例如,家用设备),则不仅可以假设通过组合专用硬件与固件配置设备的情况,而且还可以假设设备的所有功能通过在PC中操作的软件实现的情况。该实施例基本可以应用,不用考虑主机设备2000采取哪种配置。
下面将描述图9所示的每个组件和数据处理。该实施例示出这样的方法:此方法读取通过对第三方隐藏的状态存储在被认证者中的秘密标识信息SecretID,并检验数据是从真实的被认证者读取,它还示出将此方法应用于使用NAND闪存100的存储器系统时的配置实例。
1-1.NAND闪存
在该实施例中,NAND闪存100为被认证者。
如图所示,根据该实施例的NAND闪存100包括单元阵列(Cell array)11;数据缓存(Data Cache)12,其设置在单元阵列11的外围区域;数据生成器(Generate)13、14,以及单向转换器(Oneway)15。数据生成器(Generate)13、14和单向转换器(Oneway)15构成认证电路107。
单元阵列11包括:隐藏区(Hidden area)101,其中禁止从外部进行读写;ROM区(ROM area)102,其中禁止从外部写入;读/写区(Read/Writearea)103,其中允许从外部进行读写等。
读/写区(正常区)103是这样的区域:可从NAND闪存100的外部写入数据,并且可将数据读到NAND闪存100的外部。在读/写区103,存储密钥管理信息FKBv(家族密钥块),该块是准备隐藏Fkeyv的加密Fkeybundle。与NAND闪存100中记录的其它数据相比,密钥管理信息FKBv不仅可在制造NAND闪存100时记录,而且还可在通过连接控制器和NAND闪存100来制造用于普通用户的存储媒体(例如,SD卡)时记录。备选地,密钥管理信息FKBv可在销售存储媒体之后,根据用户的请求从服务器下载并记录。下面将描述其详细信息。
密钥管理信息FKBv是用于基于主机设备2000存储的秘密信息IDKeyk以及秘密信息IDKeyk的索引信息k对隐藏信息Fkeyv进行解密的信息,或者是用于基于主机设备2000存储的秘密信息IDKeyk以及主机设备2000的标识信息对隐藏信息Fkeyv进行解密的信息。
密钥管理信息FKBv可以是专门为NAND闪存100中的每一者准备的信息。需要指出,此信息可以是通常附着到(可关联到)多个NAND闪存100(例如根据制造过程的NAND闪存100的生产批次单元或晶圆单元)的信息。密钥管理信息FKBv的索引信息v可以是密钥管理信息FKBv的标识信息或版本号信息。
隐藏区101是禁止从NAND闪存100的外部进行读写的区域。在隐藏区101中,记录NAND闪存100用于认证处理的秘密信息Nkeyi以及NAND闪存100的秘密标识信息SecretID。
ROM区102是禁止从NAND闪存100的外部写入的区域,但是允许从中读取数据。在ROM区102,记录指示密钥管理信息FKBv所隐藏的隐藏信息FKeyv的索引信息v(FKey的索引)、通过隐藏信息FKeyv加密的秘密标识信息(SecretID)(E-SecretID)和指示秘密信息NKeyi的索引信息i(NKey的索引)。
在该实施例中,数据一般在附着错误校正码之后记录,这样,即使在记录索引信息i或索引信息v时数据中发生错误,也可读取正确的标识信息。但是,为了简化描述,不专门阐述错误校正编码和解码过程。
附带地,ROM区102例如可以是仅允许写入一次数据的OTP(一次性程序)区域,也可以是正常区,对于正常区而言,在被转换为只读区域(通过在发售之后重写管理标志)之前,允许在NAND闪存100的制造过程中执行读写操作。备选地,可使用这样一种方法:其中区域写入指令被设定为不同于正常区指令的特定指令,并且该特定指令不被提供给NAND闪存100的接收者。
此外,还可以采用这样的配置:其中控制器200将被提供给主机设备2000的功能限制为只读,尽管该区域被视为NAND闪存100中的正常区。
下面将描述,记录在ROM区102中的信息与记录在隐藏区101中的信息关联。因此,如果记录在ROM区102中的信息被篡改,则NAND闪存100的认证功能无法正常工作。因此,不存在由于篡改导致的安全性问题。所以,无需准备ROM区102,并且ROM区102可被允许读写数据的正常区取代。
在这种情况下,图中的ROM区102可被读/写区(正常区)103取代。在此方面,ROM区102中记录的数据的一部分可记录在读/写区(正常区)103中。例如,可存在这样的配置:其中索引信息v(Fkey的索引)记录在读/写区(正常区)中,并且加密的秘密标识信息(E-SecretID)和索引信息v(FKey的索引)记录在ROM区102中。ROM区102的上述配置实例也适用于此处描述的ROM区102,如下面的其它实施例或修正。
加密的秘密标识信息E-SecretID是使用隐藏信息FKeyv对唯一地附着在NAND闪存100中的每一者上的秘密标识信息SecretID进行加密获取的数据。备选地,为了其中内容数据被提前记录在NAND闪存100中并且在销售时设定的预记录内容分布,相同的内容数据提前记录在NAND闪存中。在这种情况下,相同的E-SecretID记录在存储内容数据的NAND闪存中。在这种情况下,例如,相同的加密标识信息可被存储在多个NAND闪存中。
数据缓存12临时存储从存储器(单元阵列)11读取的数据。
数据生成器13、14是通过基于多个输入数据片段执行预设的操作生成输出数据的电路。
数据生成器13通过使用上述秘密信息NKeyi转换从主机设备2000接收的常数HCj生成秘密信息HKeyi,j。数据生成器13通过使用秘密信息HKeyi,j转换从主机设备2000接收的随机数RNh生成会话密钥SKeyi,j。数据生成器13和14可实现为硬件(电路)、软件或硬件和软件的组合。
如果数据生成器13和14被实现为电路,则与下面描述的单向转换器15相同的电路、转移单向转换器的电路,或高级加密标准(AES)加密器可用于使电路尺寸整体变小。类似地,两个数据生成器(被示出为不同的组件,以便于理解数据处理程序)可通过重复地形成相同的电路来形成。在该实例中,可采用HKeyi,j=AES_E(NKeyi,HCj)、SKeyi,j=AES_E(HKeyi,j,RNh)等的配置。
单向转换器15分别对输入数据和密钥数据输入执行单向转换以输出单向转换的输入数据。单向转换器15可实现为硬件(电路)、软件或硬件和软件的组合。
单向转换器15通过单向功能,使用数据生成器14生成的会话密钥SKeyi,j转换从隐藏区101读取的SecretID以生成单向转换标识信息Oneway-ID(=Oneway(SKeyi,j,SecretID))。如果单向转换器15实现为硬件电路,则数据生成器14等可被转为用作单向转换器15,从而使电路尺寸整体变小,如上所述。在该实例中,可采用诸如Oneway-ID=AES_E(SKeyi,j,SecretID)(+)SecretID之类的配置。
尽管未示出,但是经由控制器200等将数据输出到主机设备2000的输出单元实际可被设置为结构元件。
1-2.主机设备
在该实施例中,主机设备2000为认证者。
如图所示,根据该实施例的主机设备(host)2000包括解密器(Decrypt)21、FKB处理器(Processor FKB)22、存储器(Memory)23、随机数生成器(RNG)24、选择器(Select 2)25、数据生成器(Generate)26、单向转换器(Oneway)27和数据检验单元(Verify)28。此外,例如,在必要时可包括错误校正处理单元等。
解密器21单独使用密钥数据输入对输入数据进行解密以示出解密的输入数据。在该实施例中,解密器21经由控制器200从NAND闪存100读取加密的秘密标识信息E-SecretID。然后,解密器21使用从下面描述的FKB处理器22(数据选择器22-1)输入的隐藏信息FKey对加密的秘密标识信息E-SecretID进行解密以输出秘密标识信息SecretID。
FKB处理器22使用在存储器23中隐藏的秘密信息IDKeyk和IDKeyk的索引信息对从NAND闪存100读取的密钥管理信息FKBv进行解密以将所生成的隐藏信息FKey输出到解密器21。在该实施例中,FKB处理器22包括数据选择器(Select 1)22-1和解密器(Decrypt)22-2。
数据选择器22-1在第一阶段使用存储器23中记录的索引信息k,从读取自NAND闪存100的加密FKey bundle(密钥管理信息FKBv))中选择可通过存储器23中隐藏的IDKey进行解密的数据以将选定的数据输出到解密器22-2。
解密器22-2使用存储器23中隐藏的秘密信息IDKeyk对选定的数据进行解密以将所生成的隐藏信息FKey输出到解密器21。
存储器23记录索引信息k、秘密信息IDKeyk、秘密信息HKeyi,j集(i=1、...、m;j在HKeyi,j中是固定值),以及常数HCj。它对主机设备2000的外部至少隐藏秘密信息IDKeyk和秘密信息HKeyi,j集(i=1、...、m)。常数HCj在主机设备2000中保持恒定,当请求认证时(请求认证),它提前被发送到NAND闪存100。下面将描述其详细信息。
随机数生成器24生成并输出用于认证处理的随机数RNh。
数据选择器25在第二阶段使用经由数据缓存12从NAND闪存100的ROM区102读取的索引信息i,从主机设备2000隐藏的秘密信息HKeyi,j集选择认证处理所需的HKeyi,j。
数据生成器26是操作单元,其通过对多个输入数据片段执行预定的操作来生成输出数据。在该实施例中,数据生成器26通过使用主机设备2000隐藏的秘密信息HKeyi,j转换主机设备2000生成的随机数RNh来生成会话密钥SKeyi,j。例如,作为数据生成器26,可使用上述AES加密器。
单向转换器27使用从数据生成器26输出的会话密钥SKeyi,j,通过单向功能转换从解密器21输出的秘密标识信息SecretID以生成单向转换标识信息Oneway-ID。
数据检验单元28将从NAND闪存100接收的单向转换标识信息Oneway-ID与从主机设备2000中的单向转换器27获取的单向转换标识信息Oneway-ID进行比较,以查看这两个Oneway-ID是否匹配。如果两个单向转换标识信息Oneway-ID值匹配(OK),则数据检验单元28判定解密器21获取的秘密标识信息SecretID是真实的ID并将所获取的秘密标识信息SecretID发送到后续处理。另一方面,如果它们的两个值不匹配(NG),则数据检验单元28判定秘密标识信息SecretID是非法ID并输出相应的提示消息。
此外,当主机设备2000存储的秘密信息(例如,IDKeyk和HKeyi,j)被泄露并且包含已泄露信息的非法主机设备由非法制造商生产时,作为废除非法主机设备的手段,可制定诸如从密钥管理信息(FKBv)删除信息(根据此信息,可通过非法主机设备所存储的IDKeyk导出FKey)之类的对策。下面将结合参考图11的描述来描述对策。当采取对策时,有必要设置IDKeyk、k、HKeyi,j和HCj之间的关联。这是因为,如果存在这样的关联,则非法主机设备所存储的秘密信息IDKeyk和HKeyi,j都可通过观察非法主机为了认证而通知的HCj来识别。作为关联的方法,可采用基于IDKeyk的加密处理结果与IDKeyk共享HCj的全部或部分信息,配置HCj的全部或部分信息,以及基于HCj的加密处理结果配置IDKeyk的全部或部分信息。进一步地,除了FKey和IDKeyk之外,最好还使用HKeyi,j来生成密钥管理信息FKBv。将在下面的段落中对此进行描述,其中描述了FKB的配置实例。
如果主机设备2000是家用设备之类的专用硬件设备,则秘密信息IDKeyk和秘密信息HKeyi,j例如在通过特定于制造商的方法进行加密之后记录在内部专用存储器中。
如果主机设备2000是在PC等上执行的程序,则秘密信息IDKeyk和秘密信息HKeyi,j保持这样的状态:该状态可通过防篡改软件(TRS)技术进行保护以防止非法分析。如果主机设备2000包含安全模块,则在执行隐藏秘密信息的措施之后使用安全模块的功能记录秘密信息IDKeyk和秘密信息HKeyi,j。
控制器(Controller)19通过控制NAND闪存100,执行与主机设备2000的数据传输。例如,控制器200解译从主机设备2000接收的指令并将指令转换为符合NAND闪存100接口规范的指令,然后将指令发送到NAND闪存100。控制器200可在必要时采用多种接口标准,例如SD存储标准、SDIO标准和eMMC标准。
控制器200保护正常区103的一部分以存储控制器200的操作所需的控制数据。控制器200可具有将从主机设备2000接收的逻辑地址转换为NAND闪存的物理地址的功能。控制器200也可具有执行所谓的损耗均衡功能以使单元阵列11的损耗均匀。但是,至少隐藏区101被排除在损耗均衡之外。
存储器系统的配置实例不限于上述配置。例如,可在必要时包括错误校正处理单元(未示出)和其它结构元件。进一步地,NAND闪存100可存储秘密信息NKeyi的多个片段。也就是说,如果NKeyi及其对应的索引信息i的组合被定义为槽,则可在NAND闪存100中记录多个槽。槽位号附着在每个槽上,并且主机设备2000读取每个槽位号的索引信息i,然后选择其中一个槽执行认证。
在这种情况下,主机设备2000通知NAND闪存100与选定的槽位号对应的信息,NAND闪存100使用与所通知的槽位号对应的信息执行认证处理。进一步地,存储在NAND闪存100中的所有信息可被定义为一个槽,可准备多个信息槽。也就是说,秘密信息NKeyi、索引信息i、密钥管理信息FKBv、索引信息v、秘密标识信息SecretID,以及加密的秘密标识信息E-SecretID被定义为一个槽,并且多个槽记录在NAND闪存100中。槽位号附着在每个槽上,并且主机设备2000读取每个槽位号的索引信息i,然后选择其中一个槽执行认证。在这种情况下,主机设备2000通知NAND闪存100与选定的槽位号对应的信息,NAND闪存100使用与所通知的槽位号对应的信息执行认证处理。
上面示出这样一种方法:其中NAND闪存100具有多个槽,但是方法不限于上述这一方法,可采用任何允许多个槽共享一部分信息的配置。例如,秘密标识信息SecretID、加密的秘密标识信息E-SecretID、密钥管理信息FKBv和索引信息v可在其它信息由每个槽单独存储的同时被多个槽共享。
具有以下特征的方法适用于本文下面描述的所有其它实施例:其中NAND闪存100具有多个槽和槽位号,并且用于认证的槽和槽位号被通知给主机设备2000。
<2.认证流程>
接下来,将参考图10描述根据第一实施例的存储器系统的认证流程。
(步骤S11)
当认证开始时(开始),主机设备2000从NAND闪存100读取作为密钥管理信息的加密FKey bundle(FKB:家族密钥块),以及加密的秘密标识信息SecretID(E-SecretID)。
(步骤S12)
接下来,主机设备2000基于读取密钥管理信息FKB,通过数据选择器(Select 1)22-1执行数据选择处理以读取加密的隐藏信息FKey,此信息可被主机设备2000解密。主机设备2000还通过解密器22-2使用隐藏的秘密信息IDKdyk对加密的隐藏信息FKey进行解密来获取隐藏信息FKey。进一步地,主机设备2000使用已获取的FKey对读取自NAND闪存100的E-SecretID进行解密来获取秘密标识信息SecretID。
(步骤S13)
接下来,主机设备2000请求将索引信息i读到NAND闪存100。
(步骤S14)
接下来,响应于来自主机设备2000的请求,NAND闪存100从单元阵列11加载索引信息i并将索引信息i输出到主机设备2000。
(步骤S15)
接下来,主机设备2000生成认证请求所需的随机数RNh。通过使用随机数RNh进行认证处理,可将每次不同的公用密钥用于NAND闪存100以执行下面的处理。
(步骤S16)
接下来,主机设备2000将提前存储的常数HCj、随机数RNh连同认证请求(Request authentication)一起发送到NAND闪存100。
(步骤17)
接下来,NAND闪存100从隐藏区101加载秘密信息NKeyi(i=1、...、m)和秘密标识信息SecretID,这些信息存储在数据缓存12中。
(步骤18)
接下来,NAND闪存100使用从主机设备2000接收的隐藏的秘密信息NKeyi和常数HCj,通过数据生成器13的数据生成处理生成秘密信息HKeyi,j。
(步骤19)
接下来,NAND闪存100使用所接收的RNh,通过数据生成器14的数据生成处理生成会话密钥SKeyi,j(=Generate(HKeyi,j,RNh))。
(步骤20)
接下来,NAND闪存100使用所生成的会话密钥SKeyi,j,通过单向转换器15对秘密标识信息SecretID执行单向转换处理,生成单向转换标识信息Oneway-ID(=Oneway(SKeyi,j,SecretID))。所生成的单向转换标识信息Oneway-ID被发送到主机设备2000。
(步骤21)
与步骤S18同时,主机设备2000使用所接收的索引i,从提前隐藏的秘密信息HKeyi,j集(i=1、...、m)选择向NAND闪存100进行认证处理所需的秘密信息HKeyi,j。
(步骤S22)
接下来,主机设备2000使用所选定的HKeyi,j和所生成的RNh,通过数据生成器26的数据生成处理生成SKeyi,j(=Generate(HKeyi,j,RNh))。
(步骤S23)
接下来,主机设备2000使用所生成的会话密钥SKeyi,j,通过单向转换器27对秘密标识信息SecretID执行单向转换处理,生成单向转换标识信息Oneway-ID。
(步骤S24)
接下来,主机设备2000判定从NAND闪存100接收的单向转换标识信息Oneway-ID与主机设备2000所生成的Oneway-ID是否匹配。
如果两个Oneway-ID值匹配(OK),则主机设备2000判定解密器21获取的SecretID是真实的ID并将该SecretID发送到后续处理。另一方面,如果它们的两个值不匹配(NG),则主机设备2000判定SecretID是非法ID并输出相应的提示消息。
通过上述操作,根据第一实施例的认证流程完成(结束)。
如果像存储器系统的配置实例中描述的那样,NAND闪存100具有多个槽,则主机设备2000需要通知NAND闪存100用于认证的槽位号。在这种情况下,可在步骤S16或步骤S16之前的步骤中通知槽位号。
<3.FKB(家族密钥块)>
接下来,将参考图11更详细地描述根据第四实施例的密钥管理信息FKB(家族密钥块)。
为了生成符合记录秘密标识信息SecretID的NAND闪存100的密钥管理信息FKB,使用作为提前准备的秘密密钥信息的IDKeyi集中的一个IDKeyi(i=1、...、n)对FKeyv逐一加密。也就是说,密钥管理信息FKB是加密的FKeyv(E-FKeyv,i)=Encrypt(IDKeyi,FKeyv)集,并且加密的FKeyv集被称为加密FKey bundle。
需要指出,密钥管理信息FKB的配置不限于该实施例中的配置。例如,在特定的IDKeyi被泄露的情况下,可通过已泄露的IDKeyi解密的加密FKeyv(E-FKeyv)从FKB中删除,因此,存储IDKeyi的主机设备2000无法通过主机中的加密Fkey bundle对Fkey进行解密。因此,当使用具有新配置的FKB的NAND闪存时,主机设备2000无法获取(解密)正确的FKeyv和秘密标识信息SecretID。通过这种方式,可提供撤掉存储秘密信息IDKeyi的主机设备2000的功能。
如上所述,当秘密信息IDKeyi、索引信息k、秘密信息HKeyi,j和常数HCj关联时,除了FKey和IDKeyk之外,HKeyi,j也可被转移以生成FKBv。例如,可采用诸如E-FKeyv,i=Encrypt(Encrypt(IDKeyi,FKeyv),HKeyi,j)、E-FKeyv,i=Encrypt(Encrypt(HKeyi,j,FKeyv),IDKeyi)和E-FKeyv,i=Encrypt(HKeyi,j,IDKeyi(+)FKeyv)之类的配置。这具有以下效应:即,当密钥从多个主机设备2000泄露时,防止不同设备的秘密密钥IDKeyi、HKeyi,j进行组合。也就是说,除非正确地组合IDKeyi和HKeyi,j,否则不可能解密FKey。通过观察HCj,可识别与HCj关联的HKeyi,此外,可识别IDKeyi。这样还允许撤销已泄露的IDKeyi。
进一步地,生成密钥管理信息FKB的方法不限于该实施例中的方法。例如,如果密钥管理信息FKB使用CPRM(请参阅非专利文献1)中所用的MKB(媒体密钥块)技术,或者使用非专利文献3中公开的MKB技术生成,则也可提供撤销主机设备2000的功能。
MKB技术有效地共享公共秘密信息(Media Key)(在未被撤销的设备之间),同时在这样的情况下实现设备撤销:其中多个设备中的每一者具有相互不同的秘密信息片段。这也称为广播加密。
如果应用MKB技术,则例如,存储器系统的配置实例如图12所示的那样。所示的存储器系统不同于图9的存储器系统,其差别在于FKB处理器(Process FKB)22被示出为上位概念。同样在这种情况下,已泄露的密钥可被识别出并通过关联基于主机设备2000的节点号以及被分配给节点号的主机密钥组解密的FKB的数据(与K或IDKeyi对应的信息)与HKeyi,j和HCj来撤销。
<4.写入秘密信息和FKB>
接下来,描述将秘密信息或密钥管理信息FKB写入NAND闪存100。
4-1.当在制造NAND闪存期间写入秘密信息或密钥管理信息FKB时
首先,将使用图13和14描述例如在制造NAND闪存100期间写入秘密信息或密钥管理信息FKB的情况。有关描述随同图14中的流程图一起提供。
密钥颁发/管理中心3000生成以下数据:
密钥管理信息FKBv(v=1、...、n);
隐藏信息FKeyv(v=1、...、n);
索引信息v(v=1、...、n);
秘密信息NKeyi;以及
索引信息i。
如上所述,密钥管理信息FKBv通过对隐藏信息FKeyv进行加密而生成。此外,索引信息v可以是多个值。例如,如果密钥颁发/管理中心3000生成三个值1、2和3作为索引信息v,则密钥颁发/管理中心3000根据所生成的索引信息v生成(FKB1、FKey1)、(FKB2、FKey2)和(FKB3、FKey3)。
在所生成的数据当中,密钥颁发/管理中心3000将隐藏信息FKeyv(v=1、...、n)、索引信息v(v=1、...、n)、秘密信息NKeyi以及索引信息i发送给存储器制造商B。为了传递这些数据片段,例如,密钥颁发/管理中心3000使用安全的方式,例如在使用提前获取的存储器制造商B的公钥加密数据之后,将数据发送给存储器制造商B。
除了NAND闪存100之外,存储器制造商B进一步存储数据31,例如密钥颁发/管理中心3000发送的FKBv(v=1、...、n)。存储器制造商B包括选择器32、33;生成器34和加密单元35。
(步骤S31)
根据上述配置,存储器制造商B首先通过生成器(SecretID Generator)34生成秘密标识信息SecretID。
(步骤S32)
接下来,接收数据31的存储器制造商B通过选择器32从v中选择一个值。进一步地,选择器32选择与选定的v对应的FKeyv。存储器制造商B使用选定的FKeyv对所生成的秘密标识信息SecretID进行加密以生成加密的秘密标识信息E-SecretID。
(步骤S33)
接下来,存储器制造商B将v的值写入NAND闪存100的ROM区102作为索引信息v(FKey的索引)。
存储器制造商B还将索引信息i(NKey的索引)的值写入NAND闪存100的ROM区102,将NKeyi的值写入隐藏区101。
进一步地,存储器制造商B将秘密标识信息SecretID的值写入NAND闪存100的隐藏区101,将加密的秘密标识信息E-SecretID的值写入ROM区102。
通过上面的操作,可在制造NAND闪存100期间写入预定的秘密信息和密钥管理信息FKB(结束)。对于写入上述每个值的顺序而言,加密的秘密标识信息E-SecretID是在加密处理之后获取的值,可在加密单元35执行加密处理之后写入。另外,对于写入操作的顺序没有限制,可通过上述实例中的顺序以外的顺序写入值。
进一步地,存储器制造商B将已针对其完成写入处理的NAND闪存100交付给组装商C。
这样,在该实施例中,假设NAND闪存100处于已经写入索引信息v(FKey的索引)等的状态。
4-2.当FKB由组装商写入时
接下来,将参考图15和16描述组装商写入FKB的情况。有关描述基于图14中的流程图提供。
组装商C从存储器制造商B处接收已写入预定的信息v等的NAND闪存100。
然后,组装商C针对普通用户等,通过连接控制NAND闪存100的控制器200制造存储卡1000,例如SD卡。
组装商C包括存储卡1000。此外,它存储从密钥颁发/管理中心3000接收的数据(FKBv)51,并且包括选择器52。
下面描述组装商V写入密钥管理信息FKBv的过程。
(步骤S35)
首先,组装商C从密钥颁发/管理中心3000接收FKBv作为数据51.为了发送数据51,使用上述安全的方式。
然后,组装商C将记录在NAND闪存100的ROM区102中的索引信息v的值读入数据缓存12等(经由控制器200)。
(步骤S36)
接下来,组装商C通过选择器52选择与读取索引信息v的值对应的FKBv。
(步骤S37)
接下来,组装商C经由控制器200将选定的密钥管理信息FKBv写入NAND闪存100的读/写区103。
<有利效应>
基于根据第四实施例的认证者、被认证者和认证方法,至少可获取以下有利效应(1)至(3)。
(1)即使秘密信息已从主机设备2000泄露,也可以防止使用已泄露的信息非法使用NAND闪存100的秘密信息。
如上所述,可提供作为认证者的主机设备2000,不仅作为专用硬件设备(例如,家用设备),而且例如还可作为可在PC等上执行的程序,在某些情况下,软件作为实质性的主机设备工作。另一方面,作为被认证者的NAND闪存100是存储介质。即使在被称为“固件”的程序充当中介的情况下,重要的过程或信息仍以隐藏的状态存储在存储器100中的硬件内。
这样,存在以下问题:与存储介质比较,在PC中执行的软件的防篡改(防攻击)性降低。因此产生以下问题:通过攻击具有低防篡改性的主机设备(认证者)20,具有高防篡改性的NAND闪存(被认证者)10中的秘密信息也会暴露,从而导致伪装成具有高防篡改性的设备。
这样,在根据第四实施例的配置及其认证方法中,如上所述,防篡改性相对较高的NAND闪存100在存储器100中隐藏可据以生成第二密钥信息(HKeyi,j)的第一密钥信息(NKeyi)。另一方面,主机设备2000在存储器23中仅隐藏不能据以生成第一密钥信息(NKeyi)的第二密钥信息(HKeyi,j)。
这样,NAND闪存100使用从主机设备2000接收的常数HCj生成认证者20隐藏的第二密钥信息(HKeyi,j),以及NAND闪存100隐藏的第一密钥信息(NKeyi)。NAND闪存100进一步使用第二密钥信息(HKeyi,j)和随机数RNh生成会话密钥SKeyi,j。
主机设备2000使用通过索引信息I选定的第二密钥信息(HKeyi,j)和随机数RNh生成会话密钥SKeyi,j。因此,NAND闪存100和主机设备2000共享相同的会话密钥SKeyi,j。
这样,在该实施例中,NAND闪存(被认证者)100隐藏的信息的秘密级别和主机设备(认证者)2000隐藏的信息的秘密级别可以不对称。例如,在该实施例中,防篡改性相对较高的NAND闪存100隐藏的信息的秘密级别可被设定为高于防篡改性相对较低的主机设备2000隐藏的信息的秘密级别。
这样,即使主机设备2000隐藏的信息被泄露,也不能使用已泄露的信息伪装成NAND闪存100,因为防篡改性相对较高的NAND闪存100隐藏的信息的秘密级别较高。因此,可有利地防止利用已泄露的信息非法使用NAND闪存100的秘密信息。结果,例如可以可靠地判定从主机设备2000读取的ID信息是已经从目标被认证者10读取的信息并撤销远程方对它的非法使用。
(2)实现的优势
在该实施例这样的配置中,如上所述,对电路规模也有限制,例如在这样的环境中:其中很难实现公钥密码系统处理或MKB处理(需要相对较大的电路规模)的硬件实现。
但是,根据该实施例,尽管密钥信息是非对称的,但是无需使用需要相对较大的电路规模的公钥密码系统处理。此外,通过使主机设备(认证者)2000和NAND闪存(被认证者)100所隐藏的信息的秘密级别像上述那样变得不对称,实现这样的认证方式:通过此方式,当信息单独从一个设备泄露时,其它设备无法进行伪装,并且会话密钥SKeyi,j由认证者20和被认证者10共享。
这样,即使在施加上述限制的恶劣环境中,我们也可认为实现是有利的。进一步地,如上所述,电路规模可进一步通过在存储器系统中共享数据生成器和加密器作为同一处理来减小。
(3)制造过程可有利地简化,并且制造成本可降低。
根据该实施例的NAND闪存100包括读/写区103密钥管理信息(FKBv),其唯一地附着在NAND闪存100中的每一者上,或者普遍地附着在以生产批次等为单位的多个NAND闪存100上,具体取决于其目标用途。
进一步地,根据该实施例的NAND闪存100包括ROM区102加密的秘密标识信息(E-SecretID),其唯一地附着在NAND闪存100中的每一者上。
如果密钥管理信息(FKBv)以生产批次为单位普及化,则需要记录在NAND闪存1000的每一者中的特殊信息可被精简为小型数据(就数据大小而言),例如加密的秘密标识信息(E-SecretID)。换言之,将被写入的信息被分为普遍附着的密钥管理信息(FKBv)和唯一加密的秘密标识信息(E-SecretID),这些信息片段通过两个阶段进行加密。这样允许将被写入NAND闪存100的唯一加密的秘密标识信息(E-SecretID)的数据大小被减小。
例如,如上面的图13和14所示,存储器制造商B在制造NAND闪存期间,将从密钥颁发/管理中心3000接收的特殊信息(E-SecretID)写入NAND闪存100中的每一者。
普遍地附着在NAND闪存100上的加密的密钥管理信息(FKBv)可被组装商C普遍地写入NAND闪存100。例如,如图15和16所示,组装商C将从密钥颁发/管理中心3000接收的公共密钥管理信息FKBv写入NAND闪存100中的每一者。这样,必须由存储器制造商B写入NAND闪存100中的每一者的唯一数据的大小可减小。
如果对于NAND闪存100而言唯一并且具有较大的数据大小的信息在制造NAND闪存100期间被写入,则制造过程会更复杂,并且制造时间会更长,从而导致制造成本增加。但是,根据该实施例中的配置和方法,通过将信息分为普遍附着的密钥管理信息FKBv和唯一加密的秘密标识信息(E-SecretID),并借助两个阶段对信息进行加密,这种复杂的制造过程变得多余,因此,制造过程可有利地简化,制造成本也能降低。而且,制造时间可以缩短,从而提供可降低能耗的优点。
同样对于主机设备20而言,通过采用生成E-SecretID(使用隐藏信息FKey对SecretID(针对NAND闪存具有唯一值)进行加密),并且进一步生成密钥管理信息FKB(使用IDKeyk对FKey进行加密)的配置,可获取与NAND闪存100类似的优点。
[第一修正(当下载FKB并在以后写入时)]
将描述根据第一修正的认证者、被认证者和认证方法。在描述中,省略与第一实施例重叠的部分。
<写入FKB>
将描述写入加密FKey bundle(FKB)。
第一修正中的过程是这样一个过程:如果在制造NAND闪存10期间写入加密FKey bundle(FKB),则并不特别需要此过程。但是,接着NAND闪存100和控制器200被连接,并且NAND闪存100由普通用户获取,例如作为SD卡,并且FKB在以后出售时(使用卡时)写入。
图17示出密钥管理信息FKB如上述那样记录在无记录存储卡100中的状态。
如图所示,NAND闪存100包括记录在隐藏区101中的秘密信息NKeyi和秘密标识信息SecretID。识别秘密信息NKeyi所需的索引信息i、识别密钥管理信息FKB所需的索引信息v,以及通过索引信息v指定的FKeyv加密的秘密标识信息SecretID(E-SecretID)记录在ROM区102中。
第一修正与第四实施例的不同之处在于:作为加密FKey bundle的FKB不记录在读/写区103中。
接下来,参考图18,将描述这样一种情况:其中如上述那样,FKB从服务器下载并记录在无记录存储卡100中。
在这种情况下,如图所示,数据缓存12在必要时被设置在NAND闪存100中。
根据该实施例的服务器70包括FKB数据库(FKBi集(i=1,...,x))71和选择器72,以基于索引信息v选择密钥管理信息FKBv。
服务器70和存储器系统(NAND闪存100、控制器200和主机设备2000)相互电连接以经由因特网60进行通信。
主机设备2000包括判定是否需要新写入FKB以及在必要时向服务器请求FKB的功能。
<FKB写入流程>
接下来,将参考图19描述从服务器70下载加密FKeyID bundle(FKB),以及将FKB写入NAND闪存100的流程。
(步骤S41)
首先,如图11所示,当主机设备2000判定需要下载FKB时,开始FKB写入并且主机设备2000向服务器70发出FKB请求。
(步骤S42)
接下来,服务器70向NAND闪存100请求识别FKeyv所需的索引信息v。
(步骤S43)
接下来,NAND闪存100从ROM区102读取v并将v发送到服务器70。
(步骤S44)
接下来,服务器70从FKB数据库71选择与所接收的v对应的FKBv。
(步骤S45)
接下来,服务器70将选定的FKBv发送到NAND闪存100。
(步骤S46)
接下来,NAND闪存100将所接收的FKBv写入读/取区103进行记录。
通过上述操作,加密FKey bundle(FKB)的下载流程完成(结束)。
其它配置和操作基本与第四实施例相同。
<有利效应>
基于根据第一修正的认证者、被认证者和认证方法,至少可获取与第四实施例类似的有利效应(1)至(3)。
进一步地,根据第一修正,可在以后写入FIKB时根据需要应用该实施例。
[第五实施例]
接下来,将描述第五实施例。在描述中,省略与第一实施例重叠的部分。
在第四实施例中,在主机设备2000成功地完成对NAND闪存100的认证之后,两者共享秘密标识信息SecretID。作为认证之后的处理,例如,主机设备2000对内容数据进行加密并将加密的内容数据写入NAND闪存100。对于此处理,可考虑使用共享的秘密标识信息SecretID。
该实施例的目的是:即使在这样的处理中,也要保护秘密标识信息SecretID。这样,在描述中,将省略与第四实施例重叠的部分。
<存储器系统>
根据第五实施例的存储器系统如图20A所示。
如图20A所示,根据该实施例的存储器系统与第四实施例的不同之处在于:系统进一步包括单向转换器(Oneway)27B、开关单元29以及由处理目标内容数据的所有主机设备20共同存储的信息(ASSV)。
如果当两个Oneway-ID值在数据检验单元(Verify)20中匹配(OK)时的判定结果被作为控制信号输入,则开关单元29打开信号路径以将秘密标识信息SecretID输出到单向转换器27B。
单向转换器(Oneway)27B使用处理目标内容数据的所有主机设备共同存储的信息(ASSV),通过单向功能转换从开关单元29输入的秘密标识信息SecretID以生成单向转换标识信息EMID(EMID=Oneway(SecretID,ASSV))。
这样,在第五实施例中,在主机设备20检验秘密标识信息SecretID之后,主机设备2000使用所有目标主机设备共同存储的信息(ASSV)转换秘密标识信息SecretID,以计算单向转换标识信息EMID。因此,主机设备2000可使用EMID,而非SecretID来执行内容加密处理等操作。
其它配置和操作基本与第四实施例相同,因此,省略对它们的详细描述。
<有利效应>
基于根据第五实施例的认证者、被认证者和认证方法,至少可获取与第四实施例类似的有利效应(1)至(3)。
进一步地,第五实施例与第四实施例的不同之处在于:主机设备2000进一步包括单向转换器(Oneway)27B、开关单元29和处理目标内容的所有主机设备共同存储的信息(ASSV)。
根据上述配置,在主机设备2000检验秘密标识信息SecretID之后,主机设备2000使用所有目标主机设备共同存储的信息(ASSV)转换秘密标识信息SecretID,以计算单向转换标识信息EMID。因此,主机设备2000可使用单向转换标识信息EMID,而非秘密标识信息SecretID来执行内容加密处理等操作。
因此,尽管未示出,但是单向转换标识信息EMID可用于后处理中的内容加密,这样,可防止秘密标识信息SecretID在后处理中被泄露,进一步有利地增加秘密标识信息SecretID的保密性。它们的详细信息将在下面描述。
[第五实施例的第一修正]
现在参考图20B和20C,将描述第五实施例的第一修正。在描述中,省略与第一实施例重叠的部分。
第一修正与第五实施例的不同之处在于:主机设备2000中存储的数据、主机设备2000执行的处理、NAND闪存100中存储的数据,以及主机设备2000执行的对NAND闪存100的认证操作。
也就是说,在第五实施例中,主机设备2000中设置的存储器23存储索引信息k、秘密信息IDKeyk、秘密信息HKeyi,j集(i=1、...、m;其中j在HKeyi,j中是固定值),以及常数HCj。此外,主机设备20针对主机设备2000的外部至少隐藏秘密信息IDKeyk和秘密信息HKeyi,j集(i=1、...、m)。与之相反,在第一修正中,提供隐藏信息FKeyv(v=1、...、n)(Fkey集),而非秘密信息IDKeyk和索引信息k。也就是说,FKeyv本身存储在存储器23中。在第五实施例中,主机设备2000根据秘密信息IDKeyk和FKBv导出Fkeyv。这样,主机设备2000不需要包括用于读取FKBv以导出秘密信息FKeyv的装置,以及用于执行Process FKB的装置。相反,主机设备2000需要包括用于读取v的装置,以及用于根据v选择和使用Fkeyv的装置。
采用第五实施例(图20A)还是采用第一修正(图20B)基于以下因素选择:Fkeyv中v的类型数量、主机设备2000的处理能力、主机设备2000的类型数量、主机设备2000的内存大小、是否存在更新主机设备2000中隐藏信息的功能,以及可存储在NAND闪存100中的FKBv的大小等。
例如,何时选择第一修正的实例如下所述。主机设备2000的类型数量增加可导致FKBv的大小增加。在根据特定方面的NAND闪存100中,似乎存在这样一种情况:其中很难在NAND闪存100中包括FKBv。当主机设备2000具有更新隐藏信息的功能时,可通过不同于FKBv的路径分发和更新Fkeyv。这样,可以通过暂停将Fkeyv发送给非法主机设备2000来做出更改,无需撤销具有FKBv的非法主机设备2000。一般而言,当比较秘密信息IDKeyk和FKeyv的总数时,在估计的主机设备类型数量增加的情况下,秘密信息IDKeyk的总数也在增加。因此,鉴于主机设备2000的内存大小,优选地使用第一修正。
此外,当主机设备2000本身不必被撤销时,即,其中包括NAND闪存100的存储介质和主机设备2000由同一平台管理者整体操作时,可能存在这样的情况:其中不必使用FKBv,进一步地,不必更新FKeyv。例如,游戏内容或游戏设备的记录媒体由单个制造商整体操作的情况是一个实例或者是上述情况。需要指出,第一修正适用于第一至第三实施例,以及下面描述的其它实施例。
当主机设备2000与NAND闪存100之间的信息发送和接收经由网络执行时,主机设备2000位于联机环境,优选地使用第一修正。例如,当应用主机设备2000为认证服务器的情况时。当信息发送和接收经由网络执行时,优选地使用第一修正,因为不需要发送和接收FKBv,较小数量的信息更理想。此外,当主机设备2000为认证服务器时,FKeyv可定期更新。同样从这个角度来看,第一修正不会出现任何问题。
需要指出,不仅在第一修正,而且在其它实施例中,本申请中的主机设备配置不受限制。主机设备可以是类似于DVD播放器等的内容再现设备、记录设备和认证单元。它可以是游戏设备。此外,主机设备可通过软件、硬件或两者的组合配置。备选地,主机设备可以是服务器。认证处理的数据发送/接收配置不受限制。也就是说,可以采用多种类型的连接,例如电缆连接、无线网络连接、局域网连接、内联网连接。
<认证流程>
接下来,将参考图20C描述根据第五实施例的第一修正的存储器系统认证流程。
(步骤S11')
当认证开始时(开始),主机设备2000从NAND闪存100读取索引信息v和加密的秘密标识信息SecretID(E-SecretID)。
(步骤S12')
接下来,主机设备2000基于读取索引信息v,通过数据选择单元(Select1)22执行数据选择处理,并且主机设备2000基于主机设备2000中隐藏的隐藏信息FKeyv(v=1、...、n)获取隐藏信息FKey。
而且,主机设备2000使用所提供的隐藏信息FKey对读取自NAND闪存100的加密的秘密标识信息E-SecretID进行解密,从而获取秘密标识信息SecretID。
步骤S13-S24的内容与图10中的步骤S13-S24的内容相同。
在步骤S24,当两个单向转换标识信息Oneway-ID值匹配(OK)时,在解密器21中获取的秘密标识信息SecretID被判定为真实的ID,然后将该秘密标识信息SecretID发送到后续处理。也就是说,EMID的计算处理由单向转换处理基于秘密标识SecretID和ASSV执行。另一方面,在不匹配(NG)的情况下,秘密标识信息SecretID被判定为不是真实的ID(NG)并输出相应的提示消息。
通过上述操作,根据第五实施例的第一修正的认证流程完成(结束)。<有利效应>
基于根据第一修正的认证者、被认证者和认证方法,至少可获取与第四实施例类似的有利效应(1)至(2)。进一步地,可获取第五实施例的其它有利效应。而且,主机设备2000和NAND闪存100的实现负荷可进一步降低。
[第五实施例的第二修正]
接下来,将参考图20D和20E描述第五实施例的第二修正。在描述中,省略与第五实施例的第一修正重叠的部分。
第二修正的不同之处在于:主机设备2000中存储的数据、主机设备2000执行的处理、NAND闪存100中存储的数据,以及NAND闪存100中存储的数据的访问属性。在第一修正中,主机设备2000中包括的存储器23存储隐藏信息FKeyv(v=1、...、n)、秘密信息HKeyi,j集(i=1、...、m;其中j在Hkeyv中是固定值),以及常数HCj。此外,对主机设备2000的外部至少隐藏隐藏信息FKeyv(v=1、...、n)和秘密信息HKeyi,j集(i=1、...、m)。与之相反,在第二修正中,存储器23不包括隐藏信息FKeyv(v=1、...、n)。也就是说,主机设备2000不必包括用于读取v的装置,以及用于根据v选择和使用Fkeyv的装置。
与此相反,主机设备2000具有直接读取秘密标识信息SecretID的功能。NAND闪存100不必包括v,相反,需要能够从主机设备2000读取ROM区102中的秘密标识信息SecretID。
当无需为秘密标识信息SecretID提供某些秘密属性时(即,仅确保作为NAND闪存100所有的特殊信息的SecretID的唯一性时),第二修正很有效。通过比较第五实施例及其第一修正,很容易理解,主机设备2000和NAND闪存100应该具有的处理功能和数据显著减少。这对于秘密标识信息SecretID中的必要特性是仅确保唯一性的情况很有效。
<认证流程>
然后,参考图20E,将描述根据第五实施例的第二修正的存储器系统认证流程。
(步骤S11″)
当认证开始时(开始),主机设备2000从NAND闪存100读取加密的秘密标识信息SecretID(E-SecretID)。
步骤S13-S24的内容与图10中的步骤S13-S24的内容相同。
在步骤S24,当两个单向转换标识信息Oneway-ID值匹配(OK)时,读取秘密标识信息SecretID被判定为真实的ID,然后将该秘密标识信息SecretID发送到后续处理。也就是说,EMID的计算处理由单向转换处理基于秘密标识SecretID和ASSV执行。另一方面,在不匹配(NG)的情况下,秘密标识信息SecretID被判定为不是真实的ID(NG)并输出相应的提示消息。
通过上述操作,根据第五实施例的第二修正的认证流程完成(结束)。<有利效应>
基于根据第二修正的认证者、被认证者和认证方法,至少可获取与第四实施例类似的有利效应(1)至(2)。进一步地,至少可获取第五实施例的其它有利效应。而且,主机设备2000和NAND闪存100的实现负荷可进一步降低。
[第六实施例]
接下来,将参考图21描述第六实施例。第六实施例涉及NAND闪存100认证主机设备2000的实例。该实施例示出读取NAND闪存100中采取对第三方隐藏的状态的秘密标识信息SecretID的方法。它还示出可靠地判定数据已经从NAND闪存100读取的方法。另外还示出NAND闪存100基于读取数据检查主机设备2000时使用的方法。
在描述中,省略与上述实施例重叠的部分。
<存储器系统>
将参考图21描述根据第六实施例的存储器系统。如图所示,该实施例与第四实施例的不同之处在于:NAND闪存100进一步包括功能控制器18、随机数生成器24n,以及数据检验单元28n,并且主机设备2000进一步包括功能调用单元30。
随机数生成器(RNG)24n生成用于认证的随机数RNn。
数据检验单元(Verify)28n将从主机设备2000接收的单向转换标识信息Oneway-ID与从NAND闪存100中的单向转换器15获取的单向转换标识信息Oneway-ID进行比较,以查看这两个Oneway-ID是否匹配。如果两个值匹配,则数据检验单元28n判定主机设备2000已获取正确的Oneway-ID(OK),如果两个值不匹配,则数据检验单元28n判定主机设备2000尚未获取正确的Oneway-ID(NG)。
仅当主机设备2000已获取正确的Oneway-ID(OK)时,功能控制器18才启用存储器100上的预定功能,以便NAND闪存100的预定功能可用于主机设备2000。进一步地,从主机设备2000接收的常数HCj可输入功能控制器18,以便根据HCj控制预定功能。该预定功能将在下面单独描述。
当主机设备2000接收访问权限信息(指示NAND闪存100已检验主机设备20所生成的Oneway-ID的真实性)时,功能调用单元30执行调用NAND闪存100的预定功能的处理。
<认证流程>
接下来,将参考图22描述根据第六实施例的存储器系统认证流程。
(步骤S11至S14)
如图所示,与第四实施例相同的过程从认证开始(开始)执行到步骤S11至S14。
(步骤S51)
接下来,当接收索引信息i时,主机设备2000将随机数生成请求(Rquest RNn)发送到NAND闪存100。
(步骤S52)
接下来,NAND闪存100接收请求并通过随机数生成器24n生成RNn。所生成的RNn被发送到主机设备20
(步骤S21至S23)
接下来,主机设备2000执行与第四实施例中的步骤S21至S23类似的处理。
(步骤S53)
接下来,主机设备2000向NAND闪存100请求认证(Requestauthentication)并发送常数HCj和单向转换识别信息Oneway-ID。
(步骤S17至S20)
在类似于上述步骤S17至S19的处理之后,在步骤S20,NAND闪存100使用所生成的SKeyi,j,通过单向转换器15对秘密消息SecretID执行单向转换处理以生成单向转换标识信息Oneway-ID(=Oneway(SKeyi,j,SecretID))。
(步骤S54)
接下来,NAND闪存100检验已接收的单向转换标识信息Oneway-ID与NAND闪存100所生成的单向转换标识信息Oneway-ID匹配。如果两个单向转换标识信息Oneway-ID匹配(OK),则NAND闪存100判定SecretID是真实的ID。如果两个单向转换标识信息Oneway-ID不匹配(NG),则NAND闪存100判定秘密信息SecretID是非法ID。然后,NAND闪存100将判定结果返回到主机设备2000,并且还提供预定功能调用接受权限(Permission)。
(步骤S55)
接下来,如果步骤S54中的判定结果为匹配(OK),则NAND闪存100启用功能控制器18中的预定功能,以便NAND闪存100的预定功能可用于主机设备20。
(步骤S56)
接下来,如果主机设备2000接收访问权限信息(Access Permission)(指示NAND闪存100已检验主机设备2000所生成的单向转换标识信息Oneway-ID的真实性),则主机设备2000通过功能调用单元30返回指令以调用预定功能。
(步骤S57)
接下来,NAND闪存100接收功能调用并根据从主机设备2000接收的功能调用指令在功能控制器18中执行处理,以返回处理结果的状态(Status)。
在这种情况下,从主机设备2000接收的HCj可被输入功能控制器18,以便根据HCj控制预定功能。预定功能将在下面单独描述。
<有利效应>
基于根据第六实施例的认证者、被认证者和认证方法,至少可获取与第四实施例类似的有利效应(1)至(3)。进一步地,至少可获取以下有利效应(4)和(5)。
(4)NAND闪存100可认证主机设备20。
第六实施例与第四实施例的不同之处在于:NAND闪存100进一步包括功能控制器18、随机数生成器24n和数据检验单元28n,并且主机设备2000进一步包括功能调用单元30。
因此,根据上述配置,认证功能可通过这样的方式控制:例如,当主机设备2000访问NAND闪存10时,仅当主机设备2000足够可靠时,NAND闪存100才提供预定功能。
因此,根据该实施例,诸如一般为被认证者的NAND闪存之类的记录媒体可有利地根据需要相反地认证主机设备2000。
(5)可有利地提供根据被认证的主机设备2000的特殊信息(常数HCj)进一步控制是否提供预定功能的机制。有关预定功能的详细信息将在下面描述。
[第七实施例(相互认证)]
接下来,将描述第七实施例。第七实施例涉及NAND闪存100和主机设备2000相互认证的实例。
在描述中,省略与上述实施例重叠的部分。
<存储器系统>
将使用图23描述根据第七实施例的存储器系统。
如图所示,该实施例包括这样的配置:该基本实质上组合根据第四实施例的存储器系统和根据第六实施例的存储器系统。
更具体地说,NAND闪存100和主机设备2000包括随机数生成器24n、24h;生成器14-2、26-2;单向转换器15-2、26-2;以及数据检验单元28n、28h。进一步地,该实施例与第六实施例的不同之处在于:主机设备2000进一步包括开关单元29B。
配置中每一者的操作与上述实施例相同。
<认证流程>
接下来,将参考图24描述根据第七实施例的存储器系统认证流程。原则上,根据该实施例的认证流程根据第四实施例执行认证操作(主机设备认证NAND闪存),然后根据第六实施例执行认证操作(NAND闪存认证主机设备)。
(步骤S11至S24)
如图所示,当认证开始时(开始),首先,主机设备2000通过以下与第四实施例类似的步骤S11至S24认证NAND闪存100。
此时,使用随机数生成器24h生成的随机数RNh执行类似的认证。
(步骤S51至S70)
接下来,如果步骤S24中的判定结果为匹配(OK),则NAND闪存100的认证被判定为完成。
接下来,NAND闪存100通过以下与第六实施例类似的步骤S51至S70认证主机设备2000。
此时,使用随机数生成器24n生成的随机数RNn执行类似的认证。
通过上述步骤,根据第七实施例的认证操作完成(结束)。
<功能控制的配置实例>
接下来,将使用图25描述功能控制的配置实例。
需要指出,此处的功能控制是根据第六和第七实施例的预定功能控制方法,通过此方法,当NAND闪存100为认证者,主机设备2000为被认证者时,NAND闪存100认证主机设备2000,并基于认证结果向主机设备2000提供预定功能。
图中所示的功能控制的配置包括在NAND闪存100的每一者中。功能控制包括位于认证电路107中的功能控制器18、参数寄存器89和序列控制电路88。
包含在认证电路107中的功能控制器18根据需要基于认证结果或主机设备2000的特殊信息(常数HCj等)控制功能,以将预定功能提供给主机设备2000。功能控制器18基于认证结果或主机设备2000的特殊信息更新包含在参数寄存器89中的控制参数890。
参数寄存器89中的控制参数890包含至少一个访问权限信息片段(#0、#1、...、#3)。例如,访问权限信息#0包含块地址、页地址、读取属性、写入属性、参数属性、特殊信息等。块地址示出与块地址关联的存储单元阵列11的控制。页地址示出与页地址关联的存储单元阵列11的控制。读取属性示出与块地址,或者块地址和页地址关联的读取权限信息。写入属性示出与块地址,或者块地址和页地址关联的写入权限信息。擦除属性示出与块地址,或者块地址和页地址关联的擦除权限信息。特殊信息指示访问权限信息是具有相同特殊信息的主机设备2000的控制参数。
每个访问权限信息片段(#0、#1、...、#3)不必包含上述全部信息,可以根据所需的控制水平包含信息。例如,如果不需要基于主机设备2000的特殊信息(例如常数HCj)的控制,则可以不包含特殊信息。进一步地,如果不需要以页为单位的控制,则可以不包含页地址。进一步地,如果不需要任何块地址中的控制,则可以不包含块地址,例如,控制仅用于预定的块或者整个NAND闪存100。类似地,对于读取属性、写入属性和擦除属性而言,仅包含需要控制的功能的那些属性。
序列控制电路88基于控制参数890,控制根据主机设备2000提供的指令(CMD)的操作序列。对于数据读取指令,例如,序列控制电路88基于控制参数890中访问权限信息的读取属性,控制读取(Read)数据或拒绝根据所提供的读取指令读取数据的操作。如果在读取属性中允许读取,则可从单元阵列11读取数据。此外,上述操作实例还适用于数据写入操作和数据擦除操作。
<有利效应>
基于根据第七实施例的认证者、被认证者和认证方法,至少可获取与上述实施例类似的有利效应(1)至(5)。
根据该实施例,NAND闪存100和主机设备2000可相互认证。
进一步地,根据该实施例的NAND闪存100通过图25所示的配置实现功能控制。序列控制电路88可根据控制参数890,基于所提供的指令控制操作序列。这样,在由NAND闪存100认证的主机设备2000中,主机设备2000可有利地被允许(Process功能)基于主机设备2000的特殊信息(常数HCj等)执行更新的控制参数890的多个功能处理
进一步地,根据该实施例的NAND闪存100可包括图25以及第六和第七实施例所示的配置的功能控制。
[第八实施例(NAND闪存的配置实例)]
接下来,将描述第八实施例。第八实施例涉及被应用根据第一至第四实施例的认证功能的NAND闪存100的配置实例。
在描述中,省略与上述实施例重叠的部分。
<NAND闪存的整体配置实例>
将使用图269描述根据第八实施例的NAND闪存100的整体配置实例。
如图所示,NAND闪存100包括存储单元阵列11和外围电路。
存储单元阵列11包括多个块BLOCK1至BLOCKn。每个块的配置(将参考图27描述)包含多个存储单元晶体管MC、字线WL和位线BL。每个块的存储单元晶体管MC中的数据通过一个操作擦除。数据无法以存储单元晶体管或页为单位擦除。也就是说,各个块是最小擦除单位。
外围电路包括读出放大器77、输入/输出控制电路84、逻辑控制电路85等。
读出放大器77经由位线BL读取存储单元阵列11中的存储单元(存储单元晶体管MC)的数据,并且经由位线BL检测存储单元阵列11中的存储单元的状态。
数据缓存12临时存储从读出放大器77读取的数据或者将被提供给读出放大器77的数据。
列解码器75基于经由IO端子从NAND闪存100外部提供的地址信号选择特定的位线BL、读出放大器等。
列地址缓冲器74临时存储地址信号以将地址信号提供给列解码器75。
行解码器78从电压发生器86接收读取、写入或擦除数据所需的多个电压,以基于地址信号将这些电压施加到特定的字线WL上。
行地址缓冲解码器79临时存储地址信号以将地址信号提供给行解码器78。
电压发生器86接收基准电源电压VSS、VCC,电压VSSQ、VCCQ等以根据这些电压生成写入、读取或擦除数据所需的电压。
输入/输出控制电路84经由IO端子接收控制NAND闪存100的操作的多个指令、地址信号和写入数据,另外输出读取数据。从输入/输出控制电路84输出的地址信号被地址寄存器82锁存。锁存的地址信号被提供给列地址缓冲器74和行地址缓冲解码器79。从输入/输出控制电路84输出的指令被指令寄存器83锁存。状态寄存器81存储输入/输出控制电路84的多个状态值。
作为外部接口(NAND I/F),NAND闪存100接收多个控制信号,这些信号用于控制指令、地址、用于数据输入/输出的IO端子,以及来自外部的操作。控制信号例如包括芯片启动/CE、指令锁存启动CLE、地址锁存启动ALE、读取启动RE/RE、写入启动WE和/WE、写入保护WP,以及时钟DQS、/DQS。
这些控制信号至少在对应的端子上接收,然后被发送到逻辑控制电路85。逻辑控制电路85基于控制信号控制输入/输出电路84,以允许或禁止端子IO上的信号作为指令、地址或数据经由输入/输出电路84到达地址寄存器82、指令寄存器83、页面缓冲器12等。逻辑控制电路85还从指令寄存器83接收锁存的指令。
在控制信号当中,WE端子提供数据输入时钟,RE端子提供数据输出时钟,DQS端子发送数据输入/输出时钟,CLE端子旨在启动作为指令输入的输入数据,ALE端子旨在启动作为地址输入的输入数据,并且CE端子旨在启动数据输入/输出的全部功能。
R/B端子指示NAND闪存100的内部操作状态,WP端子发送写入阻止信号以阻止错误写入,而Vcc/Vss/Vccq/Vssq端子用于提供电力。另外在该实施例中,针对RE端子、WE端子和DQS端子存在发送各个补充信号的/RE端子、/WE端子和/DQS端子,作为在通过高速接口实现数据传输时使用的端子(Toggle)。
逻辑控制电路85包括序列控制电路88、参数寄存器89和认证电路107。逻辑控制电路85还管理准备/忙碌信号(R/B)。更具体地说,逻辑控制电路85在NAND闪存100忙碌时输出忙碌信号。
序列控制电路88从指令寄存器83接收指令。序列控制电路88控制读出放大器77、电压发生器86等,以便能够基于所接收的指令执行该指令指示的处理(例如读取、写入或擦除数据)。
参数寄存器89存储各种指定逻辑控制电路85的操作的控制参数890。控制参数890被序列控制电路88引用或更新,并且用于控制一系列逻辑控制电路85或输入/输出控制电路84。
认证电路107执行与认证相关的处理。例如,如上所述,认证电路107还更新数据,例如重写参数寄存器中包含的控制参数890。认证电路107接收请求认证的指令并针对认证,使用存储单元阵列11中的特定数据执行特定操作以将结果从存储器10输出。在执行一系列操作的过程中,认证电路107允许序列控制电路88通过更新控制参数890来读取或写入必要数据。
准备/忙碌电路(RY/BY)87在逻辑控制电路85的控制下,经由开关晶体管从NAND闪存100发出R/B信号通知。
<块(BLOCK)的配置实例>
接下来,将使用图27描述形成存储单元阵列11的块(BLOCK)的配置实例。为了进行描述,将图27中的BLOCK1作为实例。如上所述,块BLOCK1的存储单元中的数据被通过一个操作擦除,因此,块是数据擦除单元。
块BLOCK1包括多个存储单元单位MU,这些单位沿着字线方向(WL方向)设置。存储单元单位MU包括NAND串(存储单元串),该串由八个沿着与WL方向交叉的位线方向(BL方向)设置存储单元MC0至MC7形成,其电流路径串联连接,位于源侧上的选择晶体管S1连接到NAND串的电流路径的一端,位于漏侧上的选择晶体管S2连接到NAND串的电流路径的另一端。
在该实施例中,存储单元单位MU包括八个存储单元MC0至MC7,但是也可包括两个存储单元或更多,例如,56或32个存储单元,存储单元的数量不限于8个。
位于源侧上的选择晶体管S1的电流路径的另一端连接到源线SL。位于漏侧上的选择晶体管S2的电流路径的另一端连接到位线BL,位线BL设置在每个存储单元单位MU的上方,与存储单元单位MU对应并且沿着BL方向延伸。
字线WL0至WL7沿着WL方向延伸,从而在WL方向上共同连接到多个存储单元的控制栅电极CG。选择栅极线SGS沿着WL方向延伸,从而在WL方向上共同连接到多个选择晶体管S1。选择栅极线SGD沿着WL方向延伸,从而在WL方向上共同连接到多个选择晶体管S2。
针对字线WL0至WL7中的每一者存在一个页。例如,如图中示出被点线包围的那样,页7(PAGE7)位于字线WL7中。由于数据读取操作或数据写入操作针对每个页(PAGE)执行,所以页(PAGE)是数据读取单位和数据写入单位。
<单元阵列的配置实例>
接下来,将使用图28示出存储单元阵列的结构。如(a)所示:存储单元阵列11包括多个隐藏区101的块(BLOCK)、ROM块102、正常块103、ROM熔丝块1044、受保护块1105等。如上所述,每个块包括多个页。一般而言,数据以页为单位读取或写入,以块为单位擦除。
如上所述,同时允许对用于正常数据存储的正常块103进行数据写入和数据读取。正常块对应于上述读/写区103。块数不做具体限制。
如上所述,隐藏区101和ROM块102应用于上述认证操作。隐藏区101对应于上述隐藏区101。ROM块102对应于上述ROM区102。在这两种情况下,块数不做具体限制。
在该实施例中,如(b)所示,只读数据进一步被记录在ROM块102的存储空间中。
在该实施例中,如(c)所示,隐藏数据被进一步记录在隐藏区101的存储空间中。
在该实施例中,如(d)所示,下面描述的认证功能所使用的受保护块被进一步记录在受保护块11-5的存储空间中。
ROM熔丝块104例如用于存储NAND闪存100操作控制的参数。
<ROM块中的只读数据>
接下来将使用图29描述ROM块102中的只读数据。
如(a)所示:只读数据被记录在ROM块102的存储空间中的某一页内。如果只读数据是只读数据A到Z系列,则图29示出三个用于数据错误校正的实例(b-1)至(b-3)。
如(b-1)所示,第一数据模式是重复记录同一数据(A、A、...B、B、...)的实例。在这种情况下,错误校正可通过主机设备2000重复读取只读数据以及主机设备2000等中的错误校正单元做出多数票决判定来做出。备选地,错误校正可通过控制器200重复读取只读数据以及控制器200等中的错误校正单元做出多数票决判定来做出。备选地,错误校正可通过NAND闪存10中的错误校正单元针对重复读取的只读数据做出多数票决判定来做出。例如,重复次数理想地为16次或更多。
如(b)的第二数据模式中所示,第二数据模式是重复记录由数据(A、B、...)及其反转数据(A的反转、B的反转、...)形成的互补数据对的实例。在这种情况下,错误校正可通过主机设备2000重复读取只读数据以及主机设备2000等中的错误校正单元在考虑互补数据对的情况下做出多数票决判定来做出。备选地,错误校正可通过控制器200重复读取只读数据以及控制器200等中的错误校正单元在考虑互补数据对的情况下做出多数票决判定来做出。备选地,错误校正可通过NAND闪存100中的错误校正单元在考虑互补数据对的情况下针对重复读取的只读数据做出多数票决判定来做出。
需要指出,重复记录互补数据对的原因是因为NAND闪存100的错误模式。NAND闪存100通过将预定电压施加到存储单元MC上以将电子注入浮栅FG来写入数据。使用阈值电压读取数据,该阈值电压依赖于存储单元MC的服浮栅FG中是否存在电子而变化。通过施加与写入数据时的电压反向的电压(该电压将浮栅FG中的电子提取到衬底)擦除数据。尽管读取、写入和擦除数据时的电压施加量和被施加电压的栅极有所不同,但是在所有这些情况下,电压在存储单元MC中施加。该原理导致的NAND闪存100的典型错误模式包括读取编程干扰和数据保持问题。读取编程干扰是这样的错误模式:其中在重复读取本地或邻近页或将数据写入邻近页之后,数据因为浮栅FG中的电子数量变化而变化。因此,存储单元的状态更改为弱编程状态,从而在多数情况下增加阈值电压。数据保持问题是这样的错误模式:其中在被写入的页闲置很久之后,数据因为电子被从浮栅拉出而变化。因此,存储单元的状态更改为弱擦除状态,从而在多数情况下降低阈值电压。也就是说,这些缺陷模式中存在增加或降低的一般趋势,这样,数据错误可能在同一方向上发生。
因此,数据被记录为(b-2)的第二数据模式中所示的互补数据。在这种情况下,如果数据为1(无记录),则其反转数据为0(已记录)。因此,这两个信息针对读取编程干扰都在0方向上移位(阈值增加)。相反地,这两个信息针对数据保持都在1方向上移位。这样,可通过存储互补数据更轻松地判定是否已经发生至少一个错误。在这种情况下,例如,互补数据对理想地在数据模式中重复至少八次。
如(b-3)的第三数据模式中所示,第三数据模式是除了制度数据(A、B、...Z)之外,进一步使用错误校正码的实例。由于随机错误在NAND闪存100中以位为单位发生,例如,BCH码,因此,理想地使用能够校正随机位错误的LDPC码等作为错误校正码。
在第一至第三数据模式的每一者中,每个数据片段可随机化。随机化是通过这样的方法使数据变为记录的随机数:例如,对所生成的随机序列和要被记录的数据执行异或运算以消除数据偏差。M序列等可用作随机序列生成方法。
此外,在第一至第三数据模式的所有实例中,每个数据片段以二进制状态记录。二进制状态是通过将一个预定电平设定为基准电平,判定一个存储单元中的阈值电压属于高电平还是低电平的记录数据的方法,并且可在每个存储单元中存储1位信息。此记录方法一般被称为SLC(单点电平单元)记录。另一方面,如果数据通过将多个预定电平设定为基准电平,判定一个存储单元中的阈值电压属于哪个电平来记录,则每个存储单元可存储多位信息。例如,如果阈值电压属于四个电平以记录数据,则每个存储单元可存储2位信息。这种记录方法一般被称为MLC(多电平单元)记录。尽管MLC记录因为每个单元具有较大的记录能力而可实现较高的记录密度,但是相对于阈值电压移位的已记录数据更改更容易发生。这样,理想地以小于正常数据的每单元位数记录记录在ROM块102中的只读数据。在4电平MLC记录(其中每单元的位数为2)中,ROM数据理想进行SLC记录。在8电平MLC记录(其中每单元的位数为4)中,ROM数据理想进行4电平MLC记录(其中每单元的位数为2)或SLC记录。<ECC的配置实例>
接下来,将参考图30-33描述用于执行错误校正码(ECC)校正的配置实例。
从严格意义上说,上面描述的图29中示出的第一至第三数据结构不同,但是从广泛意义上说,都被视为其中在原始数据上附着冗余的校正码ECC。这样,每个数据结构被视为包括数据和附着在数据上的校正码。至少主机设备2000、控制器200和NAND闪存100有必要具有对应的校正功能。
图22所示的第一实例是其中主机设备2000具有校正功能(ECCdecode)90的实例。在这种情况下,控制器200和NAND闪存100不执行校正处理,并将有符号数据(Data)发送到主机设备2000,然后主机设备2000通过校正功能(ECC decode)90执行校正处理以生成预定数据(Data)。
图31所示的第二实例是其中控制器200具有校正功能(ECC decode)90的实例。在这种情况下,NAND闪存100不执行校正处理,而控制器200执行校正处理并将校正的数据(Data)发送到主机设备2000。
图24所示的第三实例是其中NAND闪存100具有校正功能(ECCdecode)90的实例。在这种情况下,NAND闪存100执行校正处理并经由控制器200将校正的数据(Data)发送到主机设备2000。
图33所示的第四实例是其中控制器200和主机设备2000都具有校正功能90-1、90-2的实例。在这种情况下,首先,所附校正码具有双重结构,并且控制器200和主机设备2000分别执行内部代码(Inner code)或外部代码(outer code)的校正处理。
但是,该实施例不限于上述情况。NAND闪存100、控制器200和主机设备2000分别可在根据自己的校正功能协作的同时校正错误。
<隐藏块101中的隐藏数据>
接下来,将使用图34描述隐藏块101中的隐藏数据的存储状态实例。
如(a)所示,隐藏数据被记录在隐藏块101的存储空间的页内。如果隐藏数据是A到Z序列,则图34示出三个实例。
在(b-1)所示的第一数据模式中,存储多个隐藏数据片段(A、A、...B、B、...)和访问控制模式B1。
在(b-2)所示的第二数据模式中,存储多个隐藏数据片段(A、A、...B、B、...)、其反转数据和访问控制模式B2。
在(b-3)所示的第三数据模式中,存储多个隐藏数据片段(A、B、...Z)和访问控制模式B3。
每个实例的目标类似地是错误校正。另一目标是控制隐藏块101或隐藏块101中页的读取、写入和擦除。由于该区域记录隐藏数据,并且还存储仅在NAND闪存100内部由认证电路107使用的信息,因此有必要禁止来自外部的所有读取、写入和擦除操作。另一方面,在制造NAND闪存100的初始阶段,该区域无记录,而且隐藏数据需要在制造阶段中的一者内写入。进一步地,因为处于初始状态的存储单元的数据保持性能作为NAND闪存10的特性而言可能不足,所以有必要使存储单元执行读取、写入和擦除操作以检查存储单元是否可以存储指定的数据。
的因此,可在制造阶段对区域101执行读取、写入和擦除,但是有必要在制造完成之后的发售期间禁止对该区域执行所有读取、写入和擦除。作为导致状态更改的信息,访问控制模式B1、B2、B3被记录在区域101中。
访问控制模式B1、B2、B3可针对每个页记录,或者仅在块的第一页中记录。访问控制模式B1、B2、B3在页中的记录位置可以是一般数据区域或冗余区域。冗余区域例如是控制器等用于附着校正码的区域、NAND闪存100用于记录信息(指示每个页等的内部状态)的区域。
还可以理想地以二进制(SLC)模式记录如ROM数据、隐藏数据和访问控制模式B1、B2、B3。
接下来,将使用图35示出访问控制模式的配置实例。
首先,访问控制模式由多个位形成以防止错误导致的损失。
作为第一实例的访问控制模式B1被提供多个控制标志位A到Z,其中每个位被设定为预定模式。如果从主机设备2000接收到对区域的读取、写入、擦除等访问请求,则NAND闪存100根据预定模式检查区域101的访问控制模式B1,如果二者的匹配率等于预定比率或者是更大值,则禁止访问。
作为第二实例的访问控制模式B2根据重复记录控制标志的方法。这对于减少预定模式的错误概率而言非常有效。
作为第三实例的访问控制模式B3根据记录每个控制标志以及每个控制标志的反转数据的方法。如上所述,此方法对于减少错误概率也很有效。<访问控制模式的使用实例>
接下来,将解释读出访问控制模式以及如何使用读取结果的方法。
如图36所示,从存储器100的隐藏区101读取的访问模式被输入逻辑控制电路85中的模式读出电路91。
模式读出电路91对输入访问控制模式执行模式识别处理,并且判定匹配率是否等于预定比率或者是更大值以控制访问。匹配率根据NAND闪存100的存储单元阵列中的错误概率和访问控制模式的数据量计算。理想地将匹配率设定为例如使得错误检测概率变为至少10-3或更小值。模式读出电路91基于检测结果,将控制数据读取、数据写入和数据擦除的使能信号写入序列控制电路88。
序列控制电路88根据读出结果的使能信号控制数据读取、数据写入和数据擦除。
<测试流程>
接下来,将参考图37描述使用上述访问控制模式(例如,B1至B3)的NAND闪存100制造过程的检查流程。
(步骤S71、S72)
在制造过程中,首先将不对应于访问控制模式的数据记录在隐藏区101中并进行测试。在该阶段,允许访问隐藏区101。
但是,根据是否允许数据读取、数据写入和数据擦除的所有访问、是否允许数据写入和数据擦除等为区域102设定不同安全级别中的任一者。如果针对区域102需要高安全级别,甚至访问控制模式禁止所有访问,则可以授予错误访问权限,因为访问控制模式的数据劣化。在这种情况下,隐藏数据可被读出,因此,即使在步骤S71的测试过程中,也可禁止数据读取,也就是说,首先不允许读取位于NAND闪存10的硬线级别上的区域102。
备选地,如果对访问控制模式数据劣化的抵抗力充分,例如,访问控制模式被重复记录许多次或者附着强错误校正码,则可以通过访问控制模式执行包括数据读取的控制以确保测试的便利性。在这种情况下,上述错误检测概率仍较低,例如,理想地为10-5或更小值。
(步骤S73)
接下来,在步骤S72的预定测试完成之后,隐藏数据和访问控制模式(B1至B3等)被写入隐藏区101。
(步骤S74)
接下来,发售已写入上述数据的NAND闪存100。
<数据擦除流程>
接下来,将参考图38描述NAND闪存100内部的数据擦除操作。
(步骤S76)
首先,如果主机设备2000发出擦除操作的操作指令,则NAND闪存100判定指令中的选定块地址是否为特定块。
(步骤S77)
接下来,如果选定块地址不是特定块(否),则NAND闪存100执行正常擦除序列。
(步骤S78)
另一方面,如果选定块地址是特定块(是),则NAND闪存100从隐藏区101读取访问控制信息(B1至B3等)。
(步骤S79)
接下来,NAND闪存100读取访问控制信息(B1至B3等)的模式以判定模式匹配率是否等于预定值或者是更大值。
(步骤S80)
接下来,如果模式匹配率等于预定值或者是更小值(是),则NAND闪存100执行正常擦除序列。
(步骤S81)
接下来,如果模式匹配率等于预定值或者是更大值(否),则NAND闪存100退出擦除序列以终止数据擦除流程(结束)。
在该实施例中,将数据擦除作为实例,但是该实施例同样可应用于数据读取和数据写入。
<有利效应>
基于根据第八实施例的认证者、被认证者和认证方法,至少可获取与上述实施例类似的有利效应(1)至(5)。
进一步地,通过在该实施例中应用上述配置和方法,可有利地提高可靠性。
[第九实施例(使用数据缓存实现认证处理的实例)]
第九实施例涉及使用数据缓存实现认证处理的实例。在描述中,省略与上述实施例重叠的部分。
<数据缓存、读出放大器等的配置实例>
将使用图39描述根据第九实施例的数据缓存、读出放大器等的配置实例。
如图39所示,根据上述实施例的认证处理的数据缓存12被示出为一个组件。NAND闪存100包括易失性数据缓存12,其临时存储从单元阵列11读取的页数据,或者临时存储从外部接收的作为记录数据的写入页数据。该实施例中的数据缓存12也被称为页缓冲器、数据缓冲器等,并包括具有一般页大小或更大尺寸的区域。进一步地,数据缓存通常具有这样的区域:其大小是页大小的数倍,从而使得页数据的读取或写入处理更快,并且实现随机页访问。
数据缓存12包括多个数据缓存A、B、C。每个数据缓存连接到读出放大器(SA)以及用于从存储器100读取的数据线。
读出放大器SA经由位线(未示出)电连接到存储单元阵列11。
数据缓存的锁存电路DC_A是能够直接与数据线交换数据的数据缓存。当IO经由数据线连接时,数据缓存12中的数据可通过DC_A从存储器100输出,并且位于NAND闪存100外部的数据可被加载到数据缓存内。
进一步地,包括连接到数据缓存12以在数据缓存12之间执行操作的的操作器。操作器对应于认证电路107,该认证电路在上述实施例中用于认证处理并且包括数据生成器13、14和单向电路15。
进一步地,包括临时存储数据的内部寄存器92。
在NAND闪存100中,除了来自存储单元阵列11的读取指令之外,将从存储单元阵列11读取的数据读入数据缓存12的被称为寄存器读取的指令也可用于数据读取。
在认证方法中,NAND闪存100中的隐藏块101不允许记录在隐藏块101中的隐藏信息(NKey、SecretID等)通过来自NAND芯片10外部的访问读取。另一方面,当NAND闪存100执行认证处理时,NAND闪存100可在内部读取记录在隐藏块101中的隐藏信息(NKey、SecretID等)以使用此隐藏信息进行认证处理。也就是说,在有必要允许隐藏信息(NKey、SecretID等)从存储单元阵列11读入数据缓存12的同时,还有必要禁止数据从数据缓存12输出到NAND闪存100的外部。这对应于撤销寄存器读取。
这样,当从NAND闪存100外部访问隐藏块101时的数据读取操作便不同于正常读取操作。更具体地说,当访问隐藏块101时,从存储单元阵列11读出的数据被锁定在数据缓存DC_A之外的数据缓存DC_B、DC_C内,从而防止数据输出以撤销寄存器读取指令,以使得该指令不工作。另一方面,如果被访问的块不是隐藏块101,则像平常一样使用数据缓存DC_A读取数据。
这样,根据上述配置,提供多个数据缓存DC_A至DC_C,并且使用用户无法从外部访问的DC_B、DC_C执行认证处理。这样,当隐藏信息(Nkey、SecretID等)用于认证处理时,可有利地防止诸如密钥信息(NKey)之类的隐藏信息被从外部非法读取。
<认证处理中的NAND内部操作流程的第一实例>
接下来,将参考图40示出在认证处理过程中,不会直接或间接地将隐藏块101中存储的信息输出到主机设备2000的流程。
(步骤S82)
首先,在认证处理中假设数据从NAND闪存100外部输入(例如,从主机设备2000输入)。输入数据例如是随机数RN或主机常数HCj,并且数据被加载到数据缓存DC_A内。
(步骤S83)
接下来,从主机设备2000做出访问隐藏块101之类的特殊块的间接读取请求。这对应于认证中认证信息的计算请求。
响应于该请求,从存储单元阵列11读取的机密页的数据被读出。
(步骤S84)
接下来,机密页的读取数据被存储在数据缓存DC_B内。
(步骤S85)
接下来,使用操作器(认证电路107)在存储于数据缓存DC_A与数据缓存DC_B中的数据之间执行上述实施例中描述的认证处理操作。
(步骤S86)
接下来,操作结果被存储在数据缓存DC_C内。
(步骤S87)
如果在完成序列之后芯片变为就绪状态时机密数据保留在数据缓存中,则机密数据可能被从外部读取。为了避免此可能性,有必要在序列完成之前重置数据缓存DC_A至DC_C的全部中的信息。另一方面,在重置数据缓存DC_A至DC_C之后,主机设备2000需要获取操作结果。
这样,存储在数据缓存DC_C内的操作结果首先被复制到内部寄存器92。
(步骤S88)
接下来,重置所有数据缓存DC_A至DC_C中的数据(因为,数据已被删除)。
(步骤S89)
接下来,保存在内部寄存器92中的数据被放回数据缓存DC_A。如果在这以前的操作完成,则NAND闪存100完成序列以变为就绪状态。此时,操作结果被存储在数据缓存DC_A内。
(步骤S90)
接下来,主机设备2000可通过寄存器读取指令获取存储在数据缓存DC_A内的数据。
<认证处理中的NAND内部操作流程的第二实例>
接下来,将参考图41描述在NAND闪存100的内部包括随机数生成器24n的实施例中的NAND内部操作流程。图41与图40的不同之处在于使用NAND闪存100内部的随机数生成器24n所生成的随机数RNn。
(步骤S91)
首先,在认证处理中,当随机数读取请求被从主机设备2000发送到NAND闪存100时,NAND闪存100生成随机数。所生成的随机数被加载到数据缓存DC_A内。
(步骤S92)
接下来,主机设备2000通过寄存器读取指令读取数据缓存DC_A内的随机数。
(步骤S93)
接下来,在认证处理中,数据(例如,主机常数(HCj))被从主机设备2000输入NAND闪存100。数据被加载到数据缓存DC_A内。
进一步地,在主机设备2000中计算的认证信息被从主机设备2000输入NAND闪存100。数据例如是Oneway-ID,并且数据被加载到数据缓存DC_A内。
(步骤S94)
接下来,通过访问隐藏块101,从主机设备2000做出间接读取请求。这对应于认证中认证信息的计算请求。
然后,机密页被从存储单元阵列11读取。
(步骤S95)
接下来,读取结果被存储在数据缓存DC_B内。
(步骤S96)
接下来,使用操作器(认证电路107)在存储于数据缓存DC_A与数据缓存DC_B中的数据之间执行上述实施例中描述的认证处理操作。
(步骤S97)
接下来,操作结果被存储在数据缓存DC_B内。
(步骤S98)
接下来,根据数据缓存DC_B内存储的NAND闪存的操作结果检验数据缓存DC_A内存储的主机设备的操作结果。
(步骤S99)
接下来,如果检验结果的匹配性在步骤S98的检验中得到确认,则更新控制参数(890)。
(步骤S100)
接下来,NAND闪存100重置数据缓存DC_A至DC_C的全部中的信息。如果在这以前的操作完成,则NAND闪存100退出序列以变为就绪状态。
(步骤S101)
接下来,主机设备2000使用指令获取从存储器100读取的检验结果以确认检验结果。
<隐藏信息的检查方法>
接下来,将描述隐藏信息的检查方法。
<检查流程>
将参考图42示出在从制造硅到发售NAND闪存100的过程中,与该认证方法相关的过程。
如图所示,过程按照制造工艺、测试、隐藏数据写入和发售的顺序执行。
(步骤S71、S72)
首先,当制造工艺完成时,执行预定的检查测试以从晶圆对合规的芯片10进行排序。
(步骤S73)
接下来,在完成步骤S72的正常测试过程之后,执行写入隐藏数据的过程,并且需要执行测试以检查隐藏数据是否已被正确地写入。
另一方面,隐藏数据不能被直接从隐藏块101读取。这是因为读取功能可能变为安全漏洞。
(步骤S74)
接下来,发售正确写入隐藏数据的NAND闪存100。
<隐藏信息的间接读取检查流程>
从可能变为安全漏洞的角度来讲,在步骤S73,隐藏数据不能被直接从隐藏块101读取。
这样,将参考图43描述在不提供直接数据读取功能的情况下检查已记录数据的流程。
(步骤S111)
首先,从存储单元阵列11的隐藏块101读取隐藏信息(NKey等)。
(步骤S112)
接下来,读取隐藏信息(NKey等)的读取结果被存储在数据缓存DC_B内。
(步骤S113)
接下来,使数据缓存DC_A存储来自NAND闪存100外部的同一隐藏信息(NKey等)。
(步骤S114)
接下来,使用操作器(认证电路107)对缓存DC_A内的数据和缓存DC_B内的数据执行异或运算。
(步骤S115)
接下来,异或运算结果被存储在数据缓存DC_C内。
(步骤S116)
接下来,读出数据缓存DC_C内的数据。
(步骤S117)
此时,如果数据缓存DC_A内的数据与数据缓存DC_B内的数据匹配(是),则测试通过(OK)。另一方面,如果两个数据片段失配(否),则测试失败。
更具体地说,数据缓存DC_C包含异或运算的结果。因此,如果数据缓存DC_C内的数据全部为“0”(是),则测试通过(OK)。另一方面,如果数据缓存DC_C内的数据为“1”(否),则测试失败。
首先,读出数据缓存DC_C内的数据是否全部为“0”,如果所有位为“0”(是),则测试通过(OK)。否则(否),测试继续到步骤S118。
(步骤S118)
接下来,如果所有位不为“0”(否),则计算“1”的数量。如果“1”的数量等于指定数量或者为更小值(是),则测试通过,因为错误被判定为可通过多数票决错误校正或校正码进行校正(OK)。另一方面,如果“1”的数量等于指定数量或者为更大值(否),则测试失败(NG)。
另外,通过使用一种方法(此方法针对上述实施例中所述的特定块的访问控制执行认证)单独将硬连线的第二隐藏信息(而非记录在隐藏块101中的隐藏信息)存储在NAND闪存100中,可以使用基于第二隐藏信息控制对隐藏块101的访问的方法。在这种情况下,通过基于第二隐藏信息的认证,不仅可以控制数据读取,而且还能控制数据写入和数据擦除。
<有利效应>
基于根据第九实施例的认证者、被认证者和认证方法,至少可获取与上述实施例类似的有利效应(1)至(5)。
进一步地,在该实施例中,当访问隐藏块101时,从存储单元阵列11读出的数据被锁定在数据缓存DC_A之外的数据缓存DC_B、DC_C内,从而防止数据输出以撤销寄存器读取指令,以使得该指令不工作。另一方面,如果被访问的块不是隐藏块101,则像平常一样使用数据缓存DC_A读取数据。
这样,根据上述配置,提供多个数据缓存DC_A至DC_C,并且使用用户无法从外部访问的DC_B、DC_C执行认证处理。这样,当隐藏信息(Nkey、SecretID等)用于认证处理时,可有利地防止诸如密钥信息(NKey)之类的隐藏信息被从外部非法读取。
此外,如步骤S88和S100所示,DC_A至DC_C内诸如密钥信息之类的隐藏信息在从忙碌状态返回到准备状态之前所有被擦除。这样,可确保安全性。
[第十实施例(指令映射实例)]
第十实施例涉及指令映射实例。在描述中,省略与上述实施例重叠的部分。
<与读/写指令兼容的指令映射的实例>
NAND闪存100通过“00h”-“Address”-“30h”指定要读取和页地址,例如作为用于读取的指令。地址部分通常示出块地址、页地址或指定页中的字节位置。列地址部分中的输入数据可被忽略,或者可用于在页读取之后设定字节指针,以从对应于字节指针的字节位置读取所定位的数据。输入指令30h之后,NAND闪存100处于读取忙碌状态,并且在读取完成之后更改为准备状态。在转变为准备状态之后,数据输出(Dout)被启动,并且数据可通过提供信号RE或DQS来读取。为了更改读取页中的字节位置,对应于要读取的字节位置的列地址使用指令序列“05h”-“Address”-“E0h”设定。
指令序列“80h”-“Address”-“Input Data”-“10h”用于数据写入(记录)以指定要被写入内容的块和页。地址部分通常示出块地址、页地址或指定页中的字节位置。列地址部分的输入数据可被忽略,或者可用于设定页写入数据输入的字节指针,以从对应于字节指针的字节位置输入所定位的写入数据。输入指令10h之后,NAND闪存100处于写入忙碌状态,并且在写入完成之后更改为准备状态。
上面是NAND闪存100广泛使用的指令系统。当实现根据上述实施例的认证功能时,从最小化电路封装面积的角度来说,最好尽可能多地提供序列的通用性。但是认证功能在需要安全性的领域中使用,因此还存在这样的观点:更理想地状况是限制功能用户。
这样,图44示出考虑到上面的观点,与上述NAND闪存100的读取和写入指令兼容指令映射实例。
指令映射实例与上述一般指令序列的不同之处在于安全前缀的输入指令附着在指令之前。可考虑通过单个字节和多个字节配置的安全前缀。指令安全前缀仅向那些需要认证功能的用户公开。从用户管理的角度来看,理想地通过多个字节配置指令安全前缀。
如图44的(a)所示,与数据读取指令序列一样,要读取的块地址和页地址通过按顺序将“command Security Prefix”-“command 00h”-“address ADD”-“command 30h”输入IO端子来指定。可将地址值集设定为特殊值以实现用户管理。备选地,还可以将地址值集设定为在内部被忽略的值。
接下来,在输入指令30h之后,NAND闪存100处于读取忙碌状态,并且在读取完成之后更改为准备状态。在转变为准备状态之后,数据输出(Dout)被启动,并且诸如索引信息i、v;唯一加密的秘密标识信息(E-SecretID);以及通常附加的密钥管理信息(FKB)之类的数据可通过提供信号RE、DQS等来读取。
如图44的(b)所示,与数据写入指令序列一样,目标数据通过按顺序将“command Security Prefix”-“command 80h”-“address ADD”-“data Din(32B)”-“command 10h”输入IO端子来输入。可将地址值集设定为特殊值以实现用户管理。备选地,还可以将地址值集设定为在内部被忽略的值。该序列与写入序列具有许多相同之处,但实际上,不需要将数据写入单元阵列,该实施例用于输入NAND闪存100在认证处理中执行计算时所需的数据。在认证处理中执行计算所需的数据的实例包括主机设备2000的特殊信息HCj和随机数。
接下来,NAND闪存100处于忙碌状态,直到认证处理的计算完成,然后在计算完成时更改为准备状态,并且数据缓存DC_A至DC_C内的安全数据全部被清除。
如图44的(b)所示,在转变为准备状态之后,主机设备2000可通过按顺序将“command 05h”-“address ADD”-“command E0h”输入IO端子来输入,并指定存储认证处理计算结果的列地址来获取结果。作为认证处理计算结果的实例,可引用Oneway-ID。
<与Set/Get Feature指令兼容的指令映射实例>
接下来,将使用图45示出应用本发明认证功能的NAND闪存100的指令配置的另一实例。
NAND闪存100包括被称为“Set Feature”的指令,用于启用存储器100的功能,以及被称为“Get Feature”的指令,用于读取存储器100功能的启用/禁用状态。这些指令例如用于启用作为高速数据传输互补信号的/RE、/WE和/DQS的输入。
“Set Feature”通过“EEh”-“Address”-“Data input”设定功能。功能编号被设定为“Address”,由功能编号指示的功能参数被输入“Datainput”。然后,到达启用功能的忙碌期。在启用功能之后,转变为准备状态。
“Get Feature”通过“EFh”-“Address”-“Data output”读取功能的启用/禁用状态。功能编号被设定为“Address”,由功能编号指示的功能参数被输出到“Data output”。忙碌期位于“Address”与“Data output”之间以在内部读取set参数。
该实施例是转移这些Set Feature和Get Feature的指令序列实例。
如(a)所示,指令序列与上述实例一样,但是要指定的“Address”不同。“Address”可以是单个字节或多字节。“Address”仅向需要认证功能的用户公开。从用户管理的角度来看,理想地通过多个字节配置“Address”。与图45所示的一样,“Data output”和“Data input”实例包括索引信息i、v;唯一加密的秘密标识信息(E-SecretID);以及通常附加的密钥管理信息(FKB)等。
如图(b)所示,数据输入的指令序列“EEh”-“address ADD”-“data Din”包括同时执行认证处理,并且NAND闪存100在忙碌期执行认证处理计算。
接下来,在计算完成并且从数据缓存清除安全数据之后,NAND闪存100更改为准备状态。在转变为准备状态之后,主机设备2000可读出Oneway-ID。
<有利效应>
基于根据第十实施例的认证者、被认证者和认证方法,至少可获取与上述实施例类似的有利效应(1)至(5)。
进一步地,在该实施例中,可尽可能多地提供NAND闪存100的指令序列的通用性。因此,可在考虑安全性的同时最小化电路的封装面积,这在实现根据上述实施例的认证功能时更有效。
另外如图45所示,被称为“Set Feature”的用于启用存储器100功能的指令和被称为“Get Feature”的用于读取存储器100的功能启用/禁用状态的指令也可被作为通用指令并在必要时应用。
在从忙碌状态返回之前清除数据缓存DC_A至DC_C内所有数据的操作与上述情况完全相同。
[第十一实施例(存储卡、内存保护和HDD的应用实例)]
第十一实施例涉及存储卡、内存保护和HDD的应用实例。在描述中,省略与上述实施例重叠的部分。
<存储卡的应用实例>
参考图45,将示出包括被应用本发明认证功能的NAND闪存100的存储卡的配置实例。
如图45所示,存储卡1000中包括控制器200,其具有控制存储器100操作的功能、控制与主机设备2000的接口的功能等。
包括在NAND封装中堆叠的多个NAND闪存芯片100(MCP1)、(MCP2)中的至少一者。NAND封装中的至少一个存储器100可具有根据实施例的认证功能和被认证功能。换言之,不需要NAND封装中的所有存储器100都具有根据实施例的认证功能和被认证功能。进一步地,不需要安装在存储卡1000上的所有NAND封装都具有根据实施例的认证功能和被认证功能。为清晰起见,该实施例中的NAND闪存100可被称为NAND封装或NAND闪存芯片。
存储卡1000中的控制器200具有以下功能:经由NAND封装中的NAND接口控制根据实施例的认证功能和被认证功能。控制器200的功能可以具有这样的功能:控制多个NAND封装中的一者的认证功能和被认证功能,或者具有这样的功能:控制多个NAND封装中的每一者的认证功能和被认证功能。进一步地,控制器200的功能可以具有这样的功能:控制NAND封装内存储器100中的一者的认证功能和被认证功能,或者具有这样的功能:控制NAND封装内存储器100中的每一者的认证功能和被认证功能。
内容保护的第一应用实例
将使用图47示出包括被应用认证功能的NAND闪存100的存储卡1000的内容保护的第一应用实例。为简单起见,下文不再描述此前已经描述的内容。
控制器200和NAND封装(MCP1)、(MCP2)嵌入存储卡1000内。NAND封装(MCP1)、(MCP2)具有根据实施例的认证功能和被认证功能。
主机设备2000通过实施例中示出的认证处理检验NAND闪存100的NAND封装(MCP1)、(MCP2)的秘密标识信息SecretID的真实性。
在检验真实性之后,主机设备2000基于秘密标识信息SecretID,使用第五实施例中描述的方法执行EMID的计算处理。
NAND封装(MCP2)生成绑定数据以在写入内容时关联EMID与内容。绑定数据理想地包含有关用于加密/解密内容的密钥的数据。绑定数据被记录在安装于卡100上的NAND封装(MCP1)、(MCP2)中的一者内。记录绑定数据的NAND封装可以是NAND封装(MCP1)(包括用于认证处理的秘密标识信息SecretID)或另一NAND封装(MCP2)。图47示出后一种实例,但是绑定数据的设置不限于该实例。内容的记录位置可以类似地位于任一NAND封装中。
计算并检验内容与EMID之间的关系,仅当检验此关系之后,才能再现内容。EMID通过秘密标识信息SecretID的认证处理以及关联EMID与内容的绑定数据获取。
根据上述配置,内容(Content)与秘密标识信息SecretID关联。这样,即使内容或绑定数据被非法复制到不包括同一秘密标识信息SecretID的另一存储卡,也可有利地实现使内容再现失效的效应。
HDD的第一应用实例
将使用图48示出使用被应用本发明认证功能的NAND闪存100的硬盘驱动器(HDD)的第一配置实例。
如图48所示,至少一个NAND封装(MCP1)被嵌入HDD封装400内,并且至少一个NAND封装具有根据实施例的认证功能和被认证功能。
至少一个HDD 210被嵌入HDD封装400内。
进一步地,嵌入控制NAND封装(MCP1)、控制HDD 210,以及与主机设备的控制接口的桥控制器190。桥控制器190可通过单个集成电路或多个集成电路配置。也可通过组合集成电路和固件来实现功能。
NAND封装(MCP1)中的认证功能和被认证功能经由桥控制器190被提供给作为主机设备的HDD 210。
HDD的第二应用实例
将使用图49示出使用被应用本发明认证功能的NAND闪存100的硬盘驱动器(HDD)的另一配置实例。
如图所示,HDD封装400包括存储卡座550以连接上面在图46中描述的存储卡1000。
至少一个HDD 210被嵌入HDD封装400内。进一步地,嵌入控制存储卡1000、控制HDD 210以及控制与主机设备的接口的桥控制器190。桥控制器190可通过单个集成电路或多个集成电路配置。也可通过组合集成电路和固件来实现功能。
存储卡1000中的认证功能和被认证功能经由桥控制器190被提供给作为主机设备的HDD 210。
内容保护的第二应用实例
图50示出使用被应用本发明认证功能的NAND闪存100的硬盘驱动器(HDD)的内容保护的应用实例。为简单起见,下文不再描述此前已经描述的内容。该实施例将图48所示的HDD配置作为实例,但是也适用于图48所示的HDD配置(逻辑不对,原文有误)。
如图所示,桥控制器190A、190B、存储卡座550A、550B,以及HDD210A、210B分别嵌入HDD封装200A、200B内。
存储卡1000包括根据实施例的认证功能和被认证功能。主机设备2000通过实施例中示出的认证处理检验NAND闪存100的秘密标识信息SecretID的真实性。在检验真实性之后,主机设备2000基于秘密标识信息SecretID,使用第五实施例中所示的方法执行EMID的计算处理。
写入内容之后,生成绑定数据以关联EMID与内容(Content)。绑定数据理想地包含有关用于加密/解密内容的密钥的数据。绑定数据被记录在存储卡1000和HDD 210A、210B中的一者内。示出绑定数据被记录在HDD 210A、210B内的实例,但是绑定数据的设置不限于该实例。内容的记录位置可以是存储卡1000和HDD 210A、210B中的任一者。
计算并检验内容与EMID之间的关系,仅当检验此关系之后,才能再现内容。EMID通过秘密标识信息SecretID的认证处理以及关联EMID与内容的绑定数据获取。
该实施例是经由卡座550A使用存储卡1000的NAND闪存100中包括的认证功能和被认证功能的实例,但是也适用于图48所示的NAND封装直接嵌入HDD内以及HDD直接控制NAND封装的配置。在这种情况下,存储卡可被NAND封装取代。
进一步地,作为适用于具有卡座550A、550B的HDD的应用实例,如果存在多个类似的HDD封装,则记录在任一HDD内的内容仅能通过在将内容和绑定数据复制到两个HDD封装之后移动卡来再现。绑定数据可记录在卡内,而非HHD或者这两者内。
根据该配置,内容(Content)与存储卡1000或NAND封装中的SecretID关联,这样,即使内容或绑定数据被非法复制到不包括同一SecretID的存储卡1000,也可实现使内容再现失效的效应。
进一步地,在HDD封装包括图49所示的存储卡座的实例中,记录在多个HDD内的内容仅能通过移动存储卡来再现。这在便携性方面是有利的,因为与存储卡相比,HDD的外壳较大并且针对固定使用安装。
内容保护的第三应用实例
参考图51,将描述使用被应用本发明认证功能的NAND闪存100的硬盘驱动器(HDD)的第三应用实例。该实施例是主机设备2000包括存储卡座550并且使用外部HDD 210的实例。
如图所示,桥控制器190和HDD 210被嵌入HDD封装400内。
插入存储卡座550的存储卡1000中包括的卡控制功能和认证功能被嵌入主机设备2000内。具有根据实施例的认证功能和被认证功能的NAND封装被嵌入存储卡1000内。
在上述配置中,主机设备2000通过实施例中所述的认证处理检验NAND闪存100的秘密标识信息SecretID的真实性。
在检验真实性之后,主机设备2000基于秘密标识信息SecretID,使用根据第五实施例的方法执行EMID的计算处理。
当写入内容时,生成绑定数据以关联EMID与内容(Content)。绑定数据理想地包含有关用于加密/解密内容的密钥的数据。绑定数据被记录在存储卡1000和HDD 210中的一者内。此处示出后一种实例,但是绑定数据的设置不限于该实例。内容的记录位置可以类似地位于存储卡1000或HDD 210中。
计算并检验内容与EMID之间的关系,仅当检验此关系之后,才能再现内容。EMID通过SecretID的认证处理以及关联EMID与内容的绑定数据获取。
该实施例是经由卡座550使用存储卡1000的NAND闪存100中包括的认证功能和被认证功能的实例,但是也适用于NAND封装直接嵌入主机设备2000内以及主机设备2000直接控制NAND封装的配置。在这种情况下,存储卡可被NAND封装取代。
进一步地,作为适用于具有卡座550的主机设备2000的应用实例,如果存在多个类似的主机设备20,则内容可通过主机设备20中的任一者将存储卡1000和HDD封装400连接到其它主机设备2000来再现。内容和绑定数据可记录在卡1000内,而非HHD 210或者这两者内。
根据该配置,内容与存储卡1000或NAND封装中的SecretID关联,这样,即使内容或绑定数据被非法复制到不包括同一SecretID的存储卡,也可实现使内容再现失效的效应。进一步地,内容可通过多个主机设备移动存储卡1000和HDD 210再现。
内容保护的第四应用实例
将使用图53描述使用被应用本发明认证功能的NAND闪存100的硬盘驱动器(HDD)的第四应用实例。该实施例是主机设备2000包括存储卡座550并且进一步使用内置HDD 210的实例。
如图所示,桥控制器190和HDD 210被嵌入HDD封装400内。
插入存储卡座550的存储卡1000中包括的卡控制功能和认证功能被嵌入主机设备2000内。具有根据上述实施例的认证功能和被认证功能的NAND封装被安装在存储卡1000上。
在上述配置中,主机设备2000通过上述实施例中所示的认证处理检验NAND闪存100的SecretID的真实性。
在检验真实性之后,主机设备2000基于秘密标识信息SecretID,使用根据第八实施例的方法执行EMID的计算处理。
当写入内容时,生成绑定数据以关联EMID与内容(Content)。绑定数据理想地包含有关用于加密/解密内容的密钥的数据。绑定数据被记录在存储卡1000和HDD 210中的一者内。此处示出后一种实例,但是绑定数据的设置不限于该实例。内容的记录位置可以类似地位于存储卡1000或HDD 210中。
计算并检验内容与EMID之间的关系,仅当检验此关系之后,才能再现内容。EMID通过SecretID的认证处理以及关联EMID与内容的绑定数据获取。
该实施例是经由卡座550使用存储卡1000的NAND闪存100中包括的认证功能和被认证功能的实例,但是也适用于NAND封装直接嵌入主机设备20内以及主机设备2000直接控制NAND封装的配置。在这种情况下,存储卡1000可被NAND封装取代。
进一步地,作为适用于具有卡座550的主机设备2000的应用实例,如果存在多个类似的主机设备20,则内容可通过主机设备20中的任一者将存储卡1000和HDD封装400连接到其它主机设备2000来再现。内容和绑定数据可记录在卡1000内,而非HHD 210或者这两者内。
根据该配置,内容与存储卡1000或NAND封装中的SecretID关联,这样,即使内容或绑定数据被非法复制到不包括同一SecretID的存储卡,也可实现使内容再现失效的效应。进一步地,内容可通过多个主机设备移动存储卡1000和HDD 210再现。
[第九实施例的修正(使用数据缓存的另一实例)]
该修正涉及使用第九实施例中描述的数据缓存进行认证处理的另一配置实例。在描述中,省略与上述实施例重叠的部分。
<读出放大器及其外围电路的配置实例>
图53示出读出放大器及其外围电路的配置实例。如图所示,数据缓存12包括数据缓存(锁存电路)DC_A、DC_B、DC_C和DC_S,并且仅DC_A经由列控制电路连接到数据线,并用于与芯片外部的单元交换数据。DC_S是用于根据数据控制读出放大器的操作的闩锁。DC_B、DC_C和DC_S在DC_A与读出放大器之间与总线(LBUS)并联连接,并且被用作数据缓存,有必要经由DC_A与外部交换数据。列控制电路将与列地址关联的DC_A连接到数据线。当NAND闪存用于正常操作时,使用地址控制电路提供的列地址,但是,当执行本发明的认证序列时,使用操作器指定的地址。使用正常地址还是操作器的地址可通过模式切换信号切换。
<读出放大器和数据缓存的等效电路实例>
图54示出图53中的读出放大器77和数据缓存12的等效电路实例。
在下文中,将阐述第四至第十一实施例中的多个实施例并存的系统应用实例。
现在参考图55,将解释其中多个实施例并存的主机设备2000和NAND闪存100的配置实例。当多个实施例在一个系统中实现时,主机设备2000和存储器100分别将对应于每个实施例的认证所需的信息存储在被称为“槽”的区域中。
每个槽被定义为每个实施例中的必要认证所需的信息,以及功能聚合。作为实例,在图55所示的系统中,槽X是第五实施例中所需的信息以及功能聚合;槽Y是第五实施例的第一修正中所需的信息以及功能聚合;槽Z是第五实施例的第二修正中所需的信息以及功能聚合。在图55中,主机设备2000在每个槽中所需的包括认证功能的功能聚合被称为主机认证电路2001。同样在图55中,NAND闪存100在每个槽中所需的包括认证功能的功能聚合被称为存储器认证电路107'。
此处,在主机设备2000与存储器100之间的认证处理中,主机设备2000指定被分配给槽的槽位号。也就是说,槽位号表示每个认证功能以及被用于认证的数据的选择。从更广泛地意义上说,它表示根据所需认证级别的功能的选择。存储器100使用槽选择单元301选择认证所需的数据以便根据指定的槽位号使用,并且执行与认证所需的功能对应的处理。主机设备2000也在槽选择单元301上选择认证所需的数据以便根据自己选定的槽位号使用,并且执行与认证所需的功能对应的处理。
由于引入“槽”概念,因此即使存在所需认证级别不同的应用,也可选择适合应用中的每一者的实施例。此外,通过将通用槽位号提供给应用以及主机设备2000与存储器100之间的通信,可以操作主机设备2000和存储器100的多种组合,并且不存在兼容性问题和认证不一致性。
也就是说,图55示出主机设备2000对应于槽X、Y和Z,而NAND闪存100对应于槽X、Y和Z,以及其它槽的实例。本发明不限于此。可扩展到以下情况:主机设备2000对应于槽X的情况;主机设备2000对应于两个槽X和Y的情况;以及主机设备2000对应于槽X、Y、Z,以及其它槽的情况。备选地,可以扩展到以下情况:存储器100仅对应于槽X的情况;存储器100仅对应于槽Y的情况;存储器100仅对应于槽Z的情况;存储器100对应于槽X和Y的情况;以及存储器100对应于槽X、Y和Z的情况。
而且,当存在多个主机设备2000时,主机设备2000A可仅对应于槽X,主机设备2000B可对应于槽X和Y。在类似的情况下,NAND闪存100可仅对应于槽X,或者可仅对应于槽Y。本发明不限于这些实例,而是可通过多种方式扩展其操作。
现在将参考图56,其中解释使用槽的方法。如上所述,具有多个槽可允许一个系统处理多个在认证级别方面不同的应用。图56示出处理多个应用的实例。槽O-T分别与应用A-G具有对应关系。例如,槽O用于应用A的认证处理。另外,槽P用于应用C的认证处理。需要指出,槽O与应用B,以及应用A具有对应关系。
一般而言,应用根据多种标准进行分类并使用。图56示出应用基于内容类型进行分类,并被分配槽的情况。作为实例,在图56中,应用根据内容数据的内容(图书、音乐或游戏)进行分类,并且不同的槽被分配给不同的应用。
另一方面,由于特定原因,可将同一槽分配给不同的应用。例如,在图56中,当应用A为SD(标清)低质电影,应用B为HD(高清)优质电影时,可将同一槽O分配给应用A和B。由于应用A和B具有共性,即它们都涉及电影内容数据,所以可将同一槽分配给它们,并且它们可以共享同一认证功能。
但是,可能存在所需认证功能不同的情况。例如,就SD电影内容和HD电影内容而言,在某些情况下,HD电影内容需要具有较高的安全级别,并且需要具有更多功能。在这种情况下,可以分别将不同的槽分配给HD电影内容和SD电影内容。类似地,应用C至E可被分配电子图书、音乐、图书等。
此外,为应用分配的方式可基于数据保护的一个方面和意图确定。例如,当存在在协作中保护机密信息的应用、以及保护个人信息的应用时,可为这些应用分配不同的槽。
另外,可根据数据使用方式将属于同一种类的多个应用进行分类,并且可将不同的槽分配给这些应用。例如,当存在有关医疗数据保护的多个应用时,可基于使用地点(site)(例如,医院或医疗站)的差别对这些应用进行分类,并且可将不同的槽分配给这些应用。需要管理的应用可被分配为专属应用,并且可分别为它们分配不同的槽。
另外,多个应用可共享同一槽,但是它们可能具有认证所需的不同数据以及不同的功能。已经解释了,槽包括认证所需的数据和功能。这表示即使市场上存在多个主机设备2000和NAND闪存100,也可以没有混淆地操作它们。另一方面,可能存在这样的情况:其中不需要假设多个主机设备2000和多个NAND闪存100,例如,当在极为有限的区域内(例如,在医院或医疗站内)执行操作时。在这种情况下,根据医疗的分类分配槽。但是,即使应用具有同一槽位号,也可能存在有关认证所需的数据和功能的多种变形。可根据每个位置的操作指导原则确定它们。
现在参考图57,其中描述将槽分为大类的方法,以及将密钥分配给主机设备2000和存储器100的方法。与图56中的情况类似,在连接应用的同时为它们中的每一者分配槽。
可根据主机设备2000的每个制造商的原定规则、NAND闪存100的每个制造商的原定规则,或者这些制造商之间确定的原定规则执行分配。另一方面,可以按照包括诸如制造商和服务提供商之类相关利益方的组(例如,标准化组)建立规则。
但是,当标准化组确定所有槽的用途时,例如,只有特定制造商希望使用的应用中的决策弹性降低。在图57中,特定数字范围(指示图57中的槽位号0至槽位号M)中的数字指定标准化组定义的应用的标准应用区域,而另一数字范围(指示图57中的槽位号M+1至槽位号M+N)中的数字指定相关利益方中每一者自由定义的非标准使用区域。这样可以在确保大范围内常见应用的兼容性与确保各个应用的灵活性之间实现良好平衡。上述认证所需的数据和功能被附着到每个槽上。在认证所需的数据当中,标准化组织或每个制造商提供和应用的数据被称为“密钥集”。被提供给和应用于主机设备2000的密钥集被称为“主机密钥集”,被提供给和应用于存储器100的密钥集被称为“存储器密钥集”。槽通过不同的密钥集提供和应用。备选地,有些槽通过它们之间共享的密钥集提供和应用。
接下来,现在参考图58,其中示出在比对密钥集之后提供密钥集,并且保护其兼容性的方法。在该实例中,每个密钥集通过密钥颁发/管理中心3000被提供给每个制造商,并且被应用于每个设备。存储器设备分别由多个制造商(A、B、C)制造。存储器设备中的每一者可能在其中所需的认证功能范围方面不同。此外,主机设备分别由多个制造商(P、Q)制造。主机设备中的每一者可能在其中所需的认证功能范围方面不同。在该实例中,为了确保特定范围内槽位号的兼容性,应被用作最低标准(最低保证槽)的槽位号和槽位号所需的认证功能范围针对存储器设备确定,并且执行存储器设备的操作,不用考虑存储器设备的制造商。
例如,槽位号0至槽位号L被确定为具有认证功能和对应于第四实施例的用途。槽位号L+1至槽位号L+4被确定为具有认证功能和对应于第五实施例的用途。槽位号L+5至槽位号L+6被确定为具有认证功能和对应于第五实施例的第一修正的用途。槽位号L+7至槽位号M被确定为具有认证功能和对应于第五实施例的第二修正的用途。存储器设备中的每一者被配置为具有认证功能和对应于槽位号0至M的密钥集。
最低保证槽可由主要由上述标准化组织定义的标准应用区域、非标准应用区域、这些区域的一部分,它们的组合等构成。例如,上述实例中的槽位号0至槽位号M被定义为最低保证槽,在它们当中,0至L被定义为由标准化组确定的标准应用区域并执行操作,L+1至M被定义为非标准应用区域并执行操作。但是,无论槽位于标准应用区域中,还是非标准应用区域中,认证功能和密钥集都由标准化组定义,以确保兼容性。对于最低保证槽之外的槽区域,由每个制造商决定所支持的槽位号。例如,在图58中,制造商A支持槽位号M+1至槽位号M+X,制造商B支持槽位号M+1至槽位号M+Y,而制造商C支持槽位号M+1至槽位号M+Z。
另一方面,对于主机设备,由制造商决定所支持的槽位号,因为最低保证槽被定义为位于存储器设备中,而主机设备具有一般根据目标用途制造的特性。
当制造对应于标准应用区域的最低保证槽或槽位号的主机设备时,通过主机密钥集提供和应用主机设备,该主机密钥集足以认证所有存储器设备(是指图58中由制造商P制造的主机设备)。
另一方面,当制造对应于上述槽之外的槽的主机设备时,在有限范围内确保兼容性对于应用而言足以,根据主机设备制造商与存储器制造商之间的规则,提供并应用足以认证特定存储器设备的主机密钥集(是指图58中由制造商Q制造的主机设备),而非提供或应用足以认证所有存储器设备的主机密钥集。具体而言,在上述实施例的秘密信息HKeyi,j(i=1、...、m;其中j在HKeyi,j中是固定值)当中,“i”对应于存储在每个存储器中的NKeyi。也就是说,当主机设备只有HKeyi,j(i=1)时,主机设备只有认证具有NKeyi,j(i=1)的存储器设备(例如,制造商A制造的存储器设备)的功能。备选地,当主机设备只有HKeyi,j(i=3)时,主机设备只有认证具有NKeyi,j(i=3)的存储器设备(例如,制造商C制造的存储器设备)的功能。换言之,当主机设备认证特定存储器时,提供和应用对应于目标存储器设备的i的秘密信息HKeyi,j。
尽管描述了特定实施例,但是这些实施例仅处于示意的目的给出,并非旨在限制发明范围。实际上,此处描述的新颖实施例可通过多种其它形式实现;而且,在不偏离发明精神的情况下,可以对此处描述的实施例做出各种形式上的省略、替换和更改。所附权利要求及其等价物旨在涵盖这些落在发明的范围和精神内的形式或修改。
[参考标号解释]
1000 存储卡
2000 主机设备
3000 密钥颁发/管理中心
100 存储器
200 控制器

Claims (2)

1.一种存储器设备,包括:
第一存储区,至少在所述存储器设备发售之后禁止从所述存储器设备的外部对第一存储区执行读取和写入;
第二存储区,允许从所述存储器设备的外部对第二存储区执行读取,并且禁止对第二存储区执行写入;以及
第三存储区,允许从所述存储器设备的外部对第三存储区执行读取和写入,
所述第一存储区是用于存储第一密钥信息(Nkey)和标识信息(SecretID)的区域,
所述第二存储区是用于存储加密的标识信息(E-SecretID)的区域,其中通过使用第二密钥信息(Fkey)对标识信息进行加密来生成加密的标识信息(E-SecretID),
所述第三存储区是用于存储加密的第二密钥信息(FKB)的区域,其中通过对所述第二密钥信息进行加密来生成加密的第二密钥信息(FKB),
为了对主机设备进行认证,
所述存储器设备被配置为将所述加密的第二密钥信息(FKB)输出到所述主机设备,
将所述加密的标识信息(E-SecretID)输出到所述主机设备,
使用从所述主机设备接收的信息(HC)和所述第一密钥信息生成第三密钥信息(Hkey),
使用从所述主机设备接收的随机数(RN)和所述第三密钥信息生成会话密钥(Skey),
通过使用所述会话密钥对所述标识信息执行单向转换处理,生成认证信息(Oneway-ID),以及
将所述认证信息(Oneway-ID)输出到所述主机设备。
2.一种存储器系统,包括存储器设备和存储控制器,
所述存储器设备包括
第一存储区,至少在所述存储器设备发售之后禁止从所述存储器设备的外部对第一存储区执行读取和写入;
第二存储区,允许从所述存储器设备的外部对第二存储区执行读取,并且禁止对第二存储区执行写入;以及
第三存储区,允许从所述存储器设备的外部对第三存储区执行读取和写入,
所述第一存储区是用于存储第一密钥信息(Nkey)和标识信息(SecretID)的区域,
所述第二存储区是用于存储加密的标识信息(E-SecretID)的区域,其中通过使用第二密钥信息(Fkey)对标识信息进行加密来生成加密的标识信息,
所述第三存储区是用于存储加密的第二密钥信息(FKB)的区域,其中通过对所述第二密钥信息进行加密来生成加密的第二密钥信息(FKB),
为了对主机设备进行认证,
所述存储器设备将所述加密的第二密钥信息(FKB)输出到所述主机设备,
将所述加密的标识信息(E-SecretID)输出到所述主机设备,
使用从所述主机设备接收的信息(HC)和所述第一密钥信息生成第三密钥信息(Hkey),
使用从所述主机设备接收的随机数(RN)和所述第三密钥信息生成会话密钥(Skey),
通过使用所述会话密钥对所述标识信息执行单向转换处理,生成认证信息(Oneway-ID),以及
将所述认证信息(Oneway-ID)输出到所述主机设备,
所述存储器设备进一步包括:
第一处理单元,其用于生成第三密钥信息;以及
第二处理单元,其用于生成会话密钥,
所述存储器设备由第一制造商制造,
所述控制器由第二制造商制造,并且
所述存储其系统由第三制造商制造。
CN201280073465.9A 2012-05-25 2012-05-25 存储器设备和存储器系统 Pending CN104350503A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/063566 WO2013175642A1 (ja) 2012-05-25 2012-05-25 メモリデバイスおよびメモリシステム

Publications (1)

Publication Number Publication Date
CN104350503A true CN104350503A (zh) 2015-02-11

Family

ID=49623366

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280073465.9A Pending CN104350503A (zh) 2012-05-25 2012-05-25 存储器设备和存储器系统

Country Status (6)

Country Link
US (1) US20150074406A1 (zh)
EP (1) EP2858006A4 (zh)
JP (1) JP5855243B2 (zh)
KR (1) KR20140146199A (zh)
CN (1) CN104350503A (zh)
WO (1) WO2013175642A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106096460A (zh) * 2015-04-30 2016-11-09 Arm 有限公司 在互连中实施数据保护
CN110147206A (zh) * 2019-05-23 2019-08-20 胡志强 一种存储卡及其数据传输方法
CN112637161A (zh) * 2018-09-12 2021-04-09 宁德时代新能源科技股份有限公司 数据传输方法和存储介质

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9703945B2 (en) 2012-09-19 2017-07-11 Winbond Electronics Corporation Secured computing system with asynchronous authentication
US9455962B2 (en) 2013-09-22 2016-09-27 Winbond Electronics Corporation Protecting memory interface
US9343162B2 (en) 2013-10-11 2016-05-17 Winbond Electronics Corporation Protection against side-channel attacks on non-volatile memory
US9318221B2 (en) * 2014-04-03 2016-04-19 Winbound Electronics Corporation Memory device with secure test mode
IL234956A (en) 2014-10-02 2017-10-31 Kaluzhny Uri Data bus protection with enhanced key entropy
BG66942B1 (bg) * 2014-10-03 2019-08-15 Димов Пингелов Вълко Метод за изготвяне на хибридна публикация, устройство и хибридна публикация съгласно метода
US10019571B2 (en) 2016-03-13 2018-07-10 Winbond Electronics Corporation Protection from side-channel attacks by varying clock delays
JP6482690B1 (ja) * 2018-01-11 2019-03-13 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
US11210238B2 (en) 2018-10-30 2021-12-28 Cypress Semiconductor Corporation Securing data logs in memory devices

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7111175B2 (en) * 2000-12-28 2006-09-19 Intel Corporation Method and apparatus for verifying the integrity of a media key block
US7395435B2 (en) * 2002-09-20 2008-07-01 Atmel Corporation Secure memory device for smart cards
JP2006048464A (ja) * 2004-08-06 2006-02-16 Toshiba Corp コンテンツデータ配信システム、コンテンツデータ配信方法及商品販売方法
KR20080084470A (ko) * 2007-03-16 2008-09-19 삼성전자주식회사 컨텐트의 보호 기능을 가진 휴대용 메모리 장치 및 그휴대용 메모리 장치 생성 방법
JP2008269088A (ja) * 2007-04-17 2008-11-06 Toshiba Corp プログラム情報提供システム、プログラム情報提供方法、プログラム情報提供方法に用いられる記録媒体
JP4620146B2 (ja) * 2008-07-18 2011-01-26 株式会社東芝 情報処理装置及び認証方法
JP2010140298A (ja) * 2008-12-12 2010-06-24 Panasonic Corp 記録媒体装置、および、記録媒体装置の認証方法
US8553469B2 (en) * 2011-04-06 2013-10-08 Dell Products L.P. Memory buffer for buffer-on-board applications
JP5100884B1 (ja) * 2011-12-02 2012-12-19 株式会社東芝 メモリ装置
JP4991971B1 (ja) * 2012-03-08 2012-08-08 株式会社東芝 被認証装置及びその認証方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106096460A (zh) * 2015-04-30 2016-11-09 Arm 有限公司 在互连中实施数据保护
CN106096460B (zh) * 2015-04-30 2021-10-15 Arm 有限公司 在互连中实施数据保护
CN112637161A (zh) * 2018-09-12 2021-04-09 宁德时代新能源科技股份有限公司 数据传输方法和存储介质
CN112637161B (zh) * 2018-09-12 2022-07-08 宁德时代新能源科技股份有限公司 数据传输方法和存储介质
CN110147206A (zh) * 2019-05-23 2019-08-20 胡志强 一种存储卡及其数据传输方法
CN110147206B (zh) * 2019-05-23 2022-02-15 胡志强 一种存储卡的数据传输方法

Also Published As

Publication number Publication date
EP2858006A4 (en) 2015-12-23
WO2013175642A1 (ja) 2013-11-28
EP2858006A1 (en) 2015-04-08
JP5855243B2 (ja) 2016-02-09
US20150074406A1 (en) 2015-03-12
JPWO2013175642A1 (ja) 2016-01-12
KR20140146199A (ko) 2014-12-24

Similar Documents

Publication Publication Date Title
JP5100884B1 (ja) メモリ装置
CN104350503A (zh) 存储器设备和存储器系统
US9124432B2 (en) Host device and authentication method for host device
JP5204291B1 (ja) ホスト装置、装置、システム
JP5112555B1 (ja) メモリカード、ストレージメディア、及びコントローラ
CN103782538A (zh) 认证器
US20140006738A1 (en) Method of authenticating a memory device by a host device
US20150341345A1 (en) Security system
JP4991971B1 (ja) 被認証装置及びその認証方法
JP5204290B1 (ja) ホスト装置、システム、及び装置
JP5443575B2 (ja) メモリカード、ホスト装置、及びシステム
JP5433757B2 (ja) メモリ装置、ホスト装置、及びシステム
US20140237245A1 (en) Device and authentication method therefor
JP2013118616A (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: 20150211

WD01 Invention patent application deemed withdrawn after publication