半导体存储设备的制作方法
【专利摘要】根据一个实施方式,一种设备包括:存储器和认证器。所述存储器包括第一区域、第二区域以及第三区域。第一区域用于存储NKey和SecretID,第二区域用于存储索引信息。E-SecretID由SecretID生成。第三区域存储包括由FKey生成的信息的FKB。认证器对外部设备进行认证。HKey通过使用NKey和HC由AES加密计算生成。SKey通过使用HKey和RN由AES加密处理生成。执行了单向转换计算。E-SecretID、FKB以及Oneway-ID被输出到外部设备。索引信息从第二区域被读取。
【专利说明】半导体存储设备
[0001]对相关申请的交叉引用
[0002]本申请基于2011年12月2日提交的2011-265306号日本专利申请,并要求其优先权,该日本专利申请的全部内容通过引用结合至此。
【技术领域】
[0003]在此描述的实施方式大体而言涉及待认证的设备和对设备进行认证的方法。
【背景技术】
[0004]一般而言,在信息安全领域,使用相互共享的秘密信息和加密器的方法被用于证明设备自身的真实性。
[0005]例如,在用于电子结算的IC卡(智能卡)中,用于区别IC卡的ID和秘密信息被存储在卡的IC中。此外,IC卡具有用于基于ID和私密信息执行认证的密码处理函数。
[0006]在另一个示例中,在对版权内容的保护中使用称作可录媒体内容保护(CPRM)的认证方法来认证SD(注册商标)卡的真实性。
【专利附图】
【附图说明】
[0007]图1为示出了根据第一实施方式的存储系统的配置示例的框图;
[0008]图2为示出了根据第一实施方式的存储系统的认证流程的流程图;
[0009]图3示出了根据第一实施方式的加密的Fkey绑定(bundle) (FKB)的配置示例;
[0010]图4为示出了根据第一实施方式的存储系统的配置示例的框图;
[0011]图5示出了根据第一实施方式的由NAND制造商进行的秘密信息写入过程;
[0012]图6为示出了图5中的一个过程的流程图;
[0013]图7示出了根据第一实施方式的由卡制造商进行的FKB写入过程;
[0014]图8为示出了图7中的一个程序的流程图;
[0015]图9示出了根据第一实施方式的被认证方;
[0016]图10为不出了根据第一实施方式的下载FKB的系统的框图;
[0017]图11为示出了根据第一实施方式的FKB下载流程的流程图;
[0018]图12和13为示出了分别根据第二和第三实施方式的存储系统的配置示例的框图;
[0019]图14为示出了根据第三实施方式的存储系统的认证流程的流程图;
[0020]图15为示出了根据第四实施方式的存储系统的配置示例的框图;
[0021]图16为示出了根据第四实施方式的存储系统的认证流程的流程图;
[0022]图17为示出了根据第三或第四实施方式的函数控制的配置示例的框图;
[0023]图18为示出了根据第五实施方式的NAND芯片的整体配置示例的框图;
[0024]图19为示出了一块图18中NAND芯片的配置示例的等效电路图;
[0025]图20A、20B、20C和20D为示出了根据第五实施方式的单元阵列的配置示例的框图;
[0026]图21示出了根据第五实施方式的ROM块中的只读数据;
[0027]图22、23、24和25为示出了 ECC的第一、第二、第三和第四配置示例的框图;
[0028]图26示出了根据第五实施方式的机密块中的机密数据;
[0029]图27示出了根据第五实施方式的存取控制模式的示例;
[0030]图28示出了根据第五实施方式的存取控制模式的使用示例;
[0031]图29示出了根据第五实施方式的测试流程;
[0032]图30示出了根据第五实施方式的数据擦除流程;
[0033]图31为不出了根据第六实施方式的NAND芯片的配置不例的框图;
[0034]图32和33示出了根据第六实施方式的NAND芯片的第一和第二操作流程;
[0035]图34示出了根据第六实施方式的测试流程;
[0036]图35示出了根据第六实施方式的隐藏信息检查流程;
[0037]图36A和36B为示出了根据第七实施方式的命令映射示例的时间图;
[0038]图37A和37B为时间图,不出了根据第七实施方式的命令映射不例(设置/取得特征命令);
[0039]图38为示出了根据第八实施方式的存储卡的配置示例的框图;
[0040]图39示出了根据第八实施方式的对内容保护的第一应用示例;
[0041]图40和41示出了根据第八实施方式的对HDD的第一和第二应用示例;
[0042]图42,43和44示出了根据第八实施方式的对内容保护的第二,第三和第四应用示例;
[0043]图45为框图,示出了根据第二修改的感测放大器的配置示例,及其外围电路;
[0044]图46为图45中感测放大器和数据缓存的等效电路图。
【具体实施方式】
[0045]一般而言,根据一个实施方式,
[0046](1-1) 一种待认证的设备,该设备包括:
[0047]第一存储区,用于存储第一密钥(NKey)和对于设备来说唯一的秘密识别信息(SecretID),至少在发货(ship)之后,禁止从设备外部读取和写入所述第一存储区;
[0048]第二存储区,用于存储通过对秘密识别信息(SecretID)加密而产生的加密的秘密识别信息(E-SecretID),所述第二存储区被要求从设备外部只读;
[0049]第三存储区,被要求能从设备外部可读和可写;
[0050]第一数据生成器,被配置为在AES运算中使用第一密钥(NKey)加密主机常数(HC),从而生成第二密钥(HKey);
[0051]第二数据生成器,被配置为在AES运算中使用第二密钥(HKey)加密随机数(RN),从而生成会话密钥(SKey);
[0052]单向函数(function)处理器,被配置为在单向函数运算中使用会话密钥(SKey)来处理秘密(secret)识别信息(SecretID),从而生成认证信息(Oneway-1D);
[0053]数据输出接口,被配置为向设备外部输出加密的秘密识别信息(E-SecretID)和认证信息(Oneway-1D)。[0054](1-2) 一种待认证的设备,该设备包括:
[0055]第一存储区,用于存储第一密钥(NKey)和对于设备来说唯一的秘密识别信息(SecretID),至少在发货之后,禁止从设备外部读取和写入所述第一存储区;
[0056]第二存储区,用于存储通过对秘密识别信息(SecretID)加密而产生的加密的秘密识别信息(E-SecretID),所述第二存储区被要求从设备外部只读;
[0057]第三存储区,被要求从设备外部可读和可写;
[0058]第一数据生成器,被配置为通过使用第一密钥(NKey)加密主机常数(HC)而生成第二密钥(HKey);
[0059]第二数据生成器,被配置为通过使用第二密钥(HKey)加密随机数(RN)而生成会话密钥(SKey);
[0060]单向函数处理器,被配置为在单向函数运算中使用会话密钥(SKey)来处理秘密识别信息(SecretID),从而生成认证信息(Oneway-1D);以及
[0061]数据输出接口,被配置为向设备外部输出加密的秘密识别信息(E-SecretID)和认证信息(Oneway-1D)。
[0062](1-3) 一种待认证的设备,该设备包括:
[0063]第一存储区,用于存储第一密钥(NKey)和对于设备来说唯一的秘密识别信息(SecretID);
[0064]第二存储区,用于存储通过对秘密识别信息(SecretID)加密而产生的加密的秘密识别信息(E-SecretID);
[0065]第一数据生成器,被配置为在AES运算中使用第一密钥(NKey)来加密主机常数(HC),从而生成第二密钥(HKey);
[0066]第二数据生成器,被配置为在AES运算中使用第二密钥(HKey)来加密随机数(RN),从而生成会话密钥(SKey);
[0067]单向函数处理器,被配置为在单向函数运算中使用会话密钥(SKey)处理秘密识别信息(SecretID),从而生成认证信息(Oneway-1D);
[0068]数据输出接口,被配置为向设备外部输出加密的秘密识别信息(E-SecretID)和认证信息(Oneway-1D)。
[0069](1-4) 一种待认证的设备,该设备包括:
[0070]第一存储区,用于存储第一密钥(NKey)和唯一的秘密识别信息(SecretID),所述第一存储区被限制从设备外部读取和写入;
[0071]第二存储区,用于存储通过对秘密识别信息(SecretID)加密而产生的加密的秘密识别信息(E-SecretID),所述第二存储区从设备外部只读;
[0072]第三存储区,从外部可读和可写;
[0073]第一数据生成器,被配置为通过使用第一密钥(NKey)来生成第二密钥(HKey);
[0074]第二数据生成器,被配置为通过使用第二密钥(HKey)来生成会话密钥(Skey);
[0075]单向函数处理器,被配置为在单向函数运算中使用会话密钥处理秘密识别信息,从而生成认证信息;
[0076]其中加密的秘密识别信息(E-SecretID)以及认证信息(Oneway-1D)被输出到外部。[0077](1-5) 一种待认证的设备,该设备包括:
[0078]存储区,用于存储第一密钥(NKey)、唯一的秘密识别信息(SecretID)以及加密的秘密识别信息(E-SecretID),加密的秘密识别信息(E-SecretID)通过对秘密识别信息(SecretID)加密而生成,禁止从外部读取第一密钥(NKey)和秘密识别信息(SecretID)Jg够从外部读取加密的秘密识别信息(E-SecretID);
[0079]数据生成器,被配置为通过使用第二密钥(HKey)而生成会话密钥(SKey),第二密钥(HKey)是基于第一密钥(NKey)而生成的;
[0080]单向函数处理器,被配置为在单向函数运算中使用会话密钥(SKey)处理秘密识别信息(SecretID),从而生成认证信息。
[0081](1-6) —种认证方法,该方法包括:
[0082]使用第一密钥(NKey)进行AES运算,从而生成第二密钥(HKey),第一密钥存储在存储器中,并禁止从外部被读取;
[0083]使用第二密钥(HKey)进行AES运算,从而生成会话密钥(SKey);
[0084]在单向函数运算中使用会话密钥(SKey)处理秘密识别信息(SecretID),从而生成第一认证信息(Oneway-1D),秘密识别信息(SecretID)存储在存储器中,并禁止从外部被读取;
[0085]将加密的秘密识别信息(E-SecretID)发送至外部设备,从外部设备接收第二认证信息(Oneway-1D),加密的秘密识别信息(Ε-SecretID)存储在存储器中并且可读,第二认证信息(Oneway-1D)是基于加密的秘密识别信息(Ε-SecretID)而生成的;以及
[0086]确定第一认证信息和第二认证信息是否匹配。
[0087](1-7) 一种待认证的设备的制造方法,其中设备包括:第一存储区,从存储器厂商发货之后,禁止对第一存储区进行数据读取和数据写入;第二存储区,从存储器厂商发货之后,允许从外部对第二存储区进行数据读取;第三存储区,从存储器厂商发货之后,允许从外部对第三存储区进行数据读取和数据写入;
[0088]该方法包括:
[0089]由存储器厂商将第一密钥(NKey)和对于设备来说唯一的秘密识别信息存储在第一存储区中,并且通过存储器厂商将加密的秘密识别信息(E-SecretID)存储在第二存储区中,加密的秘密识别信息(E-SecretID)通过对秘密识别信息(SecretID)加密而生成;
[0090]由不同于存储器厂商的厂商将密钥族块(family key block) (FKB)存储在第三存储区中,密钥族块(FKB)生成用于对加密的秘密识别信息(E-SecretID)进行解密的信息。
[0091](1-7.1) 一种待认证的设备的制造方法,其中设备包括:第一存储区,从第一制造单元(manufacturing unit)发货之后,禁止对第一存储区进行数据读取和数据写入;第二存储区,从第一制造单元发货之后,允许从外部对第二存储区进行数据读取;第三存储区,从第一制造单元发货之后,允许从外部对第三存储区进行数据读取和数据写入;
[0092]该方法包括:
[0093]由存储器厂商将第一密钥(NKey)和对于设备来说唯一的秘密识别信息存储在第一存储区中,并且通过存储器厂商将加密的秘密识别信息(E-SecretID)存储在第二存储区中,加密的秘密识别信息(E-SecretID)是通过对秘密识别信息(SecretID)加密而生成的;[0094]由第二制造单元将密钥族块(FKB)存储在第三存储区中,密钥族块(FKB)生成用于对加密的秘密识别信息(E-SecretID)进行解密的信息。
[0095](1-8) —种设备,该设备包括:
[0096]存储器,用于存储主机识别密钥(IDKey)、主机常数(HC)和第一密钥(HKey),第一密钥(HKey)是基于主机常数(HC)而生成的;
[0097]第一生成器,被配置为使用主机识别密钥(IDKey)来解密从外部设备读取的密钥族块,从而生成密钥族(FKey);
[0098]第二生成器,被配置为使用密钥族(FKey)来解密从外部设备读取的加密的秘密识别信息(E-SecretID),从而生成秘密识别信息(SecretID);
[0099]第三生成器,被配置为生成随机数(RN);
[0100]第四生成器,被配置为通过使用第一密钥(HKey)和随机数(RN)来生成会话密钥(Skey);
[0101]第五生成器,被配置为在单向函数运算中使用会话密钥(SKey)处理秘密识别信息(SecretID),从而生成第一认证信息(Oneway-1D);
[0102]验证单元,被配置为确定第一认证信息(Oneway-1D)和第二认证信息(Oneway-1D)是否匹配,第二认证信息(Oneway-1D)是由外部设备使用发送至外部设备的主机常数(HC)而生成的。
[0103](1-9) 一种由认证器对设备进行认证的方法,其中,
[0104]该设备包括:
[0105]第一存储区,用于存储对于设备来说唯一的第一秘密识别信息(SecretID)和第一密钥(NKey),至少在设备被发货之后,禁止从设备外部读取和写入所述第一存储区;
[0106]第二存储区,用于存储加密的秘密识别信息(E-SecretID),要求所述第二存储区从设备外部只读;
[0107]认证器,存储有主机常数(HC)、对认证器的外部隐藏的主机识别密钥(IDKey)、和对认证器的外部隐藏的第二密钥(HKey),
[0108]该方法包括:
[0109]由认证器从设备读取加密的秘密识别信息(E-SecretID);
[0110]由认证器对加密的秘密识别信息(E-SecretID)进行解密来生成第二秘密识别信息(SecretID);
[0111]由认证器生成随机数(RN);
[0112]由设备从认证器读取主机常数(HC)和随机数(RN);
[0113]由设备使用主机常数(HC)和第一密钥(NKey)来生成第三密钥(HKey’ );
[0114]由设备使用第三密钥(HKey’ )和随机数(RN)来生成第一会话密钥(SKey);
[0115]由认证器使用第二密钥(HKey)和随机数(RN)来生成第二会话密钥(SKey’ );
[0116]由设备在单向函数运算中用第一会话密钥(SKey)对第一秘密信息(SecretID)进行处理而生成第一认证信息(Oneway-1D);
[0117]由认证器在单向函数运算中用第二会话密钥(SKey’ )对第二秘密信息(SecretID)进行处理而生成第二认证信息(Oneway-1D’ );
[0118]由认证器从设备读取第一认证信息(Oneway-1D);以及[0119]由认证器确定第一认证信息(Oneway-1D)和第二认证信息(Oneway-1D’ )是否匹配。
[0120](1-10) 一种用于互相认证第一设备和第二设备的方法,其中:
[0121]第一秘密识别信息(SecretID)、第一密钥(NKey)和加密的秘密识别信息(E-SecretID)被存储在第一设备中,禁止从外部读取第一秘密识别信息(SecretID)和第一密钥(NKey),加密的秘密识别信息(E-SecretID)可读,并且
[0122]主机常数(HC)、主机识别密钥(IDKey)和第二密钥(HKey)被存储在第二设备中,
[0123]该方法包括:
[0124]由第二设备对从第一设备读取的加密的秘密识别信息(E-SecretID)进行解密而生成第二秘密识别信息(SecretID);
[0125]由第二设备生成随机数(RN);
[0126]由第一设备使用第一密钥(NKey)和从第一设备读取的主机常数(HC)来生成第三密钥(HKey’ );
[0127]由第一设备使用第三密钥(HKey’ )和随机数(RN)来生成第一会话密钥(SKey);
[0128]由第一设备在单向函数运算中用第一会话密钥(SKey)对第一秘密信息(SecretID)进行处理而生成第一认证信息(Oneway-1D);
[0129]由第二设备使用第二密钥(HKey)和随机数(RN)来生成第二会话密钥(SKey’ );
[0130]由第二设备在单向函数运算中用第二会话密钥(SKey’)对第二秘密信息(SecretID)进行处理而生成第二认证信息(Oneway-1D’ );以及
[0131]由第二设备确定第一认证信息(Oneway-1D)和第二认证信息(Oneway-1D’ )是否匹配。
[0132](2-1) 一种半导体存储设备,该设备包括:
[0133]单元阵列,至少包括从外部可访问的正常区域、和隐藏区域,从外部对该隐藏区域的访问受到限制,并且该隐藏区域存储有用于认证的隐藏的秘密信息;
[0134]认证器,用于认证外部设备;
[0135]数据缓存,包括从外部可访问的第一数据缓存电路、和第二数据缓存电路,从外部对该第二数据缓存电路的访问受到限制;
[0136]其中当从外部接收到包括认证参数的请求认证信号时,
[0137]所述认证参数存储在所述第一数据缓存电路中;
[0138]所述隐藏的秘密信息从所述隐藏区域被读取,并且存储在所述第二数据缓存电路中,以阻止所述隐藏的秘密信息被向外部输出;
[0139]所述认证参数通过使用所述隐藏的秘密信息而被加密以获得认证信息;并且
[0140]所述认证信息存储在所述第一数据缓存电路中。
[0141](2-2)如(2-1)所述的设备,该设备还包括:
[0142]就绪/繁忙终端,被配置为向外部输出所述设备的内部操作状态;
[0143]其中所述就绪/繁忙终端在第二数据缓存电路中存储的隐藏的秘密信息被取消之后,向外部输出就绪信号。
[0144](2-3)如(2-1)或(2-2)所述的设备,
[0145]所述第一数据缓存电路和所述第二数据缓存电路中的至少一者包括锁存电路。[0146](2-4)如(2-2)或(2_3)所述的设备,
[0147]在就绪/繁忙终端向外部输出就绪信号之后,存储在所述第一数据缓存电路中的认证信息被向外部输出。
[0148](2-5)如(2-1)、(2-2)、(2-3)或(2-4)所述的设备,该设备还包括:
[0149]所述设备中提供的注册器电路,
[0150]其中:
[0151]所述数据缓存还包括第三数据缓存电路,针对该第三数据缓存电路的访问受到限制;
[0152]获得的认证信息存储在所述第三数据缓存电路中;
[0153]存储在第三数据缓存电路中的认证信息被复制到所述注册器电路;
[0154]存储在第一到第三数据缓存电路中的信息被取消(cancel);并且
[0155]存储在所述注册器电路中的认证信息被复制到所述第一数据缓存电路。
[0156](2-6)如(2- 1)至(2-5)中任意一者所述的设备,所述数据缓存电连接到认证器。
[0157](3-1) 一种能够经由控制器来与外部设备通信的设备,该设备包括:
[0158]存储区(存储单元),至少包括第一区域(第一单元)、第二区域(第二单元)、以及第三区域(第三单元),所述第一区域(第一单元)存储第一存储密钥信息(NKey)和唯一的秘密识别信息(SecretID),至少在所述设备被发货之后从外部读取来自所述第一区域(第一单元)的数据被禁止,所述第二区域(第二单元)存储索引信息和通过对所述秘密识别信息(SecretID)进行加密而生成的加密的秘密识别信息(E-SecretID),从外部读取来自所述第二区域(第二单元)的数据被允许,所述第三区域(第三单元)存储包括通过对识别密钥信息(FKey)进行加密而生成的信息的密钥管理信息(FKB),从外部读取来自所述第三区域(第三单元)的数据和向所述第三区域(第三单元)写入数据被允许;以及
[0159]认证模块(认证器),通过使用所述存储区(存储单元)中存储的第一密钥信息(NKey)、索引信息以及密钥管理信息(FKB)来认证所述外部设备;
[0160]其中:
[0161]第二密钥信息(HKey)是通过使用从所述存储区(存储单元)的第一区域(第一单元)读取的第一密钥信息(NKey)和从所述外部设备接收到的第一数值(HC:主机常数)进行AES加密计算(AES加密处理)而生成的;
[0162]会话密钥(SKey)是通过使用所述第二密钥信息(HKey)和从所述外部设备接收到的第二数值(RN)进行AES加密计算(AES加密处理)而生成的;
[0163]使用所述会话密钥(SKey)对所述秘密识别信息(SecretID)执行单向转换计算(单向转换处理,单向函数),从而生成单向转换数据(Oneway-1D);
[0164]所述加密的秘密识别信息(E-SecretID)、所述密钥管理信息(FKB)以及所述单向转换数据(Oneway-1D)经由所述控制器被输出到所述外部设备;并且
[0165]从所述存储区(存储单元)的第二区域(第二单元)读取的索引信息被输出到所述外部设备,并且用于从所述外部设备中存储的外部秘密信息集合(HKeyi,j(i =
中选择认证过程所需的外部秘密信息(HKeyi,j)。
[0166]在构建采用认证过程的安全系统时,需要假设这样一种情况:执行认证程序的设备被攻击,隐藏信息被提取。因此,用于撤销(revoke)提取的隐藏信息的方法变得重要起来。
[0167]在上述CPRM中,或高级内容访问系统(AACS)中,使用媒体密钥块(MKB)来撤销设备密钥,设备密钥是隐藏信息,AACS是指定用于保护蓝光碟中所记录内容的版权保护技术。在另一中采用基于公共密钥密码系统的协议的方法中,使用公共密钥证书列表(撤销列表),公共密钥证书列表与泄露的私有密钥信息配对。
[0168]以通过安装在PC中的软件来回放记录在SD卡中的视频内容的系统为例。通过硬件在SD中实施CPRM处理,因此,很难非法提取隐藏信息。与此相比,在很多情况下,比较容易以攻击方法从视频回放软件提取隐藏信息。实际上,可以获得多种用于对受保护的DVD或蓝光碟中记录的内容进行非法解密的软件产品。在这种非法软件中,从真实软件播放器中提取的隐藏信息被利用。
[0169]此外,在某些情况下,需要对卡篡改软件或假SD卡采取撤销措施。例如,使用从真实软件提取的隐藏信息来制造仿制SD卡,由此来欺骗性地使用真实软件播放器。例如,制造假SD卡,使在内容加密中使用的加密密钥能够轻易从假SD卡中被读取。因此,使用真实视频记录器对假SD卡中记录的视频内容进行解密成为可能。
[0170]不仅可以以专用硬件设备(如,消费者设备)的形式来提供认证器,还可以以在PC(个人电脑)等上面执行的程序(软件)的形式来提供,并且在某些情况下,软件用作实质上的起认证器。另一方面,举例来说,被认证方是记录介质等。被认证方是待认证的设备。例如,被认证方包括分离的设备(例如,存储设备),模块(例如,其中嵌入有存储设备的卡),装置(例如,具有内置模块的装置),以及设备、模块和装置的任意组合。即使在构成记录介质的硬件中,重要的程序或信息以隐藏状态存储在硬件的单元阵列中,在硬件的运行过程中,称作“固件”的程序起作用。因此,在运行于PC上的软件作为认证器的情况下,有这样的担心:与被认证方(如,记录介质)相比,抗篡改性(对攻击的抵抗)较低。
[0171]因此,有这样的担心:通过攻击抗篡改性较低的认证器,隐藏在抗篡改性较高的被认证方中的秘密信息也会暴露,产生高抗篡改性设备的伪装物。为处理这种情况,需要一种有效防止非法使用秘密信息的方法。
[0172]此外,近些年来,在电路规模受限的环境中(例如,在难以通过硬件实现公共密钥密码系统程序或MKB程序,并需要相对较大电路规模的环境中),这种需求变得更加强烈。因此,需要一种有效防止非法使用秘密信息,同时控制电路规模使其最小化的方法。
[0173]下面参考附图对多个实施方式进行描述。在下面的描述中,以存储系统作为认证器、被认证方和认证方法的例子,但是实施方式不限于该例子。在下面的描述中,在附图中以同样的附图标记指代共同的部件。
[0174]【第一实施方式】
[0175]接下来描述根据第一实施方式的认证器、被认证方和认证方法。
[0176]〈1.配置示例(存储系统)>
[0177]接下使用图1来描述根据第一实施方式的存储系统的配置示例。
[0178]如图1所示,根据第一实施方式的存储系统包括作为被认证方的NAND闪存10、作为认证器的主机设备20、以及在它们之间起调停作用(mediate)的控制器19。主机设备20通过控制器19访问NAND闪存10。
[0179] 在此简要描述半导体产品(如,NAND闪存10)的制造过程。半导体产品的制造过程主要可以划分为预处理和后处理,预处理是在基质晶圆上形成电路,后处理是将晶圆切割为单独的晶圆块,然后进行走线,并将晶圆块封装在树脂中。
[0180]控制器19可以按照多种方式进行配置,例如,可以被配置为在预处理中被包括在NAND闪存10中,被配置为在后处理中而不是预处理中被包括在相同的封装中,以与NAND闪存10不同的芯片来提供控制器。下面参考图1进行的描述是以与NAND闪存10不同的芯片提供控制器19来作为例子。
[0181 ] 除非明确提及,在多种情况下,控制器19在主机设备20和NAND闪存10之间调停,以在它们之间交换数据和指令。即使在这样的情况下,控制器19不改变上面的数据和指令的固有内容,因此,下面可以以简略描述的方式来提供细节。稍后提供NAND闪存10和控制器19的配置示例的细节。
[0182]如果主机设备20被配置为作为专用硬件,如消费者设备,则不仅可以假定通过组合硬件和运行专用硬件的固件来对设备进行配置,还可以假定设备的所有功能通过在PC中运行的软件来实现。不管主机设备20采用何种配置,当前实施方式基本上都可以应用。
[0183]下面描述图1中所示的每个组件和数据处理。当前实施方式展示了一种方法,该方法用于读取秘密识别信息SecretID,并对从真实的被认证方读取的数据进行验证,秘密识别信息SecretID以对第三方隐藏的状态记录在被认证方中,并且当该方法被应用至存储系统时的配置示例,存储系统使用NAND闪存10。
[0184]1-1NAND 闪存
[0185]在当前实施方式中,NAND闪存10是被认证方。
[0186]如图1所示,根据本实施方式的NAND闪存10包括单元阵列(Cellarray) 11,位于单元阵列11的外围区域中的数据缓存(DataCache) 12,数据生成器(Generate) 13,14,以及单向转换器(Oneway) 15。数据生成器(Generate) 13,14以及单向转换器(Oneway) 15构成认证电路17。
[0187]单元阵列11包括允许从外部读取和写入的读/写区域(Read/Writearea) 11-1,禁止从外部读取和写入的隐藏区域(Hiddenarea) 11-2,以及禁止从外部写入的ROM区域(ROMarea)11-3。
[0188]读/写区域(普通区域)11-1是能够从NAND闪存10的外部写入和读取数据的区域。在读/写区域11-1中,存储有密钥管理信息FKBv(密钥族块),FKBv是加密的Fkey绑定,用于隐藏Fkeyv。与NAND闪存10中记录的其它数据形成对比,FKBv可以在制造NAND闪存10时被记录,或在将控制器连接至NAND闪存10以制造一般用户所使用的存储介质时被记录。或者,FKBv可以在发货后根据用户的要求从服务器上下载。也就是说,第三存储区11-1被用于存储密钥族块FKB,FKB包括通过使用主机识别密钥IDKey对密钥族FKey进行加密而生成的数据,要求第三存储区11-1能够从认证器的外部被读取和写入。下面对细节进行描述。
[0189]密钥管理信息FKBv被用于基于主机设备20存储的秘密信息IDKey和秘密信息IDKeyk的索引信息k而对隐藏信息Fkeyv进行解密,或基于主机设备20存储的秘密信息IDKeyk和主机设备20的识别信息而对隐藏信息Fkeyv进行解密。
[0190]此外,密钥管理信息FKBv不仅可以针对每个NAND闪存10唯一地准备,而且能够根据生产过程通用地附加(关联)到多个NAND闪存10,例如NAND闪存10的批量生产单元或晶圆单元。密钥管理信息FKBv的索引信息ν可以是密钥管理信息FKBv的识别信息或版本号信息。
[0191]隐藏区域11-2禁止从NAND闪存10的外部被读取和写入。在隐藏区域11_2中,记录认证过程中NAND闪存10所用的秘密信息NKeyi和NAND闪存10的秘密识别信息SecretID0换言之,第一存储区11_2用于存储第一密钥NKey对于认证器来说唯一的秘密识别信息SecretID,至少在发货之后,禁止从认证器外部读取和写入所述第一存储区11_2。
[0192]ROM区域11-3禁止从NAND闪存10外部被写入,但是允许从其读取数据。在ROM区域11-3中,记录了对密钥管理信息FKBv所隐藏的隐藏信息FKeyv进行指示的索引信息ν (Fkey的索引)、被信息FKBv隐藏的秘密识别信息(E-SecretID)、以及对秘密信息NKeyi进行指示的索引信息i (NKey的索引)。换言之,第二存储区11-3用于存储通过使用密钥族Fkey对识别信息SecretID进行加密而生成的加密的秘密识别信息Ε-SecretID,要求从认证器外部仅能对第二存储区进行读取。
[0193]在当前实施方式中,数据通常在附加了错误校正码之后被记录,由此,即使在记录索引信息i或索引信息ν时数据中出现错误,也可以读取出正确的识别信息。但是,为简化描述,在此不再详述纠错编解码过程。
[0194]顺便说一下,举例来说,ROM区域11-3可以是允许只被写入一次数据的OTP(—次性编程)区域、或者是普通区域,允许在NAND闪存10的制造过程中对普通区域进行读取和写入,在发货之后,通过重写管理标记,普通区域被转换为只读区域。或者,可以使用这样一种方法,在该方法中准备特定写入命令,特定写入命令用于访问ROM区域,并与用于访问普通区域的命令不同,并且该特定写入命令不提供给NAND闪存10的接收方。此外,ROM区域可以处理为NAND闪存10中的普通区域,但是控制器19将提供给主机设备20的功能限制为只读。
[0195]因为,如同下面所描述的那样,记录在ROM区域11-3中的信息与隐藏区域11_2中记录的信息相关,如果ROM区域11-3中记录的信息被篡改,则NAND闪存10的认证功能不能有效运行。因此,没必要担心篡改所带来的安全问题,由此,ROM区域11-3可以替换为普通区域,在普通区域中可以读取和写入数据。在这种情况下,图1中的ROM区域11-3可以替换为读/写区域(普通区域)11-1。在这一点上,ROM区域11-3中记录的数据的一部分可以记录在读/写区域(普通区域)11-1中。例如,允许进行这样的配置:索引信息v(FKey的索引)记录在读/写区域(普通区域)中,加密的秘密识别信息(Ε-SecretID)以及索引信息ν (FKey的索引)记录在ROM区域11_3中。ROM区域11_3的以上配置示例还可以应用至下面其它实施方式或变型中的ROM区域11-3。
[0196]E-SecretID是通过使用Fkeyv对唯一地附加给每个NAND闪存10的SecretID进行加密而获得的数据。或者,相同的加密的秘密识别信息可以记录在多个NAND闪存中。例如,在预记录内容分发过程中,在销售NAND闪存之前将相同的内容记录在NAND闪存中,并且将相同的E-SecretID记录在存储有内容的NAND闪存中。
[0197]数据缓存12暂时存储从单元阵列11读取的数据。
[0198]数据生成器13、14为用于通过预设操作从多个输入数据块生成输出数据的电路。
[0199]数据生成器13使用上述秘密信息NKeyi对接收自主机设备20的常数HCj进行转换,从而生成秘密信息HKeyi,j。数据生成器14使用秘密信息HKeyi,j对从主机设备20接收到的随机数RNh进行转换,从而生成会话密钥Skeyi,j。数据生成器13、14能够实现为硬件(电路)、软件、或硬件和软件的组合。
[0200]如果数据生成器13、14被实施为电路,如与下面描述的单向转换器15相同的电路,则可以使用对单向转换器进行变换(divert)的电路,或高级加密标准(AES)加密器,以使整体电路尺寸更小。同样地,可以对展示为不同结构部件的两个数据生成器重复使用相同的电路,以更加容易理解数据处理流程。在该示例中,可以采用这样的配置:HKeyi,j =AES_E(NKeyi, HCj),SKeyi, j = AES_E(HKeyi, j, RNh),或类似配置。换言之,第一数据生成器13被配置为在AES运算中使用第一密钥NKey加密主机常数HC,从而生成第二密钥Hkey。第二数据生成器14被配置为在AES运算中使用第二密钥HKey加密随机数RN,从而而生成会话密钥Skey。
[0201]单向转换器15分别对输入数据和密钥数据输入进行单向转换,以输出单向转换的输入数据。单向转换器15能够实现为硬件(电路),或硬件和软件的组合。
[0202]单向转换器15通过单向函数使用数据生成器14生成的SKeyi,j对从隐藏区域11-2读取的SecretID进行转换,以生成单向转换识别信息Oneway-1D (=Oneway (SKeyi, j, SecretID))。如果被实现为电路,则单向转换器15还能够如上面所描述的那样用于变换数据生成器14等,以使电路的整体尺寸更小。在该示例中,可以采用这样的配置:Oneway-1D = AES_E (SKeyi, j, SecretID) (+) SecretID0 换言之,单向函数处理器15被配置为在单向函数运算中使用会话密钥SKey处理秘密识别信息SecretID,从而生成认证信息(Oneway-1D)。
[0203]尽管未示出,用于通过控制器19而将数据输入给主机设备20的输出单元实际上被设置为结构部件。
[0204]1-2主机设备
[0205]在本实施方式中,主机设备20是认证器。
[0206]如图1所示,根据本实施方式的主机设备20包括解密器(Decrypt) 21,FKB处理器(ProcessFKB) 22,存储器(Memory) 23,随机数生成器(RNG) 24,选择器(Select2) 25,数据生成器(Generate) 26,单向转换器(Oneway) 27,以及数据认证单元(Verify) 28。此外,如果需要的话,还可以包括例如错误校正处理单元等。
[0207]解密器21分别使用密钥数据输入对输入数据进行解密,以输出解密的输入数据。在本实施方式中,解密器21通过控制器19从NAND闪存10读取E-SecretID。随后,解密器21使用从如下描述的FKB处理器(数据选择器22-1)输入的隐藏信息Fkey对E-SecretID进行解密,以输出SecretID。
[0208]通过使用秘密信息IDKeyk和隐藏于处理器23中的IDKey的索引信息k,FKB处理器22对从NAND闪存10读取的密钥管理信息FKBv进行解密,以将生成的秘密信息Fkey输出至解密器21。在本实施方式中,FKB处理器22包括数据选择器(Selectl) 22-1和解密器(Decrypt)22-2。
[0209]第一级中的数据选择器22-1从加密的Fkey绑定(密钥管理信息FKBv)中选择数据,并将选择的数据输出至解密器22-2,所选择的数据能够使用存储器23中记录的索引信息k而被存储器23中所隐藏的IDKey解密,加密的Fkey绑定(密钥管理信息FKBv)是NAND闪存10读取的。[0210]解密器22-2使用存储器23中的IDKey对数据选择器22_1所选择的数据进行解密,将生成的隐藏信息FKey输出至解密器21。
[0211]存储器23 记录 k、IDKeyk、HKeyi, j (i = 1,...,m ; j 是 HKeyi, j 的固定值)的集合、以及HCj,并至少使IDKeyk、和HKeyi, j (i = I,..., m)的集合对主机设备20外部隐藏。HCj是在要求进行认证(Request authentication)时,在发送到NAND闪存10之前存储在主机设备20中的常数。下面对细节进行描述。
[0212]随机数生成器24生成并输出用于认证过程的随机数RNh。
[0213]通过使用经由数据缓存12从NAND闪存10的ROM区域11_3中读取的索引信息i,第二级中的数据选择器25从主机设备20隐藏的HKeyi,j集合中选择认证过程所需的HKeyi, j。
[0214]数据生成器26是用于通过对多个输入数据块进行预定运算而生成输出数据的运算单元。在本实施方式中,通过使用主机设备20隐藏的HKeyi, j对主机设备20生成的RNh进行转换,数据生成器26生成会话密钥SKeyi,j。举例来说,可将上述AES加密器用作数据生成器26。
[0215]单向转换器27通过单向函数使用从数据生成器26输出的SKeyi,j对输出自解密器21的SecretID进行转换,以生成单向转换识别信息Oneway-1D。
[0216]数据验证单元28比较从NAND闪存10接收到的Oneway-1D和从主机设备20中的单向转换器27获得的Oneway-1D,以确定两个Oneway-1D是否匹配。如果两个单向转换识别信息Oneway-1D的值匹配(OK),则数据验证单元28判断解密器21获得的SecretID是真实ID,并将获得的SecretID提供给后续过程。另一方面,如果两个值不匹配(NG),则数据验证单元28判断SecretID是非法ID,并输出消息。
[0217]此外,当主机设备20保存的秘密信息(如,IDKeyk和HKeyi,j)被泄露并且非法制造商制造具有泄露的秘密信息的主机设备时,作为撤销非法主机设备的手段,可以采取针对非法主机设备的撤销措施,例如,从密钥管理信息(FKBv)移除信息,利用该密钥管理信息可以从非法主机设备保存的IDKey中获得FKey。撤销措施在下面参考图3进行描述。当采取撤销措施时,在IDKeyk,k,HKeyi, j和HCj之间提供关联是有用的。这是因为,如果存在这种关联,则通过非法主机设备通知的用于认证的观察HCj可以识别非法主机设备保存的秘密信息IDKeyk和HKeyi,j。进行关联的方法可以采用--与IDKeyk共享HCj的全部或一部分信息,基于IDKey的加密处理的结果来配置HCj的全部或一部分信息,基于HCj的加密结果来配置IDKeyk的全部或一部分信息。此外,可取的是,在FKey和IDKeyk之外还利用HKeyi,j,以生成密钥管理信息FKBv。在下面描述FKB的配置示例的段落中会对此进行描述。
[0218]举例来说,如果主机设备20是诸如消费者设备这样的专用硬件设备,则秘密信息IDKeyk和秘密信息HKeyi,j在被特定于制造商的方法加密之后被记录在内部专用存储器中,如果主机设备20是在PC等之中执行的程序,则秘密信息IDKeyk和秘密信息HKeyi,j被保存起来,通过防篡改软件(TRS)技术来防止非法分析,如果包含安全模块,则秘密信息IDKeyk和秘密信息HKeyi,j在通过使用安全模块的功能将秘密信息隐藏起来之后被记录。
[0219]通过控制NAND闪存10,控制器(Controller) 19和主机设备20进行数据传输。例如,控制器19解译从主机设备20接收的指令,并在把指定发送给NAND闪存10之前将指令转换为符合NAND闪存10的接口规范的指令。控制器19能够采用各种接口标准,例如SD存储标准,SDIO标准,如果需要的话,还可以采用eMMC标准。
[0220]控制器19确保普通区域11-1的一部分用于存储控制器19的运行所需的控制数据。控制器19可以具有将从主机设备20接收的逻辑地址转换为NAND闪存的物理地址的功能。控制器19还可以具有进行所谓的耗损均衡以使单元阵列11的耗尽变得一致的功能。但是,至少隐藏区域11-2是排除在耗损均衡之外的。
[0221]存储系统的配置示例不限于以上描述的示例。例如,如果需要的话,可以包括纠错处理单元(未示出)和其它结构部件。此外,NAND闪存10可以保存多个秘密信息NKeyi。也就是说,如果将NKeyi和索引信息i的组合定义为一个槽(slot)的话,则NAND闪存10中记录多个槽。每个槽被赋予一个槽编号,主机设备20读取每个槽编号的索引信息i,并从所述槽中选取一个以实施认证。在这种情况下,主机设备20向NAND闪存10通知与所选择的槽编号相对应的信息,NAND闪存10使用与被通知的槽编号相对应的信息执行认证过程。此外,通过将NAND闪存10保存的所有信息定义为一个槽,可以保存多个信息槽。也就是说,NKey1、1、FKBv、SecretID和E-SecretID被定义为一个槽,在NAND闪存10中记录多个槽。每个槽被赋予一个槽编号,主机设备20读取每个槽编号的索引信息i,并从槽中选取一个以实施认证。在这种情况下,主机设备20向NAND闪存10通知与所选择的槽编号相对应的信息,NAND闪存10使用与被通知的槽编号相对应的信息来执行认证过程。
[0222]以上示出了使NAND闪存10具有多个槽的方法,但是方法不限于上面描述的方法,能够采用任意使多个槽共享信息的一部分的配置。例如,SeCretID、E-SeCretID、FKBV和索引ν由多个槽共享,而其它的信息由各个槽独立保存。
[0223]使NAND闪存10具有多个槽和槽编号,并且用于认证的槽由主机设备20通知的方法应用至以下描述的实施方式。
[0224]〈2认证流程>
[0225]接下来,参考图2描述根据第一实施方式的存储系统的认证流程。
[0226](步骤Sll)
[0227]当开始(Start)认证时,主机设备20从NAND闪存10读取加密的Fkey绑定(FKB:密钥族块),Fkey块是密钥管理信息,并读取加密的秘密识别信息SecretID(E-SecretID)。
[0228](步骤S12)
[0229]接下来,借助数据选择器(Selectl) 22-1执行数据选择程序,主机设备20从读取的密钥管理信息中读取能够被主机设备20加密的隐藏信息Fkey,并且,借助解密器22_2使用隐藏的秘密信息IDKeyk对加密的隐藏信息Fkey进行解密,主机设备20获得隐藏信息FKey。此外,通过使用获得的Fkey对读取自NAND闪存10的E-SecretID进行解密,主机设备20获得秘密识别信息SecretID。
[0230](步骤S13)
[0231]接下来,主机设备20请求从NAND闪存10读取索引信息i。
[0232](步骤S14)
[0233]接下来,响应于来自主机设备20的请求,NAND闪存10从单元阵列11加载索引信息i,并将索引信息i输出至主机设备20。
[0234](步骤S15)[0235]接下来,主机设备20生成认证请求所需的随机数RNh。通过使用认证过程所用的RNh,在下面的过程中,每次都不同的共用密钥能够与NAND闪存10 —起使用。
[0236](步骤S16)
[0237]接下来,主机设备20将预先保存的常数HCj和RNh随同认证请求(Requestauthentication) 一起发送至 NAND 闪存 10。
[0238](步骤S17)
[0239]接下来,NAND闪存10从隐藏区域11_2加载保存在数据缓存12中的秘密信息NKeyi (i = I,..., m)和秘密信息 SecretID。
[0240](步骤SI8)
[0241]接下来,借助数据生成器13使用隐藏的秘密信息NKeyi和从主机设备20接收的常数HCj进行的数据生成处理,NAND闪存10生成秘密信息HKeyi,j。
[0242](步骤SI9)
[0243]接下来,借助数据生成器14使用接收到的RNh进行的数据生成处理,NAND闪存10生成会话密钥 SKeyi, j ( = Generate (HKeyi, j, RNh))。
[0244](步骤S20)
[0245]接下来,借助单向转换器15使用SKeyi, j对SecretID进行的单向转换处理,NAND闪存10生成单向转换识别信息Oneway-1D( = Oneway (SKeyi, j, SecretID))。生成的Oneway-1D被发送至主机设备20。也就是说,数据输出接口被配置为向认证器的外部输出加密的秘密识别信息E-SecretID,密钥族块FKB和认证信息Oneway-1D。
[0246](步骤S21)
[0247]在进行步骤S18的同时,主机设备20使用接收到的索引i从预先隐藏的HKeyi, j (i = I,..., m)的集合中选择同NAND闪存10进行认证过程所需的HKeyi, j。
[0248](步骤S22)
[0249]接下来,借助数据生成器26使用选择的HKeyi,j和接收到的RNh进行的数据生成处理,主机设备 20 生成 SKeyi, j ( = Generate (HKeyi, j, RNh))。
[0250](步骤S23)
[0251]接下来,借助单向转换器27使用生成的SKeyi, j对SecretID进行的单向转换处理,主机设备20生成Oneway-1D。
[0252](步骤SM)
[0253]接下来,主机设备20确定从NAND闪存10接收的Oneway-1D和主机设备20生成的Oneway-1D是否匹配。如果两个Oneway-1D的值匹配(OK),则主机设备20判断解密器21获得的SecretID是真实ID,并将SecretID提供给后续过程。另一方面,如果两个值不匹配(NG),则主机设备20判断SecretID是非法ID,并输出消息。
[0254]通过上述操作,完成(End)根据第一实施方式的认证流程。
[0255]如果NAND闪存10如同存储系统的配置示例中所描述的那样具有多个槽,则主机设备20需要向NAND闪存10通知进行认证所需的槽编号。在这种情况下,槽编号可以在步骤S16中被通知,或者在步骤S16之前的步骤中被通知。
[0256]〈3FKB (密钥族块)>
[0257]下面参考图3对根据第一实施方式的密钥管理信息FKB(密钥族块)进行更详细的描述。
[0258]为生成符合记录有秘密识别信息SecretID的NAND闪存10的密钥管理信息FKB,依次使用 IDKeyi (i = I,..., n) (IDKeyi 的集合)将 FKeyv 依次加密(Encrypt),IDKeyi (i = 1,...,η)为预先准备好的密钥信息。也就是说,密钥管理信息FKB是加密的FKeyv (E-FKeyv, i)(等于Encrypt (IDKeyi, FKeyv))的集合,加密的Fkeyv的集合被称作加密的Fkey绑定。
[0259]顺便说一下,密钥管理信息FKB的配置不限于本实施方式中的配置。例如,在特定IDKeyi被泄露的情况下,能够根据泄露的IDKeyi被解密的加密的FKeyv(E-FKeyv)从FKB中被删除。因此,当主机设备20使用新配置的FKB访问NAND闪存时,主机设备20不能获得(解密)正确的FKeyv和SecredID。通过这种方式,能够实现撤销保存有秘密信息IDKeyi的主机设备20的功能。
[0260]当IDKeyk、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)。这具有在密钥从多个主机设备20泄漏时防止不同设备的密钥IDKeyi,HKeyi, j被组合在一起的效果。换言之,通过使对Fkey进行解密变得不可能(除非IDKeyi和HKeyi, j被正确组合),观察Hcj揭示出结合在一起HKeyi,j和IDKeyi能够被识别,由此,泄露的IDKeyi能够被撤销。
[0261]此外,用于生成密钥管理信息FKB的方法不限于本实施方式中的方法。例如,如果使用CPRM中使用的传统MKB (媒体密钥块)技术或其它技术来生成密钥管理信息FKB,同样可以实现撤销主机设备20的功能。
[0262]在多个设备中的每一个具有互不相同的秘密信息的情况下,MKB技术有效地(在不被撤销的设备间)共享公用密钥信息(媒体密钥),同时实现设备撤销,MKB技术也称作广播加密。
[0263]如果应用MKB技术,在图4中示出存储系统的配置示例。所示存储系统和图1所示存储系统的不同之处在于FKB处理器(Pix)CesSFKB)22以上位概念示出。同样,在这种情况下,通过将基于主机设备20的节点编号而解密的FKB的数据以及分配给节点编号的主机密钥组同HKeyi,j和HCj相关联,可以识别并撤销泄露的密钥,节点编号对应于K或IDKeyi。
[0264]<4写入秘密信息和FKB>
[0265]接下来,描述如何将秘密信息和密钥管理信息FKB写入到NAND闪存10中。
[0266]4-1.当在NAND闪存的制造过程中写入秘密信息和密钥管理信息FKB时
[0267]首先,参考图5和6描述如何在NAND闪存10的制造过程中写入秘密信息或密钥管理信息FKB。根据图6所示的流程进行描述。
[0268]许可管理器40生成以下数据:秘密管理信息FKeyV(V = 1,...,η),隐藏信息FKeyv (V = 1,…,η),索引信息(V = 1,…,η),秘密信息NKeyi,及索引信息i。如同上面所描述的那样,通过对FKeyv进行加密来生成FKBv。此外,V可以是多个值。举例来说,如果许可管理器40生成三个值1、2和3来作为V,则许可管理器40根据生成的V来生成(FKBI, FKeyl)、(FKB2, FKey2)和(FKB3, FKey3)。
[0269]在生成的数据中,许可管理器40 将 FKeyv (V = I,..., n), v (v = I,..., η), NKeyi和i交付给存储器厂商30。为交付数据,举例来说,许可管理器40采用安全手段,例如,在使用预先获得的存储器厂商30的公匙对数据进行加密之后,将数据交付给存储器销售商30。
[0270]除了 NAND闪存10之外,在存储器厂商30中还有选择器32,33,
[0271]生成器34和加密单元35。存储器厂商30还保存数据31,例如许可管理器40交付的 FKBv (V = 1,…,η)。
[0272](步骤S31)
[0273]通过以上配置,存储器厂商30首先通过生成器(SecretID Generator) 34生成SecretID0
[0274](步骤S32)
[0275]接下来,接收数据31的存储器厂商30通过选择器32从V中选择一个值。此外,选择器32选择与所选择的V相对应的FKeyv。存储器厂商30使用选择的FKeyv对生成的SecretID进行加密,以生成E-SecretlD。
[0276](步骤S33) [0277]接下来,存储器厂商30将V的值写入NAND闪存10的ROM区域11_3,作为索引信息V (FKey的索引)。
[0278]存储器厂商30还将索引信息i (NKey的索引)的值写入NAND闪存10的ROM区域11-3,并将NKeyi的值写入隐藏区域11-2。
[0279]此外,存储器厂商30将SecretID的值写入NAND闪存10的隐藏区域11_2,并将E-SecretID的值写入ROM区域11-3。
[0280]通过以上操作,可以在NAND闪存10的制造过程中写入预定的秘密信息和密钥管理信息FKB。至于上述每个值的写入顺序,E-SecretID在加密处理后获得,能够通过加密单元35在加密处理后写入。除此之外,对写入操作的顺序没有限制,所述值能够以与上面示例中的顺序不同的顺序被写入。
[0281]接下来,存储器厂商30将完成写入处理的NAND闪存10交付给卡厂商。
[0282]因此,在本实施方式中,能够假定NAND闪存10的状态是已经写入了索引信息V (FKey的索引)等。
[0283]4-2.当FKB由卡厂商写入时
[0284]接下来,参考图7和8对由卡厂商50写入FKB的情况进行描述。根据图8所示的流程进行描述。
[0285]卡厂商50从存储器厂商30处接收已经写入了预定信息V等的NAND闪存10。
[0286]接着,通过连接对NAND闪存10进行控制的控制器19,卡厂商50制造一般用户所用的存储媒介(此处为卡)55,例如,SD卡。
[0287]除了存储媒介55和从许可管理器40接收的数据(FKBv) 51,卡厂商50中还有选择器52。
[0288]卡厂商50写入密钥管理信息FKBv的过程如下。
[0289](步骤S35)
[0290]首先,卡厂商50从许可管理器40接收FKBv作为数据51。为交付数据51,使用上述安全手段。[0291]接着,卡厂商50 (通过控制器19)将记录在NAND闪存10的ROM区域11_3中的索引信息V的值读取到数据缓存12等之中。
[0292](步骤S36)
[0293]接下来,卡厂商50通过选择器52选择与读取的索引信息V的值相对应的FKBv。
[0294](步骤S37)
[0295]接下来,卡厂商50通过控制器19将选择的FKBv写入到NAND闪存10的读/写区域11-1中。
[0296]<有益效果>
[0297]根据上述第一实施方式的认证器、被认证方和认证方法,至少能够获得以下有益效果⑴至⑶。
[0298](I)即使秘密信息从主机设备20泄露,也可以防止利用泄露的秘密信息对NAND闪存10的秘密信息进行非法使用。
[0299]如上所述,作为认证器,主机设备20不仅可以以专用硬件设备(如消费者设备)的形式来提供,还可以以能在PC等之中执行的程序的形式来提供,在某些情况下,软件作为实质上的主机设备。另一方面,作为被认证方的NAND闪存10是记录介质。即使在称作“固件”的程序起调停作用的情况下,重要的程序或信息以隐藏状态存储在单元阵列11中的硬件中。
[0300]因此,有这样的担心:与记录介质相比,运行于PC中的软件的抗篡改性(对攻击的抵抗)变得较低。因此,有这样的担心:通过攻击抗干扰性较低的主机设备(认证器)20,隐藏在抗干扰性较高的NAND闪存(被认证方)10中的秘密信息也会暴露,产生高抗干扰性设备的伪装物。
[0301]因此,在如上所述的根据第一实施方式的配置及其认证方法中,抗干扰性较高的NAND闪存10将第一密钥信息(NKeyi)隐藏在单元阵列11中,从第一密钥信息(NKeyi)能够生产第二密钥信息(HKeyi,j)。另一方面,主机设备20仅仅将第二密钥信息(HKeyi,j)隐藏在存储器23中,从第二密钥信息(Hkeyi,j)不能生成第一密钥信息(NKeyi)。
[0302]因此,通过使用从主机设备20接收的常数HCj和NAND闪存10隐藏的第一密钥信息(NKeyi),NAND闪存10生成主机设备20所隐藏的第二密钥信息(Hkeyi,j)。通过使用第二密钥信息(Hkeyi,j)和随机数RNh,NAND闪存10还生成会话密钥SKeyi,j。
[0303]通过使用借助索引信息i而选择的第二密钥信息(Hkeyi,j)和随机数RNh,主机设备20生成会话密钥SKeyi,j。由此,NAND闪存10和主机设备20共享相同的会话密钥SKeyi, j。
[0304]因此,在本实施方式中,NAND闪存(被认证方)10所隐藏的信息的秘密等级和主机设备20(认证器)20所隐藏的信息的秘密等级能够被设置为不对称。在本实施方式中,举例来说,抗干扰性较高的NAND闪存10所隐藏的信息的秘密等级能够设置为高于比抗干扰性较低的主机设备(认证器)20所隐藏的信息的秘密等级。
[0305]因此,即使主机设备20隐藏的信息泄露了,也不能使用泄露的信息伪装成NAN闪存10,因为抗干扰性较高的NAND闪存10所隐藏的信息的秘密等级更高。因此,可以防止利用泄露的信息对NAND闪存10的秘密信息进行非法使用。由此,举例来说,可以可靠地确定读取自主机设备20的ID信息是从预期的被认证方10读取的信息,并且可以撤销远程方对信息的非法使用。
[0306]⑵实施优势
[0307]在如同上述本实施方式这样的配置中,例如,在难以通过硬件实现公共密钥密码系统程序或MKB程序、并需要相对较大电路规模的环境中,电路规模也受到限制。换言之,公共密钥密码系统程序或MKB程序需要较大规模的电路。另一方面,电路面积受限,并且硬件实施困难。
[0308]但是,根据本实施方式,尽管密钥信息是不对称的,不需要使用需要较大规模电路的公共密钥密码系统程序。此外,通过将主机设备20 (认证器)20所隐藏的信息的秘密等级和NAND闪存(被认证方)10所隐藏的信息的秘密等级设置为不对称,实现了认证手段,归功于该认证手段,不能仅使用从一个设备泄露的信息来伪装成另一个设备,认证器20和被认证方10共享密钥SKeyi,j。
[0309]因此,即使在存在上述限制的苛刻环境下,也可以说该实施方式是有优势的。此夕卜,如上所述,通过将存储系统中的数据生成器和加密器共享为相同程序,可以进一步减小电路规模。
[0310](3)可以简化制造过程,并且降低制造成本。
[0311]根据本实施方式的NAND闪存10在读/写区域11_1中包括密钥管理信息(FKBv),根据每个NAND闪存10的用途,密钥管理信息(FKBv)被唯一地附加至每个NAND闪存10,或者在批量生产单元等之中通用地附加至多个NAND闪存10。此外,根据本实施方式的NAND闪存10在ROM区域11-3中包括加密的秘密识别信息(E-SecretID),加密的秘密识别信息(E-SecretID)唯一地附加至每个NAND闪存10。
[0312]如果密钥管理信息(FKBv)在批量生产单元中设置为公用,则需要记录在每个NAND闪存10中的唯一信息的数据大小可以减小为小数据,如加密的秘密识别信息(E-SecretID)。也就是说,通过把将要写入的信息划分为通用地附加的密钥管理信息(FKBv)和唯一地附加的加密的秘密识别信息(E-SecretID),以及在两个阶段中对信息进行加密,可以减小将要写入NAND闪存10的唯一的加密的秘密识别信息(E-SecretID)的数据大小。
[0313]例如,如图5和6所示,存储器厂商30在NAND闪存的制造过程中将唯一信息(E-SecretID)写入到从许可管理器40接收的NAND闪存10中。
[0314]卡厂商50能够将通用地附加至NAND闪存10的加密的密钥管理信息(FKBv)通用地写入到NAND闪存10中。例如,如图7和8所示,卡厂商50将通用密钥管理信息FKBv写入到从许可管理器40接收的每个NAND闪存10中。因此,能够减小唯一数据的大小,唯一数据必须由存储器厂商30写入到每个NAND闪存10中。
[0315]如果在NAND闪存10的制造过程中写入对于NAND闪存10来说唯一的且数据大小较大的信息,则制造过程将更加复杂,制造时间将更长,导致制造成本增加。但是,根据本实施方式的配置和方法,通过把将要写入的信息划分为通用地附加的密钥管理信息FKBv和唯一地附加的加密的秘密识别信息(E-SecretID),以及在两个阶段中对信息进行加密,就不再需要这种复杂的制造过程,并且由此能够简化制造过程,降低制造成本。此外,能够缩短制造时间,带来减小能量消耗的好处。
[0316]同样,就主机设备20而言,通过对对于NAND闪存来说唯一的SecretID进行加密以生成E-SecretID,使用隐藏信息FKey、以及用IDKey加密FKey从而生成密钥管理信息FKB,可以获得与NAND闪存10的益处相类似的益处。
[0317]【第一修改(当FKB被稍后下载和写入)】
[0318]接下来描述根据第一修改的认证器,被认证方和认证方法。在描述过程中,省略同第一实施方式重复的那些点。
[0319]〈写入FKB>
[0320]下面描述如何写入加密的Fkey绑定(FKB)。
[0321]如果加密的Fkey绑定(FKB)在NAND闪存10的制造过程中被写入,则不再特别需要第一修改中的过程。但是,当NAND闪存10和控制器19被连接,并且普通用户以诸如SD卡这样的形式获得NAND闪存10时,需要与FKB的写入过程相关的过程,当卡被使用时再稍后在市场上写入FKB。
[0322]图9示出了这样一种状态:密钥管理信息FKB如同上面描述的那样被记录在无记录的存储介质(卡)55中。
[0323]如图9所示,NAND闪存10在隐藏区域11_2中记录有NKeyi和SecretID。识别NKeyi所需的索引 彳目息i和识别FKB所需的索引彳目息V,以及被索引彳目息V所指定的FKeyv所加密的SecretID(E-SecretID)都记录在ROM区域11-3中。
[0324]第一修改和第一实施方式的不同之处在于:作为加密的Fkey绑定的FKB未记录在读/写区域11-1中。
[0325]接下来,参考图10描述这样一种情况:FKB从服务器下载,并记录在未记录的存储介质55中。
[0326]在这种情况下,如图9所示,如果需要的话,在NAND闪存10中提供数据缓存12。
[0327]根据本实施方式,服务器70包括FKB数据库(FKBi’ s(i = Ι,.,.,χ)的集合)71和选择器72,选择器72基于索引信息V来选择FKBv。
[0328]电连接服务器70和存储系统(NAND闪存10,控制器19,及主机设备20),以通过互联网60进行通信。
[0329]主机设备20包括函数,该函数确定是否需要新写入FKB和在需要的情况下从服务器请求FKB。
[0330]<FKB写入流程>
[0331]接下来,参考图11描述从服务器70下载加密的FKeyID绑定(FKB)并将FKB写入NAND闪存10的流程。
[0332](步骤S41)
[0333]首先,如图11所示,当主机设备20确定需要下载FKB时,开始FKB写入,并且主机设备20向服务器70发出FKB请求。
[0334](步骤S42)
[0335]接下来,服务器70从NAND闪存10请求识别Fkeyv所需的索引信息V。
[0336](步骤S43)
[0337]接下来,NAND闪存10从ROM区域11-3读取V并将V发送给服务器。
[0338](步骤S44)
[0339]接下来,服务器70从FKB数据库71选择与接收到的V相对应的FKBv。[0340](步骤S45)
[0341]接下来,服务器70将选择的FKBv发送给NAND闪存10。
[0342](步骤S46)
[0343]接下来,NAND闪存10将接收到的FKBv写入读/写区域11_1,以作记录。
[0344]通过以上操作,完成了第一修改的加密的Fkey绑定(FKB)的下载流程。(结束)
[0345]其它配置和操作和第一实施方式中的配置和操作基本上相同。
[0346]<有益效果>
[0347]根据上述第一修改的认证器、被认证方和认证方法,至少能够获得类似于第一实施方式中获得的有益效果(I)至(3)。
[0348]此外,根据第一修改,当FKB被稍后写入时可以在需要的情况下应用本实施方式。
[0349]【第二实施方式】
[0350]接下来描述第二实施方式。在描述过程中,省略与第一实施方式重叠的那些点。
[0351]在第一实施方式中,在主机设备20成功完成对NAND闪存10的认证之后,主机设备20和NAND闪存10 的内容写入到NAND闪存10中。可以考虑使用共享的SecretID完成此过程。
[0352]本实施方式的目的在于在这个过程中保护SecretID。因此,在描述过程中,省略与第一实施方式重叠的那些点。
[0353]<存储系统>
[0354]图12中示出了根据第二实施方式的存储系统。
[0355]如图12所示,根据第二实施方式的存储系统和根据第一实施方式的存储系统的不同之处在于该系统还包括单向转换器(Oneway) 27B、开关单元29、以及处理目标内容的所有主机设备20共同保存的信息(ASSV)。
[0356]如果确定结果(即,数据验证单元(Verify) 28确定两个Oneway-1D的值相匹配(OK))作为控制信号被输入,则开关单元29打开信号路径,以将SecretID输出至单向转换器 27B。
[0357]通过使用所有的处理目标内容的主机设备共同保存的信息(ASSV),单向转换器(Oneway) 27B借助单向函数对从开关单元29输入的SecretID进行转换,以生成单向对话识别信息 EMID (EMID = Oneway (SecretID, ASSV))。
[0358]因此,在第二实施方式中,在主机设备20验证SecretID之后,主机设备20使用所有主机设备共同保存的ASSV对SecretID进行转换,以计算EMID。因此,主机设备20能够使用EMID而非SecretID来执行内容加密处理等。
[0359]其它配置和操作和第一实施方式中的配置和操作基本上相同,因此,此处不再赘述。
[0360]<有益效果>
[0361]根据上述第二实施方式的认证器,被认证方和认证方法,至少能够获得类似于第一实施方式中获得的有益效果(I)至(3)。
[0362]此外,第二实施方式和第一实施方式的不同之处在于主机设备20还包括由单向转换器(Oneway) 27B、开关单元29、以及处理目标内容的所有主机设备20共同保存的信息(ASSV)。
[0363]根据上述配置,在主机设备20验证秘密识别信息SecretID之后,主机设备20使用所有主机设备共同保存的ASSV对秘密识别信息SecretID进行转换,以计算单向对话识别信息EMID。因此,主机设备20能够使用单向对话识别信息EMID而非秘密识别信息SecretID来执行内容加密处理等。
[0364]由此,尽管未示出,单向对话识别信息EMID能够在后处理中用于内容加密,并且因此,可以防止秘密识别信息SecretID在后处理中泄露,进一步增强了秘密识别信息SecretID的机密性。下面对细节进行描述。
[0365]【第三实施方式】
[0366]接下来描述第三实施方式。第三实施方式涉及这样的示例:NAND闪存10对主机设备20进行认证。本实施方式展示了一种方法,该方法用于读取以对第三方以藏的状态隐藏于NAND闪存10中的SecretID,并用于可靠地确定从NAND闪存10读取的数据,通过该方法,NAND闪存10检验主机设备20。
[0367]在描述过程中,省略与上述实施方式重叠的那些点。 [0368]<存储系统>
[0369]参考图13描述根据第三实施方式的存储系统。
[0370]如图13所示,本实施方式和第一实施方式的不同之处在于NAND闪存10还包括函数控制器18、随机数生成器24η和数据验证单元28η,主机设备20还包括函数调用单元30。
[0371]随机数成器(RNG) 24η生成认证所用的随机数RNn。
[0372]数据验证单元(Verify) 28η比较从主机设备20接收的Oneway-1D和从NAND闪存10中的单向转换器15获得的Oneway-1D,以确定两个Oneway-1D是否匹配。如果两个值匹配,则数据验证单元28η确定主机设备20获得了正确的Oneway-1D(OK),如果两个值不匹配,贝1J数据验证单元28η确定主机设备20未获得正确的Oneway-1D(NG)。
[0373]只有在主机设备20获得正确的Oneway-1D的情况下,函数控制器18才启用存储单元阵列11上的预定函数,由此主机设备20能够获得NAND闪存10的预定函数。此外,从主机设备20接收的HCj可以输入到函数控制器18中,由此根据Hcj对预定函数进行控制。下面会单独对预定函数进行描述。
[0374]函数调用单元30执行以下过程:当主机设备20接收到访问许可信息(图13中标为“访问许可”)时,调用NAND闪存10的预定函数,访问许可信息表明NAND闪存10对主机设备20生成的Oneway-1D的真实性进行了验证。
[0375]<认证流程>
[0376]接下来,参考图14描述根据第三实施方式的存储系统的认证流程。
[0377](步骤Sll 至 S14)
[0378]如图14所示,以与第一实施方式相同的方式从认证开头(Start)执行到步骤Sll到 S14。
[0379](步骤S51)
[0380]接下来,当接收到索引信息i时,主机设备20向NAND闪存10发送随机数生成请求(RequestRNn)。
[0381](步骤SM)[0382]接下来,NAND闪存10接收请求并借助随机数生成器24η生成RNn。生成的RNn被发生给主机设备20。
[0383](步骤S2I 至 S23)
[0384]接下来,主机设备20执行与第一实施方式中的步骤S21至S23类似的处理。
[0385](步骤SM)
[0386]接下来,主机设备20对NAND闪存10发出认证请求(Requestauthentication)并发送 HCj 和 Oneway-1D。
[0387](步骤S17 至 S20)
[0388]在进行与上述步骤S17到S19相类似的处理之后,在步骤20中,NAND闪存10通过单向转换器15使用生成的SKeyi, j对SecretID进行单向会话处理,以生成Oneway-1D (=Oneway (SKeyi, j, SecretID))。
[0389](步骤SM)
[0390]接下来,NAND闪存10验证接收到的Oneway-1D是否和NAND闪存10生成的Oneway-1D匹配。如果两个Oneway-1D匹配(OK),则NAND闪存10确定SecretID是真实的ID,如果两个Oneway-1D不匹配(NG),NAND闪存10确定SecretID是非法ID。接下来,NAND闪存10将确定结果返还给主机设备20,并给出预定函数的调用接受许可(Permission)。
[0391](步骤S55)
[0392]接下来,如果步骤S54中的确定结果是匹配(OK),则NAND闪存10启用函数控制器18中的预定函数,因此主机设备20能够获得NAND闪存10的预定函数。
[0393](步骤S56)
[0394]接下来,如果主机设备20接收到访问许可信息(AccessPermission),则主机设备20返还一个指令,以通过函数调用单元30来调用预定函数,访问许可信息(AccessPermission)表明NAND闪存10核实了主机设备20生成的Oneway-1D的真实性。
[0395](步骤S57)
[0396]接下来,NAND闪存10接收函数调用,并根据从主机设备20接收的函数调用指令来执行处理,返回处理结果的状态(Status)。
[0397]在这种情况下,从主机设备20接收的HCj可以输入到函数控制器18中,以根据HCj对预定函数进行控制。下面会单独对预定函数进行描述。
[0398]<有益效果>
[0399]根据第三实施方式的认证器、被认证方和认证方法,至少能够获得类似于第一实施方式中获得的有益效果(I)至(3)。此外,至少还能够获得有益效果(4)和(5)。
[0400]⑷NAND闪存10能够认证主机设备20。
[0401]本实施方式和第一实施方式的不同之处在于NAND闪存10还包括函数控制器18、随机数生成器24η和数据验证单元28η,并且主机设备20还包括函数调用单元30。
[0402]因此,根据以上配置,能够对认证功能进行控制,使得(例如)当主机设备20访问NAND闪存10时,只有在主机设备20足够可靠时NAND闪存10才提供预定函数。
[0403]因此,根据本实施方式,通常作为被认证方的记录介质(如NAND闪存)可以反过来对主机设备20进行认证。
[0404](5)能够提供一种根据被认证的主机设备20的唯一信息(常数HCj)来进一步控制是否提供预定函数的机制。下面会对预定函数的细节进行描述。
[0405]【第四实施方式(互相认证)】
[0406]接下来描述第四实施方式。第四实施方式涉及这样一种示例:NAND闪存10和主机设备20互相认证。
[0407]在描述过程中,省略与上述实施方式重叠的那些点。
[0408]<存储系统>
[0409]参考图15描述根据第四实施方式的存储系统。 [0410]如图15所示,本实施方式的配置基本上结合了第一实施方式的存储系统和第三实施方式的存储系统。
[0411]更详细地讲,NAND闪存10和主机设备20包括随机数生成器24n、24h、生成器14-2,26-2、单向转换器15-2,26_2、和数据验证单元28n,28h。此外,本实施方式和第三实施方式的不同之处在于主机设备20还包括开关单元28B。
[0412]每个配置的操作与上述实施方式中的操作相同。
[0413]〈认证流程〉
[0414]接下来,参考图16描述根据第四实施方式的存储系统的认证流程。原则上,本实施方式的认证流程先执行第一实施方式中的认证操作(swsiuaNAND闪存),接下来执行第三实施方式中的认证操作(NAND闪存认证主机设备)。
[0415](步骤Sll 至 S24)
[0416]如图15所示,认证开始(Start)时,首先,通过步骤Sll至S24,主机设备20对NAND闪存10进行认证,步骤Sll至S24与第一实施方式中的步骤相似。
[0417]此时,使用随机数生成器24h所生成的随机数RNh执行类似的认证。
[0418](步骤S51 至 S70)
[0419]接下来,如果步骤S24中的确定结果是匹配(OK),则确定完成了 NAND闪存10的认证。
[0420]接下来,通过步骤S51至S70,NAND闪存10对主机设备20进行认证,步骤S51至S70与第三实施方式中的步骤相似。
[0421]此时,使用随机数生成器24η所生成的随机数RNn执行类似的认证。
[0422]通过上述步骤,完成(End)根据第四实施方式的认证操作。
[0423]<函数控制的配置示例>
[0424]接下来,参考图17描述函数控制的配置示例。
[0425]函数控制是一种对第三和第四实施方式的预定函数进行控制的方法,通过该控制方法,当NAND闪存10作为认证器并且主机设备20作为被认证方时,NAND闪存10对主机设备20进行认证并基于认证结果向主机设备20提供预定函数。
[0426]每个NAND闪存10中包括图17所示的函数控制配置。函数控制包括函数控制器
18、参数寄存器89、以及序列控制电路88,函数控制器18包括在认证电路17中。
[0427]认证电路17中包含的函数控制器18对函数进行控制,基于认证结果或者主机设备20的唯一信息(常数HCj等)向主机设备20提供预定函数。基于认证结果或者主机设备20的唯一信息,函数控制器18更新参数寄存器89中含有的控制参数890。
[0428]参数寄存器89中的控制参数890至少包括一个访问许可信息(#0,#1,..., #3)。例如,访问许可信息#0包括块地址、页面地址、写属性、读属性、擦除属性、唯一信息等。块地址显示了对与块地址相关的存储单元阵列11的控制。页面地址显示了对与页面地址相关的存储单元阵列11的控制。读属性显示了与块地址,或与块地址及页面地址相关的读取许可信息。写属性显示了与块地址、或与块地址及页面地址相关的写入许可信息。擦除属性显示了与块地址、或与块地址及页面地址相关的擦除许可信息。唯一信息表明访问许可信息是具有特定信息的主机设备20的控制参数。
[0429]访问许可信息(#0,#1,...,#3)中的每一个不必包含上述所有信息,可以包含与所需控制等级对应的控制信息。例如,如果不需要基于主机设备的唯一信息(如,常数HCj)进行控制,则可以不包含特定信息。此外,如果不需要以页面为单位进行控制,则可以不包含页面地址。此外,如果不需要在任何块地址中进行控制,例如,仅对预定块或对整个NAND闪存10进行的控制,则可以不包含块地址。同样,就读属性,写属性和擦除属性而言,可以只包括函数的那些需要控制的属性。
[0430]序列控制电路88根据命令(CMD)对操作序列进行控制,主机设备20根据控制参数890提供命令(CMD)。例如,对于数据读取命令,序列控制电路88基于控制参数890中的访问许可信息的读属性,根据提供的读取命令对以下操作进行控制:读取(Read)数据,或拒绝读取数据。如果读属性中允许读取,则可以从单元阵列11读取数据。此外,上述操作示例还可以应用至数据写入操作和数据擦除操作。
[0431]〈有益效果〉
[0432]根据上述第四实施方式的认证器、被认证方和认证方法,至少能够获得类似于上述实施方式的有益效果(I)至(5)。
[0433]根据本实施方式,NAND闪存10和主机设备20可以互相认证。
[0434]此外,本实施方式的NAND闪存10通过图17所示的配置实现了函数控制。序列控制电路88能够根据提供的命令对操作序列进行控制,命令根据控制参数890被提供。因此,由NAND闪存10认证的主机设备20能够被允许(Process function)基于主机设备20的唯一信息(常数HCj等)对更新的控制参数890进行各种函数处理。
[0435]此外,本示例的NAND闪存10可以包括第三和第四实施方式中如图17所示的配置的函数控制。
[0436]【第五实施方式(NAND闪存的配置示例)】
[0437]接下来描述第五实施方式。第五实施方式涉及NAND闪存10的配置示例,对NAND闪存10应用第一道第四实施方式中的认证功能。
[0438]在描述过程中,省略与上述实施方式重叠的那些点。
[0439]<NAND闪存的整体配置示例>
[0440]下面参考图18描述第五实施方式的NAND闪存10的整体配置示例。
[0441]如图18所示,NAND闪存10包括存储单元阵列11和外围电路。
[0442]存储单元阵列11包括多个块:BL0CK1至BLOCKn。(参考图19描述的)每个块的配置包含多个存储单元晶体管MC、字线WL、和位线BL。通过一次操作擦除每个块中的存储单元晶体管MC中的数据。不能以存储单元晶体管或页面为单位擦除数据。也就是说,各个块是最小的擦除单元。
[0443]外围电路包括感测放大器77、输入/输出控制电路84、及逻辑控制电路85。[0444]感测放大器77通过位线BL读取存储单元阵列11中的存储单元(存储单元晶体管MC)的数据。
[0445]数据缓存12暂时保存从感测放大器77读取的数据,或将要提供给感测放大器77的数据。
[0446]列解码器75基于地址信号来选择特定的位线BL、感测放大器等,地址信号通过IO终端从NAND闪存10的外部被提供。
[0447]列地址缓冲器74暂时保存地址信号,以将地址信号提供给列解码器75。
[0448]行解码器78从电压生成器86接收读取、写入或擦除数据所需的各种电压,基于地址信号将该电压应用至特定字线WL。
[0449]行地址缓冲器解码器79暂时保存地址信号,以将地址信号提供给行解码器78。
[0450]电压生成器86接收参考电源电压VSS、VCC、电压VSSQ、VCCQ等,从这些电压生成读取、写入或擦除数据所需的电压。
[0451]输入/输出控制电路84接收对NAND闪存10的运行所需的命令,地址信号,通过IO终端写入数据,并输出数据。从输入/输出控制电路84输出的地址信号被地址寄存器82锁存。锁存的地址信号被提供给列地址缓冲器74和行地址缓冲解码器79。从输入/输出控制电路84输出的命令被命令寄存器83锁存。状态寄存器81为输入/输出控制电路84保存各种状态值。
[0452]NAND闪存10从外部接口(NANDI/F)接收各种控制信号,控制信号用于控制命令、地址、数据输入/输出用的IO终端、及操作。举例来说,控制信号包括芯片使能/CE、命令锁存使能CLE、地址锁存使能ALE、读使能RE和/RE、写使能WE和/WE、写保护WP、及时钟DQS、/DQS。
[0453]这些控制信号在相应终端被接收,然后被传输至逻辑控制电路85。逻辑控制电路85基于控制信号对输入/输出控制电路84进行控制,允许或禁止终端IO上的信号通过输入/输出控制电路84以命令、地址或数据的形式到达地址寄存器82、命令寄存器83、页面缓冲器12等。逻辑控制电路85还从命令寄存器83接收锁存的命令。
[0454]在控制命令中,WE终端提供数据输入时钟,RE终端提供数据输出时钟,DQS终端传输数据输入/输出时钟,CLE终端用于使输入数据成为命令,ALE终端用于使输入数据成为地址,并且CE终端用于开启数据输入/输出的整体函数。
[0455]R/B终端指示NAND闪存10的内部运行状态,WP终端传输写保护信号,以防止错误写入,Vcc/Vss/Vccq/Vssq终端用于供电。此外,在本实施方式中,当数据传输通过高速接口实现时,用于传输各种补偿信号的/RE终端、/WE终端和/DQS终端被提供给RE终端、WE终端和DQS终端。
[0456]逻辑控制电路85包括序列控制电路88、参数寄存器89、及认证电路17。逻辑控制电路85还对就绪/繁忙信号(R/B)的输出进行管理。更具体地,在NAND闪存10繁忙的时候,逻辑控制电路85输出繁忙信号。
[0457]序列控制电路88从命令寄存器83接收命令。序列控制电路88控制感测放大器77、电压生成器86等,由此能够基于接收到的命令来执行处理(如,读取,写入,或擦除数据)。
[0458]参数寄存器89保存有多个控制参数890,控制参数890规定逻辑控制电路85的运行。控制参数890被序列控制电路88引用或更新,并被用于控制逻辑控制电路85和/或输入/输出控制电路84的序列。
[0459]认证电路17执行与认证相关的处理。例如,如上所述,认证电路17还更新数据,例如,对参数寄存器中包含的控制参数890进行重写。认证电路17接收要求进行认证的命令,并使用存储单元阵列11中的特定数据执行特定认证操作,将结果输出到存储器10之夕卜。在执行一系列操作的过程中,认证电路17允许序列控制电路88读取必要数据,或通过控制参数890的更新来写入必要数据。
[0460]就绪/繁忙电路(RY/BY)87在逻辑控制电路85的控制下通过开关晶体管向NAND闪存10外通知R/B信号。
[0461]〈块(BLOCK)的配置示例>
[0462]接下来,参考图19对形成存储单元阵列11的块(BLOCK)的配置示例进行描述。以图18中的BLOCKl为例进行描述。如上所述,块BLOCKl中的存储单元中的数据通过一次操作被擦除,因此,块是数据擦除的单位。
[0463]块BLOCKl包括沿字线方向(WL方向)设置的多个存储单元单位MU。存储单元单位MU包括NAND串(存储单元串),源侧上的选择晶体管SI,及漏侧上的选择晶体管S2,NAND串由沿着位线方向(BL方向)设置的8个存储单元MCO至MC7形成,位线方向与WL方向相交,NAND串的当前路径以串联形式连接,源侧连接至NAND串的当前路径的一端,漏侧连接至NAND串的当前路径的另一端。
[0464]在本实施方式中,存储单元单位MU包括8个存储单元MCO至MC7,但是可以包括两个或多个存储单元,如56或32个存储单元,存储单元的数量不限于8个。
[0465]源侧上的选择晶体管SI的当前路径的另一端连接至源线SL。假如上述每个存储单元单位MU对应于存储单元单位MU并且沿BL方向延伸,则漏侧上的选择晶体管S2的当前路径的另一端连接至位线BL。
[0466]字线WLO至WL7沿WL方向延伸,共同连接至WL方向上的多个存储单元的控制栅电极CG。选择栅线SGS沿WL方向延伸,共同连接至WL方向上的多个选择晶体管SI。选择栅线S⑶也沿WL方向延伸,共同连接至WL方向上的多个选择晶体管S2。
[0467]针对字线WLO至WL7中的每一个字线,存在页面(图19中标记为“PAGE”)。例如,如图19所示,如虚线包围所示的,页面7 (PAGE7)存在于字线WL7中。因为对每个页面(PAGE)执行数据读取操作或数据写入操作,将页面(PAGE)作为数据读取单位和数据写入单位。
[0468]<单元阵列的配置示例>
[0469]接下来参考图20A、20B、20C和20D描述存储单元阵列11的结构。
[0470]如图20A所示,存储单元阵列11包括多个块(BLOCK):正常块11_1,隐藏块11_2,ROM块11-3,ROM融合(fuse)块11_4,受保护的块11_5等。如上所述,每个块包括多个页面。一般而言,以页面为单位读取或写入数据,以块为单位擦除数据。
[0471]如上所述,允许多正常块11-1进行数据读取和数据写入,正常块11-1用于正常数据保存。正常块11对应于上述读/写区域11-1。块的数量不受特别限制。
[0472]如上所述,隐藏块11-2和ROM块11_3应用于上述认证操作。隐藏块11_2对应于上述隐藏区域11-2。ROM块11-3对应于上述ROM区域11-3。在这两种情况下,块的数量不受特别限制。
[0473]如图20B所示,在本实施方式中,只读数据进一步记录在ROM块11_3的存储空间中。
[0474]如图20C所示,在本实施方式中,隐藏数据进一步记录在隐藏块11-2的存储空间中。
[0475]如图20D所示,在本实施方式中,受保护数据进一步记录在受保护块11-5的存储空间中,受保护数据用于下面描述的认证功能。
[0476]例如,ROM融合块11-4用于保存NAND闪存10的运行控制参数。
[0477]〈ROM块中的只读数据>
[0478]接下来,参考图21描述ROM块11_3中的只读数据。
[0479]如图21所示,只读数据被记录在ROM块11-3的存储空间的某些页面中。如果只读数据是一系列的只读数据A至Z,图21示出了用于数据纠错的数据模型的三个例子。
[0480]如第一个数据模型中所示,第一个数据模型是这样一个例子:重复记录相同的数据(A, A,,,,B, B,,,,)。在这种情况下,通过由主机设备20重复读取只读数据,并由主机设备20中的纠错单元等作出多数投票决定,能够实现纠错。或者,通过由控制器19重复读取只读数据,并由控制器19中的纠错单元等作出多数投票决定,能够实现纠错。或者,通过NAND闪存10中的纠错单元对重复读取的只读数据作出多数投票决定,能够实现纠错。例如,理想的重复次数是16次或更多。
[0481]如图21的第二个数据模型中所示,第二个数据模型是这样一个例子:重复记录补充数据对,补充数据对由数据(A,B,,,,)和其反转数据(A的反转,B的反转B,,,,)组成。在这种情况下,通过由主机设备20重复读取只读数据,并且由主机设备20中的纠错单元等考虑补充数据对而作出多数投票决定,能够实现纠错。或者,通过由控制器19重复读取只读数据,并由控制器19中的纠错单元等考虑补充数据对而作出多数投票决定,能够实现纠错。或者,通过NAND闪存10中的纠错单元对重复读取的只读数据的补充数据对作出多数投票决定,能够实现纠错。
[0482]重复记录补充数据对的原因是由于NAND闪存10的错误模式。通过对存储单元MC施加预定电压而将电子注入到浮动栅FG中,NAND闪存10写入数据。使用阈值电压来读取数据,阈值电压根据存储单元MC的浮动栅FG中是否存在电子而变化。通过沿着与数据被写入时的电压的相反方向施加电压以将电子从浮动栅FG提取到基质中,数据被擦除。尽管在读取、写入和擦除数据的情况下施加电压的量和被施加电压的栅的量不同,在所有这些情况下,都在存储单元MC中施加电压。由该原则引起的NAND闪存10的典型错误模式包括读取程序干扰和数据保存问题。读取程序干扰是这样一种错误模式:在该错误模式中,数据根据浮动栅FG中电子的数量的变化而变化,在重复读取本地或相邻页面,或者将数据写入到相邻页面之后,浮动栅FG中电子的数量发生变化。因此,存储单元的状态改变为弱程序状态,在大多数情况下,这将增加阈值电压。数据保存问题是这样一种错误模式:在该错误模式中,由于电子在曾被写入的页面被长时间放置之后从浮动栅被抽走,数据发生变化。因此,存储单元的状态改变为弱擦除状态,在大多数情况下,这将降低阈值电压。也就是说,在这些缺陷模式中存在增加或降低这样的一般趋势,因此,在相同方向容易发生数据错误。
[0483]因此,通过如图21所示第二数据模型那样将数据记录为补充数据,如果数据为I(未记录),其反转数据为O (已记录),就读取程序干扰而言,两个数据在O方向位移(增加阈值电压),相反,就数据保存问题而言,两个数据在I方向位移(降低阈值电压)。因此,通过存储补充数据能够更容易确定是否发生了至少一种错误。在这种情况下,举例来说,理想的是,在数据模型中将补充数据对重复至少八次。
[0484]如图21的第三数据模型所示,第三个数据模型是这样一个例子:除只读数据(A, B,,,, Z)外,还使用纠错码。由于NAND闪存10中以比特为单位发生随机错误,因此,举例来说,理想使用能够纠正随机比特错误的BCH码、LDPC码等作为纠错码。
[0485]在第一至第三数据模型的每一个例子中,每个数据可以被随机化。随机化是指通过以下方法使将要记录的数据变得随机:例如,计算生成将要记录的生成的随机序列和数据的异或,以消除数据偏差。可以使用M序列等作为生成随机序列的方法。
[0486]此外,在第一至第三数据模型的所有例子中,每个数据以二进制状态被记录。二进制状态是这样一种数据记录方法:通过将一个预定电平设为参考值,确定存储单元中的阈值电压属于高电平还是低电平,从而记录数据,并且能够在每个存储单元中保存I比特的信息。这种记录方法通常称作SLC(单级单元)记录法。另一方面,如果数据是通过将多个预定电平设为参考值以确定存储单元中的阈值电压属于哪个电平而被记录,则每个存储单元能够保存多比特的信息。举例来说,如果阈值电压所属的四个电平用于记录,则每个存储单元能够保存2比特的信息。这种记录方法通常称作MLC(多级单元)记录法。虽然MLC记录由于更大的每单元记录能力而能够实现更高的记录密度,记录的数据相对更容易发生与阈值电压的位移相关的变化。因此,希望以每单元比正常数据更少比特的方式来对记录在ROM块11-3中的只读数据进行记录。在4级MLC记录法中,每单元的比特的数量是每单元2比特,理想的是对ROM数据进行SLC记录。在8级MLC记录法中,比特的数量是每单元4比特,理想的是用4级MLC记录法对ROM数据进行记录,过对ROM数据进行SLC记录,在4级MLC记录法中,每单元比特的数量是每单元2比特。
[0487]〈ECC的配置示例>
[0488]接下来描述执行纠错码(ECC)校正的配置示例。
[0489]从严格意义上来讲,上面图21所示的第一至第三数据结构是不同的,但是,从广义上(原始数据被附加了冗余)来讲,它们都被视作纠错码ECC。因此,每个数据结构都被视为包括了数据和附加到数据上的校正码。至少对于主机设备20,控制器19和NAND闪存10而言,有必要具有相应的校正函数。
[0490]在图22所示的第一示例中,主机设备20具有相应的校正函数(ECC解码)90。在这种情况下,控制器19和NAND闪存10不执行校正处理,并将签名的数据(Data)发送给主机设备20,主机设备20通过校正函数(ECC解码)90执行校正处理,以生成预定数据(Data)。
[0491]在图23所示的第二示例中,控制器19具有相应的校正函数(ECC解码)90。在这种情况下,NAND闪存10不执行校正处理,控制器19执行校正处理并将校正过的数据(Data)发送给主机设备20。
[0492]在图24所示的第三示例中,NAND闪存10具有相应的校正函数(ECC解码)90。在这种情况下,NAND闪存10执行校正处理并将校正过的数据(Data)通过控制器19发送给主机设备20。
[0493]在图25所示的第四示例中,控制器19和主机设备20具有相应的校正函数90_1、90-2。在这种情况下,首先,附加的校正码具有双结构,并且控制器19和主机设备20各自对内码(Inner code)和外码(Outer code)执行校正处理。
[0494]但是,本实施方式不限于上述情况,NAND闪存10、控制器19和主机设备20中的能够各自对错误进行校正,同时能够根据各自的校正函数进行合作。
[0495]<隐藏块11-2中的隐藏数据>
[0496]接下来参考图26描述隐藏块11-2中的隐藏数据的保存状态。
[0497]如图26所示,隐藏数据被记录在隐藏块11-2的存储空间的页面中。如果隐藏数据是一系列的数据A至Z,图26示出了三个例子。
[0498]如图26的第一个数据模型中所示,存储有多个隐藏数据(A,A,,,,B,B)和访问控制模型BI。
[0499]如图26的第二个数据模型中所示,存储有多个隐藏数据(A,A,,,,B,B,,,,)和其反转数据、以及访问控制模型B2。
[0500]如图26的第三个数据模型中所示,存储有多个隐藏数据(A,B,,,,Z),纠错码、以及访问控制模型B3。
[0501]每个例子具有相似目的,即,纠错。另一个目的是控制对隐藏块11-2或隐藏块11-2中的页面的读取、写入和擦除。由于区域记录隐藏数据,并保存仅由认证电路在NAND闪存10内部使用的信息,有必要禁止从外部进行一切读取、写入和擦除操作。另一方面,在NAND闪存10的初始制造阶段,区域是没有记录的,并且隐藏数据需要在某个制造阶段中被写入。此外,由于初始状态的存储单元的数据保存性能可能不能满足NAND闪存10的特性,因此有必要对存储单元进行读取、写入和擦除操作,以检查存储单元是否能够像所要求的那样保存数据。
[0502]因此,可在制造阶段对区域11-2进行读取、写入和擦除,但是,制造完成发货之后有必要禁止对区域进行一切读取、写入和擦除操作。作为引起状态变化的信息,访问控制模型B1、B2、B3被记录在区域11-2中。
[0503]访问控制模型B1、B2、B3可以记录在每个页面中,或仅记录在块的第一页面中。访问控制模型B1、B2、B3在页面中的记录位置可以是一般数据区域或冗余区域。举例来说,冗余区域是控制器等用来附加校正码的区域,NAND闪存10用来记录指示每个页面的内部状态的信息的区域,等。
[0504]此外,理想的是以二进制(SLC)模式来记录ROM数据、隐藏数据和访问控制模型B1、B2、B3。
[0505]接下来,参考图27描述访问控制模型的配置示例。
[0506]首先,访问控制模型由多个比特形成,以防止由错误引起的损失。
[0507]作为第一个例子,访问控制模型BI包括多个控制标记位A至Z,每个控制标记位设为预定模型。如果从主机设备20接收到对区域进行读取、写入、擦除等这样的访问请求,则NAND闪存10借助预定模型对区域11-2的访问控制模型BI进行检查,如果两者的匹配率大于或等于预定值,则禁止访问。
[0508]作为第二个例子,访问控制模型B2是用于重复记录控制标记的方法。这能有效降低预定模型出错的可能性。
[0509]作为第三个例子,访问控制模型B3是用于记录每个控制标记和每个控制标记的反转数据的方法。如上所述,该方法也能有效降低出错的可能性。
[0510]<访问控制模型的使用示例>
[0511]接下来描述检测访问控制模型的方法,以及如何使用检测结果。
[0512]如图28所示,从存储单元阵列11中的隐藏区域11-2读取的访问控制模型被输入至逻辑控制电路85中的模式感测电路91中。
[0513]模式感测电路91对输入的访问控制模型进行模式识别处理,确定匹配率是否等于或大于预定比率,以对访问进行控制。根据NAND闪存10的存储单元阵列的错误几率和访问控制模型的数据量来计算匹配率,举例来说,理想的是将匹配率设置为使错误检测几率为至少10-3或更少。模式感测电路91向序列控制电路88输入使能信号,以基于检测结果对数据读取、数据写入和数据擦除进行控制。
[0514]序列控制电路88根据检测结果的使能信号来控制数据读取、数据写入和数据擦除。
[0515]〈测试流程〉
[0516]接下来,参考图29描述使用上述访问控制模型(如,BI至B3)对NAND闪存10的制造过程进行的检查流程。
[0517](步骤S71,S72)
[0518]在制造过程中,与访问控制模型不对应的第一数据被记录在隐藏区域11-2中,并且被测试。在这个阶段中,允许访问隐藏区域11-2。
[0519]但是,取决于是否允许对所有数据读取、数据写入和数据擦除进行访问,或是否允许对数据写入和数据擦除进行访问等,可以对区域11-2设定任何不同的安全等级。如果区域11-2需要高安全等级,即使访问控制模型禁止一切访问,归咎于访问控制模型的数据的降级,可能授予错误的访问许可。在这种情况下,隐藏数据可能被读出,因此,即使在步骤S71的测试过程中,可以禁止数据读取,也就是说,首先在NAND闪存10的硬线连接(hard-wired)等级就不允许对区域11_2进行读取。
[0520]或者,如果对访问控制模型的数据退化的抵抗足够,例如,访问控制模型被多次重复记录,或者附加了强纠错码,则访问控制模型可以进行包括数据读取在内的控制,以保证测试的便利性。在这种情况下,上面示出的错误检测几率依然较低,举例来说,10-5或更低是理想的。
[0521](步骤S73)
[0522]接下来,在完成步骤S72中的预定测试之后,隐藏数据和访问控制模型(BI至B3,等)被写入到隐藏区域11-2中。
[0523](步骤S74)
[0524]接下来,将写有上述数据的NAND闪存10发货。
[0525]<数据擦除流程>
[0526]接下来,参考图30描述NAND闪存10内部的数据擦除操作。
[0527](步骤S76)
[0528]首先,如果主机设备20发出擦除操作的操作指令,则NAND闪存10确定指令中的选择的块地址是不是特定块。
[0529](步骤S77)[0530]接下来,如果选择的块地址不是特定块(No),则NAND闪存10执行正常擦除序列。
[0531](步骤S78)
[0532]另一方面,如果选择的块地址是特定块(Yes),则NAND闪存10从隐藏区域11_2读取访问控制信息(BI至B3,等)。
[0533](步骤S79)
[0534]接下来,NAND闪存10感测访问控制信息的模型(BI至B3,等),以确定模型匹配率是否等于或大于预定值。
[0535](步骤S80)
[0536]接下来,如果模型匹配率等于或小于预定值(Yes),则NAND闪存10执行正常擦除序列。
[0537](步骤S81)
[0538]接下来,如果模型匹配率等于或小于预定值(No),则NAND闪存10退出擦除序列,终止数据擦除流程(End)。
[0539]在本实施方式中,以数据擦除为例,但是本实施方式还可以应用至数据读取和数据写入。
[0540]<有益效果>
[0541]根据上述第五实施方式的认证器、被认证方和认证方法,至少能够获得类似于上述的有益效果⑴至(5)。
[0542]此外,通过应用本实施方式中的配置和方法可以改善可靠性。
[0543]【第六实施方式(使用数据缓存进行认证处理的例子)】
[0544]第六实施方式涉及使用数据缓存进行认证处理的例子。在描述过程中,省略与上述实施方式重叠的那些点。
[0545]<数据缓存、感测放大器等的配置示例>
[0546]参考图31描述第六实施方式中数据缓存,感测放大器等的配置示例。
[0547]如图31所示,上述实施方式中认证处理的数据缓存12显示为组件。NAND闪存10包括易失性数据缓存12,易失性数据缓存12暂时存储从存储单元阵列11读取的页面数据,或暂时存储作为记录数据从外部接收的写入页面数据。本实施方式中的数据缓存12也叫做页面缓冲器、数据缓冲器等,具有正常页面大小的区域、或更大的区域。此外,数据缓存具有数倍于页面尺寸的区域,以使页面数据的读取或写入操作更快,并实现随机页面接入。
[0548]数据缓存12包括多个数据缓存A、B、C。每个数据缓存连接至感测放大器(SA)及用于从存储单元阵列11读取数据的数据线。
[0549]感测放大器(SA)通过位线(未示出)电连接至存储单元阵列11。
[0550]数据缓存的锁存电路DC_A是能够直接与数据线交换数据的数据缓存。IO通过数据线被连接,数据缓存12中的数据能够通过DC_A从NAND闪存10输出,NAND闪存10外的数据能够载入到数据缓存中。
[0551]此外,还包括操作器,该操作器连接至数据缓存12以在数据缓存12之间进行操作。操作器对应于认证电路17,认证电路17在上述实施方式中用于认证处理,并包括数据生成器13、14和单向电路15。
[0552] 此外,还包括用于暂时存储数据的内部寄存器92。[0553]在NAND闪存10中,除了来自存储单元阵列11的读取命令,还可以使用称作“寄存器读取”的命令来读取数据,该命令用于将从存储单元阵列11读取的数据读取到数据缓存12中。具体地,数据读取命令包括两种命令:一种命令指导NAND闪存将数据从存储单元阵列读取到数据缓存12中,另一种命令指导NAND闪存将数据从数据缓存12读取到外部,该命令称作“寄存器读取”。
[0554]在认证方法中,NAND闪存10中的隐藏块11_2可以不允许隐藏块11_2中记录的隐藏信息(NKey,SecretID等)被来自NAND芯片10之外的访问所读取。另一方面,当NAND闪存10执行认证处理时,NAND闪存10可以内部读取隐藏块11_2中记录的隐藏Ih息(NKey, SecretID等),将隐减/[目息用于认证处理。也就是说,在需要允许隐减彳目息(NKey, SecretID等)从存储单元阵列11_1被读取到数据缓存12中的同时,还需要禁止数据从数据缓存12输出到NAND闪存10的外部。这对应于撤销了寄存器读取。
[0555]由此,当从NAND闪存10外部访问隐藏块11_2时进行的数据读取操作不同于正常读取操作。更具体地,当隐藏块11-2被访问时,从存储单元阵列11-1检测到的数据锁在其它数据缓存DC_B、DC_C中,而非DC_A中,防止数据被输出,以撤销寄存器读取命令,使该命令不起作用。另一方面,如果被访问的块不是隐藏块11-2,则正常使用数据缓存DC_A来读取数据。
[0556]因此,根据上述配置,提供多个数据缓存,使用不能被外部用户访问的数据缓存DC_B和DC_C来执行认证处理。因此,当隐藏信息(NKey,SecretID等)被用于认证处理时,能够防止密钥信息(NKey)这样的隐藏信息被从外部非法读取。
[0557]<认证处理中NAND内部操作流程的第一示例>
[0558]接下来,参考图32对流程进行描述,该流程在认证处理的过程中不直接或间接将隐藏块11-2中保存的信息输出至主机设备20。
[0559](步骤S82)
[0560]首先,假定在认证处理的过程中,数据从NAND闪存10之外,如主机设备20输入。例如,输入数据是随机数RN或主机常数HCj,并且数据载入到数据缓存DC_A中。
[0561](步骤S83)
[0562]接下来,主机设备20发出对特定块(如,隐藏块11-2)进行访问的间接读取请求。这对应于认证处理中认证信息的计算请求。
[0563]响应于该请求,读取出从存储单元阵列11读取的机密页面的数据。
[0564](步骤SS4)
[0565]接下来,读取的机密页面的数据被存储在数据缓存DC_B中。
[0566](步骤S85)
[0567]接下来,使用操作器(认证电路17)在保存在数据缓存DC_A和数据缓存DC_B中的数据之间进行上述实施方式中所描述的认证操作。
[0568](步骤S86)
[0569]接下来,操作结果被存储在数据缓存DC_C中。
[0570](步骤S87)
[0571]如果机密数据在完成序列而准备好芯片时还保留在数据缓存中,则存在机密数据从外部被读取的可能。为防止这种可能性,必须在完成序列之前重置所有数据缓存DC_A至DC_C中的信息。另一方面,主机设备20需要在数据缓存DC_A至DC_C被重置之后获得操作结果。
[0572]因此,数据缓存DC_C中保存的操作结果首先被拷贝到内部寄存器92中。
[0573](步骤S88)
[0574]接下来,所有数据缓存DC_A至DC_C中的数据被重置(即,数据被删除)。
[0575](步骤S89)
[0576]接下来,内部寄存器92中保存的数据返回至数据缓存DC_A。如果完成此前的操作,则NAND闪存10完成序列,准备就绪。此时,操作结果被存储在数据缓存DC_A中。
[0577](步骤S90)
[0578]接下来,主机设备20能够通过寄存器读取命令获得数据缓存DC_A中保存的数据。
[0579]<认证处理中NAND内部操作流程的第二示例>
[0580]接下来,参考图33描述实施方式中的NAND内部操作流程,该实施方式在NAND闪存10中包括随机数生成器24η。图33和图32的不同之处在于使用NAND闪存10内部的随机数生成器24η生成的随机数RNn。
[0581](步骤S9I)
[0582]首先,在认证处理中,当主机设备20向NAND闪存10发出随机数读取请求时,NAND闪存10使随机数生成器生成随机数,所生成的随机数载入到数据缓存DC_A中。
[0583](步骤S92)
[0584]接下来,主机设备20通过寄存器读取命令读取数据缓存DC_A中的随机数。
[0585](步骤S93)
[0586]接下来,在认证处理中,从主机设备20将数据(如主机常数(HCj))输入到NAND闪存10中。数据被载入到数据缓存DC_A中。
[0587]此外,通过主机设备20中的算术运算而获得的认证信息从主机设备20输入到NAND闪存10中。举例来说,该数据是Oneway-1D并且该数据被载入到数据缓存DC_A中。
[0588](步骤SM)
[0589]接下来,通过访问隐藏块11-2,主机设备20发出间接读取请求。这对应于认证处理中认证信息的计算请求。
[0590]接下来,从存储单元阵列11读取机密页面。
[0591](步骤S%)
[0592]接下来,读取结果被存储在数据缓存DC_B中。
[0593](步骤S96)
[0594]接下来,使用操作器(认证电路17)在保存在数据缓存DC_A和数据缓存DC_C中的数据之间进行上述实施方式中所描述的认证操作。
[0595](步骤S97)
[0596]接下来,操作结果被存储在数据缓存DC_B中。
[0597](步骤S98)
[0598]接下来,根据保存在数据缓存DC_B中的NAND的操作结果来验证保存在数据缓存DC_A中的主机的操作结果。
[0599](步骤S")[0600]接下来,如果在步骤S98的认证中确认验证结果相匹配,则更新控制参数(890)。
[0601](步骤S100)
[0602]接下来,NAND闪存10重置所有数据缓存DC_A至DC_C中的信息。如果完成此前的操作,则NAND闪存10退出序列,准备就绪。
[0603](步骤S101)
[0604]接下来,主机设备20使用命令获得从NAND芯片10读出的验证结果,以确认认证结果。
[0605]<隐藏信息的检验方法>
[0606]接下来描述检验隐藏信息的方法。
[0607]?检验流程
[0608]参考图34描述与认证方法相关的处理:从在工厂中完成硅芯片到NAND闪存10发货。 [0609]如图34所示,处理以制造、测试、隐藏数据写入和发货的顺序进行。
[0610](步骤S71,S72)
[0611]首先,在完成硅芯片的制造过程时,进行预定检验测试,以从芯片中选择合格的芯片10。
[0612](步骤S73)
[0613]接下来,在步骤S72中完成正常测试处理之后,执行隐藏数据写入处理,并且需要进行测试以检查隐藏数据是否被正确写入。
[0614]另一方面,不能从隐藏块11-2直接读取隐藏数据。这是因为读取功能可能会成为安全漏洞。
[0615](步骤S74)
[0616]接下来,将正确地写有隐藏数据的NAND闪存10发货。
[0617].隐藏数据的间接读取检验流程
[0618]在步骤S73中,从可能成为安全漏洞这一观点出发,不能从隐藏块11-2直接读取隐藏数据。
[0619]因此,参考图35描述在不提供直接数据读取功能的情况下对数据进行检查的流程。
[0620](步骤SI 11)
[0621]首先,从存储单元阵列11的隐藏块11-2读取隐藏信息(NKey等)。
[0622](步骤SI 12)
[0623]接下来,隐藏信息(NKey等)的读取结果被保存在数据缓存DC_B中。
[0624](步骤SI 13)
[0625]接下来,数据缓存DC_A#储来自NAND闪存10外部的相同隐藏信息(NKey等)。
[0626](步骤SI 14)
[0627]接下来,使用操作器(认证电路17)计算数据缓存DC_A和数据缓存DC_B中的数据的异或。
[0628](步骤Sll5)
[0629]接下来,异或的结果被存储在数据缓存DC_C中。[0630](步骤S116)
[0631]接下来,检测到数据缓存DC_C中的数据。
[0632](步骤SI 17)
[0633]此时,如果数据缓存DC_A中的数据和数据缓存DC_B中的数据相匹配(Yes),则通过测试(OK)。另一方面,如果两个数据不匹配(No),则测试失败。
[0634]更具体地,数据缓存DC_C包含异或的结果,因此,如果数据缓存DC_C中的数据(所有比特)都是“O” (Yes),则通过测试(0K)。另一方面,如果数据缓存DC_C中的数据为“I”(No),则测试失败。
[0635]首先,检测数据缓存DC_C中的数据是否都是“O”。如果所有的比特都是“0”,则通过测试。否则(No),测试进行至步骤S118。
[0636](步骤SI 18)
[0637]接下来,如果所有的比特不为“0”,则对“ I ”进行计数。如果“ I ”的数量等于或小于指定数量(Yes),则通过测试,因为确定错误能够通过多数投票纠错或校正码校正(OK)。另一方面,如果“I”的数量等于或大于指定数量(No),则测试失败(NG)。
[0638]此外,通过单独保存NAND闪存10中的硬线连接的第二隐藏信息,而非记录在隐藏块11-2中的隐藏信息,可以实现基于第二隐藏信息来控制对隐藏块11-2的访问的方法。使用上述实施方式中描述的通过认证来控制对特定块的访问的方法将隐藏信息记录在隐藏块11-2中。在这种情况 下,基于第二隐藏信息进行的认证不仅能够控制数据读取,还可以控制数据写入和数据擦除。
[0639]<有益效果>
[0640]根据上述第六实施方式的认证器、被认证方和认证方法,至少能够获得类似于上述实施方式的有益效果(I)至(5)。
[0641]此外,在本实施方式中,当隐藏块11-2被访问时,从存储单元阵列11-1检测到的数据锁在其它数据缓存DC_B、DC_C中,而非DC_A中,防止数据被输出,以撤销寄存器读取命令,使该命令不起作用。另一方面,如果被访问的块不是隐藏块11-2,在正常使用数据缓存DC_A来读取数据。
[0642]因此,根据上述配置,提供多个数据缓存,使用不能被外部用户访问的数据缓存DC_B和DC_C来执行认证处理。因此,当隐藏信息(NKey,SecretID等)被用于认证处理时,能够防止密钥信息(NKey)这样的隐藏信息被从外部非法读取。
[0643]此外,如上面步骤S88和SlOO中所示,数据缓存DC_A至DC_C中的隐藏信息(如,密钥信息)在从繁忙状态转回就绪状态之前被全部擦除。因此,可以确保安全。
[0644]【第七实施方式(命令映射示例)】
[0645]第七实施方式涉及命令映射示例。在描述过程中,省略与上述实施方式重叠的那些点。
[0646]<与读/写命令兼容的命令映射的示例>
[0647]例如,通过作为读取命令的命令序列“00h” - “地址” -“30h”,NAND闪存10指定将被读取的块和页面地址。地址部分通常显示块地址、页面地址、或特定页面中的字节位置。列地址部分中的输入数据可以被忽略,或可以用于在页面读取之后设置字节指针,以从与字节指针相对应的字节位置读取数据。在输入命令30h之后,NAND闪存10处于读取繁忙状态,并在完成读取后变为就绪状态。转变为就绪状态之后,启用数据输出(Dout),并且通过提供信号RE和DQS,能够读取数据。为改变读取页面中的字节位置,使用命令序列“05h”_ “地址“EOh”来设置与将被读取的字节位置相对应的列地址。
[0648]命令序列“80h”_ “地址“输入数据“10h”被用于数据写入(记录),以指定将被写入的块和页面。地址部分通常显示块地址、页面地址、或特定页面中的字节位置。列地址部分中的输入数据可以被忽略,或可以用于为页面写入数据输入设置字节指针,以输入字节位置上的写入数据,字节位置与字节指针相对应。在输入命令IOh之后,NAND闪存10处于写入繁忙状态,并在完成写入后变为就绪状态。
[0649]以上所述是NAND闪存10广泛使用的命令系统。在实施上述实施方式中的认证功能时,从使电路的封装面积最小化这一点看,尽可能多地提供命令序列的共性是可取的。但是,在需要安全的领域中使用认证功能,因此,还存在这样的观点:对功能使用者进行限制更加可取。
[0650]因此,考虑到以上观点,图36A和36B示出了命令映射示例,其与NAND闪存10的上述读取和写入命令兼容。
[0651]命令映射示例和上面的一般命令序列的区别在于安全前缀(SecurityPrefix)的输入命令附加在命令的前面。可以考虑由单个字节或多个字节配置的安全前缀。命令安全前缀仅向需要认证功能的用户公开。从用户管理的观点来看,理想的是采用多个字节来配置命令安全前缀。
[0652]如图36所示,与数据读取命令序列相似,通过将“命令安全前缀命令00h”_“地址ADD”- “命令30h”依次输入道IO终端中来指定将要读取的块地址和页面地址。设置给地址(Address)的值可以进一步设置为用于用户管理的特定值、或在内部被忽略的值。
[0653]接下来,在输入命令30h之后,NAND闪存10处于读取繁忙状态,并在完成读取后变为就绪状态。转变为就绪状态之后,启用数据输出(Dout),通过提供信号RE,DQS等,能够读取数据,例如索引信息1、V,唯一的加密的秘密识别信息(E-SecretID),以及通用附加的密钥管理信息(FKB)。
[0654]如图36B所示,与数据读取命令序列相似,通过将“命令安全前缀“命令80h,,- “地址ADD” - “数据Din(32B)”_ “命令10h”依次输入道10终端中来输入目标数据。设置给地址(Address)的值可以进一步设置为用于用户管理的特定值,或在内部被忽略的值。本序列与写入序列具有很多相同之处,但是不需要实际上将数据写入单元阵列,本序列用于输入NAND闪存10所需的数据,用于在认证处理中进行的计算。在认证处理中进行的计算所需的数据的例子包括主机设备20的唯一信息HCj和随机数。
[0655]接下来,NAND闪存10处于繁忙状态,直到完成认证处理中的计算,然后在完成计算并且数据缓存DC_A至DC_C中的数据都被清除之后变为就绪状态。
[0656]如图36B所示,在转变为就绪状态之后,通过将“命令05h” - “地址ADD” - “命令EOh”依次输入到10终端中,并且指定保存认证处理的计算结果的列地址,主机设备20能够获得结果。Oneway-1D能够被引用作为认证处理的计算结果的一个例子。
[0657]<与设置/获得命令兼容的命令映射的示例>
[0658]接下来,参考图37A和37B描述NAND闪存10的另一个命令配置示例,对NAND闪存10应用本认证功能。[0659]NAND闪存10具有称作“设置特征”的命令和称作“获得特征”的命令,“设置特征”用于启用存储器10的函数,“获得特征”用于读取存储器10的函数的启用/禁用状态。举例来说,这些命令用于启用/RE、/WE和/DQS的输入,/RE、/WE和/DQS是用于高速数据传输的补偿信号。
[0660]“设置特征”的函数通过输入命令序列“EEh”_ “地址“数据输入”而被设置。函数号设为“地址”,由函数号指示的函数的参数输入至“数据输入”。接下来,启用函数的繁忙时间到来,启用函数之后转变为就绪状态。
[0661]“获得特征”通过输入命令序列“EFh”_ “地址“数据输出”来读取函数的启用/禁用状态。函数号设为“地址”,由函数号指示的函数的参数输出至“数据输出”。在“地址”和“数据输出”之间存在繁忙时间,以在内部读取设置参数。
[0662]本实施方式是变换这些“设置特征”和“获得特征”的命令序列的一个例子。
[0663]如图37A所示,命令序列同以上情况类似,但是将要指定的“地址”不同。“地址”可以是单个字节和多个字节。“地址”仅向需要认证函数的用户公开。从用户管理的观点来看,理想采用多个字节来配置“地址”。如上面图37A和37B所示,“数据输出”和“数据输入”的例子包括索引信息V,i。
[0664]如图37B所示,用于数据输入的命令序列“EEh”_ “地址ADD” - “数据Din”包括同时执行认证处理,并且NAND闪存10在繁忙时间中执行认证处理中的计算。
[0665]接下来,在完成计算并且安全数据从数据缓存被清除之后,NAND闪存10变为就绪状态。转变为就绪状态之后,主机设备20可以读取Oneway-1D。
[0666]〈有益效果〉
[0667]根据上述第七修改实施方式的认证器,被认证方和认证方法,至少能够获得类似于上述实施方式的有益效果(I)至(5)。
[0668]此外,在本实施方式中,如图36A和36B所示,能够尽可能多地提供同NAND闪存10的命令序列的共性。因此,能够在考虑安全的同时最小化电路的封装面积,这在根据上述实施方式实施安全功能时更加有效。
[0669]此外,如图37A和37B所示,用于启用存储器10的函数的称作“设置特征”的命令和用于读取存储器10的函数的启用/禁用状态的称作“获得特征”的命令能够设置为普通,并在需要时应用。
[0670]与上述情况相同,在从繁忙状态返回至就绪状态之前清除数据缓存DC_A至DC_C中的所有数据。
[0671][第八实施方式(对存储卡、内容保护和HDD的应用示例)]
[0672]第八实施方式涉及对存储卡、内容保护和HDD的应用示例。在描述过程中,省略与上述实施方式重叠的那些点。
[0673]存储卡应用示例
[0674]参考图38描述存储卡的配置示例,存储卡包括NAND闪存10,对NAND闪存10应用本认证功能。
[0675]如图38所示,存储卡55中嵌入有控制器19。控制器19包括对NAND闪存10的运行进行控制的功能,对与主机设备20的接口进行控制的功能,等。
[0676]堆叠于NAND封装中的多个NAND闪存芯片10 (MCPl)、(MCP2)中的至少一个被包括在存储卡55中。NAND封装中的至少一个NAND闪存芯片10需要具有认证功能和如以上实施方式中的至少一个所描述的被认证的功能。换句话说,NAND封装中的所有NAND闪存芯片10不必都具有认证功能和如以上实施方式中的至少一个所描述的被认证的功能。此外,安装在存储卡55上的所有NAND封装不必都具有认证功能和如以上实施方式中的至少一个所描述的被认证的功能。为清楚起见,本实施方式中的NAND闪存10可以称作NAND封装或者NAND闪存芯片。
[0677]存储卡55中的控制器19具有通过NAND封装中的NAND接口对以上实施方式中的至少一个中所描述的认证功能和被认证功能进行控制的功能。控制器19的功能可以是对多个NAND封装中的一个的认证功能和被认证功能进行控制的功能,或者对多个NAND封装中的每一个的认证功能和被认证功能进行控制的功能。此外,控制器19的功能可以是对NAND封装中的一个NAND闪存芯片10的认证功能和被认证功能进行控制的功能,或者对NAND封装中的每一个NAND闪存芯片10的认证功能和被认证功能进行控制的功能。
[0678].内容保护的第一应用示例
[0679]参考图39描述对存储卡55的内容进行保护的第一应用示例,存储卡55包括NAND闪存10,对NAND闪存10应用认证功能。为简单起见,之前描述的内容下面不再赘述。
[0680]控制器19和NAND封装(MCPl)、(MCP2)嵌入到存储卡55中。NAND封装(MCPl)、(MCP2)具有以上实施方式中的至少一个实施方式中所描述的认证功能和被认证功能。
[0681]主机设备20通过以上实施方式中的至少一个中所示的认证过程对NAND闪存10的NAND封装(MCPl)、(MCP2)的秘密识别信息SecretID的真实性进行核实。
[0682]核实真实性之后,主机设备20基于秘密识别信息使用第二实施方式中描述的方法进行EMID的计算处理。
[0683]NAND封装(MCP2)生成绑定数据(图39中标记为“绑定数据”),以在写入内容时将EMID和内容(图39中标记为“内容”)关联起来。理想的是绑定数据包括对加密/解密内容很关键的数据。绑定数据被记录在安装于卡55上的NAND封装(MCPl)、(MCP2)的一个之中。记录有绑定数据的NAND封装可以是NAND封装(MCPl),或者是NAND封装(MCP2),NAND封装(MCPl)具有用于认证处理的秘密识别信息。图39显示了后一种例子,但是绑定数据的设置不限于该例子。在任何NAND封装中,内容的记录位置可以相似。
[0684]对内容和EMID之间的关系进行计算和验证,只有在关系被核实的情况下才复制内容。通过对SecretID和绑定数据的认证处理来获得EMID,并且绑定数据关联EMID和内容。
[0685]通过以上配置,内容(Content)与SecretID相关联。因此,可以实现即使内容或绑定数据被非法复制到另一个不具有相同SecretID的存储卡,也使内容复制无效的效果。
[0686].HDD的第一应用示例
[0687]参考图40描述硬盘驱动器(HDD)的第一配置示例,硬盘驱动器使用NAND闪存10,对NAND闪存10应用本认证功能。
[0688]如图40所示,至少一个NAND封装(MCPl)嵌入在HDD封装中,并且至少一个NAND封装具有以上实施方式中的至少一个中所描述的认证功能和被认证功能。
[0689]至少一个HDD210被嵌入在HDD封装200中。
[0690]此外,嵌入有桥接控制器190,桥接控制器190用于对NAND封装(MCPl)、HDD210和与主机设备的接口进行控制。桥接控制器190可以被配置为单个集成电路或多个集成电路。所述功能还可以通过将基础电路和固件组合在一起来实现。
[0691 ] NAND封装(MCPl)中的认证功能和被认证功能通过桥接控制器190被提供给作为主机设备的HDD210。
[0692].HDD的第二应用示例
[0693]参考图41描述硬盘驱动器(HDD)的另一个配置示例,硬盘驱动器使用NAND闪存10,对NAND闪存10应用本认证功能。
[0694]如图41所示,HDD200包括存储卡插槽550,存储卡插槽550用于连接参考图38所描述的存储卡55。
[0695]至少一个HDD210被嵌入在HDD封装200中。此外,还嵌入有桥接控制器190,桥接控制器190用于对存储卡55、HDD210和与主机设备的接口进行控制。桥接控制器190可以被配置为单个集成电路或多个集成电路。功能还可以通过将基础电路和固件组合在一起来实现。
[0696]存储卡55中的认证功能和被认证功能通过桥接控制器190被提供给作为主机设备的 HDD210。
[0697].内容保护的第二应用示例
[0698]图42示出了硬盘驱动器(HDD)的应用示例,硬盘驱动器使用NAND闪存10,对NAND闪存10应用本认证功能。本实施方式以图41所示的HDD配置为例,但是也可以应用至图40所示的HDD配置。
[0699]如图42所示,桥接控制器190A、190B,存储卡插槽550A、550B,以及HDD210A、220B分别嵌入在HDD封装200A,200B中。
[0700]存储卡5 5包括以上实施方式中的至少一个中所描述的认证功能和被认证功能。主机设备20通过以上实施方式中的至少一个中所示的认证过程对NAND闪存10的SecretID的真实性进行核实。核实真实性之后,主机设备20基于秘密识别信息使用第二实施方式中描述的方法进行EMID的计算处理。
[0701]在写入内容时生成关联EMID和内容(Content)的绑定数据。理想的是绑定数据包括对加密/解密内容很关键的数据。绑定数据被记录在存储卡55和HDD210A、210B的一个之中。在示出的例子中,绑定数据记录在HDD210A、210B中,但是绑定数据的设置不限于该例子。在存储卡55中或者HDD210A,210B中,内容的记录位置可以相似。
[0702]对内容和EMID之间的关系进行计算和验证,只有在关系被核实的情况下才复制内容。通过对SecretID和绑定数据的认证处理来获得EMID,绑定数据关联EMID和内容。
[0703]本实施方式通过卡插槽550A使用存储卡55中的NAND闪存10中包括的认证功能和被认证功能,但是还可以应用至这样一种配置=NAND封装直接嵌入在图40所示的HDD中,并且HDD直接控制NAND封装。在这种情况下,存储卡可以被NAND封装取代。
[0704]此外,作为一个可以应用至包括卡插槽550A、550B的HDD的应用示例,如果存在多个相似的HDD封装,只有在内容和绑定数据被复制到两个HDD封装之后将卡移动,才能复制记录在任何HDD中的内容。绑定数据可以记录在卡中,而不是HDD中,或者记录在二者之中。
[0705]通过本配置,内容(Content)与存储卡55或NAND封装中的SecretID相关联,由此能够实现即使内容或绑定数据被非法复制到另一个不具有相同SecretID的存储卡,也使内容复制无效的效果。
[0706]此外,在HDD封装包括如图41所示存储卡插槽的示例中,记录在多个HDD中的内容只能通过移动存储卡而被复制。从便携性方面来看,这是有利的,这是因为与存储卡相t匕,HDD的机壳较大并且安装为固定使用。
[0707].内容保护的第三应用示例
[0708]参考图43描述硬盘驱动器(HDD)的第三应用示例,硬盘驱动器使用NAND闪存10,对NAND闪存10应用本认证功能。在本实施方式中,主机设备20包括存储卡插槽550,并且使用外部HDD210。
[0709]如图43所示,桥接控制器190和HDD210嵌入到HDD封装200中。
[0710]插入到存储卡插槽550中的存储卡55所包括的卡控制功能和认证功能嵌入到主机设备20中。存储卡55中嵌入有NAND封装,NAND封装具有以上实施方式中的至少一个实施方式中所描述的认证功能和被认证功能。
[0711]在以上配置中,主机设备20通过以上实施方式中的至少一个中所示的认证过程对NAND闪存10的SecretID的真实性进行核实。
[0712]核实真实性之后,主机设备20基于秘密识别信息使用第二实施方式中描述的方法进行EMID的计算处理。
[0713]在写入内容时生成关联EMID和内容(Content)的绑定数据。理想的是绑定数据包括对加密/解密内容很关键的数据。绑定数据被记录在存储卡55和HDD210中的一个中。在此显示了后一种例子,但是绑定数据的设置不限于该例子。在存储卡55中或者HDD210中,内容的记录位置可以相似。
[0714]对内容和EMID之间的关系进行计算和核实,只有在关系被核实的情况下内容才会被复制。通过对SecretID和绑定数据的认证处理来获得EMID,绑定数据关联EMID和内容。
[0715]本实施方式通过卡插槽550使用存储卡55中的NAND闪存10中包括的认证功能和被认证功能,但是还可以应用至这样一种配置=NAND封装直接嵌入在主机设备20中,并且主机设备20直接控制NAND封装。在这种情况下,存储卡55可以被NAND封装取代。
[0716]此外,作为一个可以应用至包括卡插槽550的主机设备20的应用示例,如果存在多个相似主机设备20,通过将存储卡55和HDD封装200连接至主机设备20,任何主机设备20都能够复制内容。绑定数据可以记录在卡55中,而不是HDD210中,或者记录在二者之中。
[0717]通过本配置,内容同存储卡55或NAND封装中的SecretID相关联,由此能够实现即使内容或绑定数据被非法复制到另一个不具有相同SecretID的存储卡,也使内容复制无效的效果。此外,通过移动存储卡55和HDD210,内容能够被多个主机设备复制。
[0718].内容保护的第四应用示例
[0719]参考图44描述硬盘驱动器(HDD)的第四应用示例,硬盘驱动器使用NAND闪存10,对NAND闪存10应用本认证功能。在本实施方式中,主机设备20包括存储卡插槽550,并且还使用内置HDD210。
[0720]如图44所示,桥接控制器190和HDD210嵌入到HDD封装200中。
[0721]插入到存储卡插槽550中的存储卡55所包括的卡控制功能和认证功能嵌入到主机设备20中。NAND封装安装在存储卡55上,该NAND封装具有以上实施方式中的至少一个中所描述的认证功能和被认证功能。
[0722]在以上配置中,主机设备20通过以上实施方式中的至少一个中所示的认证过程对NAND闪存10的SecretID的真实性进行核实。
[0723]核实真实性之后,主机设备20基于SecretID使用第二实施方式中描述的方法进行EMID的计算处理。
[0724]在写入内容时生成关联EMID和内容(Content)的绑定数据。绑定数据理想包括对加密/解密内容很关键的数据。绑定数据被记录在存储卡55和HDD210中的一个中。在此显示了后一种例子,但是绑定数据的设置不限于该例子。在存储卡55中或者HDD210中,内容的记录位置相似。
[0725]对内容和EMID之间的关系进行计算和核实,只有在关系被核实的情况下才复制内容。通过对SecretID和绑定数据的认证处理来获得EMID,绑定数据关联EMID和内容。
[0726]本实施方式通过卡插槽550使用存储卡55中的NAND闪存10中包括的认证功能和被认证功能,但是还可以应用至这样一种配置=NAND封装直接嵌入在主机设备20中,并且主机设备20直接控制NAND封装。在这种情况下,存储卡55可以被NAND封装取代。
[0727]此外,作为一个可以应用至包括卡插槽550的主机设备20的应用示例,如果存在多个相似主机设备20,则通过将存储卡55和HDD封装200连接至主机设备20,任何主机设备20都能够复制内容。绑定数据可以记录在卡中,而不是HDD中,或者记录在二者之中。
[0728]通过本配置,内容与存储卡55或NAND封装中的SecretID相关联,由此能够实现即使内容或绑定数据被非法复制到另一个不具有相同SecretID的存储卡,也使内容复制无效的效果。此外,通过移动存储卡55和HDD210,内容能够被多个主机设备复制。
[0729]【第二修改(另一个使用数据缓存的示例)】
[0730]第二修改涉及另一个配置示例,该配置示例使用第六实施方式中所描述的涉及缓存,以进行认证处理。在描述过程中,省略与上述实施方式重叠的那些点。
[0731]<感测放大器和其外围电路的配置示例>
[0732]图45示出了感测放大器和其外围电路的配置示例。如图45所示,在第二修改中,数据缓存12包括数据缓存DC_A、DC_B、DC_C和DC_S,只有DC_S通过列控制电路被连接至数据线并用于与芯片外的单元交换数据。DC_S是锁存器,用于根据数据对感测放大器的运行进行控制。DC_B、DC_C和DC_S并联至DC_A与感测放大器之间的总线(LBUS),并被用作数据缓存,有必要通过DC_A来与外部交换数据。列控制电路将DC_A连接至数据线,DC_A与列地址关联。当NAND闪存用于正常操作时,使用地址控制电路提供的列地址,但是在执行本发明的认证序列时使用操作器指定的地址。能够提供模式转换信号来切换使用正常地址或是操作器指定地址。
[0733]<感测放大器和数据缓存的等效电路示例>
[0734]图46显示了图45中感测放大器77和数据缓存12的等效电路示例。
[0735]尽管描述了某些实施方式,这些实施方式仅以示例方式给出,不对本发明的保护范围构成限制。事实上,在此描述的新实施方式可以通过多种其它形式实现,此外,在不偏离本发明精神的情况下,可以对此处描述的实施方式做出省略,替换和改动。所附权利要求和其等价物应涵盖落入本发明精神范围的这些形式或修改。
【权利要求】
1.一种能够经由控制器与外部设备通信的设备,该设备包括: 存储区,至少包括第一区域、第二区域、以及第三区域,所述第一区域存储第一存储密钥信息(NKey)和唯一的秘密识别信息(SecretID),至少在所述设备被发货之后从外部读取来自所述第一区域的数据被禁止,所述第二区域存储索引信息、和通过对所述秘密识别信息(SecretID)进行加密而生成的加密的秘密识别信息(E-SecretID),从外部读取来自所述第二区域的数据被允许,所述第三区域存储包括通过对识别密钥信息(FKey)进行加密而生成的信息的密钥管理信息(FKB),从外部读取来自所述第三区域的数据和向所述第三区域写入数据被允许;以及 认证模块(认证器),通过使用所述存储区中存储的第一密钥信息(NKey)、索引信息以及密钥管理信息(FKB)来认证所述外部设备; 其中: 第二密钥信息(HKey)是通过使用从所述存储区的第一区域读取的第一密钥信息(NKey)和从所述外部设备接收到的第一数值(HC)进行AES加密计算而生成的; 会话密钥(SKey)是通过使用所述第二密钥信息(HKey)和从所述外部设备接收到的第二数值(RN)进行AES加密计算而生成的; 使用所述会话密钥(SKey)对所述秘密识别信息(SecretID)执行单向转换计算,从而生成单向转换数据(Oneway-1D); 所述加密的秘密识别信息(E-SecretID)、所述密钥管理信息(FKB)以及所述单向转换数据(Oneway-1D)经由所述控制器被输出到所述外部设备;并且 从所述存储区的第二区域读取的索引信息被输出到所述外部设备,并且用于从所述外部设备中存储的外部秘密信息集合(HKeyi,j(i = I,-,m))中选择认证过程所需的外部秘密信息(HKeyi, j)。
【文档编号】G11B20/00GK103999399SQ201280053304
【公开日】2014年8月20日 申请日期:2012年6月15日 优先权日:2011年12月2日
【发明者】长井裕士, 铃木俊宏, 柴田昇, 加藤拓, 松下达之 申请人:株式会社 东芝