快闪存储器存储系统、控制器与数据保护方法 【技术领域】
本发明涉及一种快闪存储器存储系统,且特别涉及一种具有数据保护功能的快闪存储器存储系统以及其控制器与数据保护方法。
背景技术
随着使用者逐渐接受使用电子钱包及预付储值,使得智慧卡的使用日益普及。智慧卡(Smart Card)是具有例如微处理器、卡操作系统、安全模块及存储器的组件的集成电路芯片(IC芯片),以允许持有者执行预定操作。智慧卡提供计算、加密、双向通信及安全功能,使得这张卡片除了存储数据的功能外还能达到对其所存储的数据加以保护的功能。使用全球移动通信系统(GSM)机制的蜂窝式电话中所使用的用户识别模块(SubscriberIdentification Module,SIM)卡为智慧卡的其中一个应用范例。一般来说,智慧卡本身受限于其集成电路的规范,因此存储容量有限。
存储卡是一种数据存储设备,其一般是以NAND快闪存储器作为存储介质。NAND快闪存储器具有可写入、可擦除、以及断电后仍可保存数据的优点,此外,随着制造技术的改良,NAND快闪存储器具有体积小、存取速度快、与耗电量低等优点。因此,近年来此领域技术人员积极研究智慧卡与大容量的存储卡结合的可能性,以扩增智慧卡的存储容量。
然而,在结合智慧卡与存储卡的例子中,安全数据是存储在与智慧卡独立的存储卡中,也就是安全数据并非存储在原设计的集成电路芯片中,因此如何确保存储卡上数据的安全性是此应用能否成功的关键。例如,当使用者在以存储卡为存储介质的智慧卡(例如,商店的预付储值卡)中储值1000元并于使用此智慧卡进行消费时,由于存储卡为独立的电路,因此使用者可在确认智慧卡中存储卡的位置后于消费前将存储卡内的数据进行硬拷贝(hard copy),之后在消费完成后再将硬拷贝的数据回存于存储卡中,由此刷新(refresh)消费前的储值。因此,保护快闪存储器内部数据的安全是此领域技术人员相当重视的课题。
【发明内容】
本发明提供一种快闪存储器存储系统,其能够有效地确保所存储数据的可靠性。
本发明提供一种控制器,其能够有效地确保在一快闪存储器芯片中所存储数据的可靠性。
本发明提供一种数据保护方法,其能够有效地确保在一快闪存储器芯片中所存储数据的可靠性。
本发明提出一种快闪存储器存储系统,其包括控制器与快闪存储器芯片。控制器具有可覆写式非易失性存储器,并且快闪存储器芯片是电性连接至此控制器,其中当控制器写入安全数据至快闪存储器芯片时,则控制器会对所写入的安全数据产生对应的一数据标志、通过一单向杂凑函数(One-Way Hash Function)依据所写入的安全数据与所产生的数据标志来产生对应的讯息摘要、将数据标志存储在可覆写式非易失性存储器中并且将对应的讯息摘要存储在快闪存储器芯片中。此外,当控制器从快闪存储器芯片中处理安全数据时,则控制器会从可覆写式非易失性存储器中读取数据标志、通过单向杂凑函数依据所读取的安全数据与所读取的数据标志来产生一比对讯息摘要、从快闪存储器芯片中读取对应的讯息摘要并且判断对应的讯息摘要与所产生的比对讯息摘要是否相同,以及当控制器判断对应的讯息摘要与所产生的比对讯息摘要不相同时,则控制器会输出一警示讯息。
在本发明的一实施例中,上述的控制器还包括数据标志产生单元,其中此数据标志产生单元用以产生上述数据标志。
在本发明的一实施例中,上述的数据标志产生单元是随机地或依序地产生数据标志。
在本发明的一实施例中,上述的数据标志产生单元是依据控制器所接收的特定数据来产生该数据标志。
在本发明的一实施例中,上述的控制器还包括讯息摘要产生单元,其中此讯息摘要产生单元使用上述单向杂凑函数来产生上述讯息摘要与上述比对讯息摘要。
在本发明的一实施例中,上述的控制器的可覆写式非易失性存储器的容量为16位或32位。
在本发明的一实施例中,上述地单向杂凑函数包括MD5、RIPEMD-160SHA1、SHA-256、SHA-386或SHA-512。
在本发明的一实施例中,上述的快闪存储器存储系统还包括连接器,其是电性连接至上述控制器且用以连接一主机系统。
本发明提出一种控制器,适用于具有一快闪存储器芯片的一快闪存储器存储系统,此控制器包括微处理器单元、可覆写式非易失性存储器、数据标志产生单元、讯息摘要产生单元与快闪存储器接口模块。当微处理器单元写入一安全数据至快闪存储器芯片时,则数据标志产生单元会对所写入的安全数据产生对应的数据标志、讯息摘要产生单元会通过单向杂凑函数(One-Way Hash Function)依据所写入的安全数据与所产生的数据标志来产生对应的讯息摘要、微处理器单元会将数据标志存储在可覆写式非易失性存储器中并且将对应的讯息摘要存储在该快闪存储器芯片中。此外,当微处理器单元从快闪存储器芯片中处理安全数据时,则微处理器单元会从可覆写式非易失性存储器中读取数据标志、讯息摘要产生单元会通过单向杂凑函数依据所读取的安全数据与所读取的数据标志来产生一比对讯息摘要、微处理器单元会从快闪存储器芯片中读取对应的讯息摘要并且判断对应的讯息摘要与所产生的比对讯息摘要是否相同,以及当微处理器单元判断对应的讯息摘要与所产生的比对讯息摘要不相同时,则微处理器单元会输出一警示讯息。
在本发明的一实施例中,上述的数据标志产生单元是随机地或依序地产生数据标志。
在本发明的一实施例中,上述的数据标志产生单元是依据微处理器单元所接收的特定数据来产生数据标志。
在本发明的一实施例中,上述的控制器的可覆写式非易失性存储器的容量为16位或32位。
在本发明的一实施例中,上述的单向杂凑函数包括MD5、RIPEMD-160SHA1、SHA-256、SHA-386或SHA-512。
在本发明的一实施例中,上述的控制器还包括主机接口模块,其电性连接至微处理器单元且用以连接一主机系统。
本发明提出一种数据保护方法,其适用于保护存储在快闪存储器存储系统的快闪存储器芯片中的安全数据,此数据保护方法包括在快闪存储器存储系统的控制器中配置可覆写式非易失性存储器。此数据保护方法也包括当写入安全数据至快闪存储器芯片时,则对所写入的安全数据产生对应的数据标志、使用单向杂凑函数(One-Way Hash Function)依据所写入的安全数据与所产生的数据标志来产生对应的讯息摘要、将数据标志存储在可覆写式非易失性存储器中并且将对应的讯息摘要存储在快闪存储器芯片中。此数据保护方法亦包括当从快闪存储器芯片中读取安全数据时,则从可覆写式非易失性存储器中读取数据标志、使用单向杂凑函数依据所读取的安全数据与所读取的数据标志来产生一比对讯息摘要、从快闪存储器芯片中读取对应的讯息摘要并且判断对应的讯息摘要与所产生的比对讯息摘要是否相同,其中当对应的讯息摘要与所产生的比对讯息摘要不相同时,则输出一警示讯息。
在本发明的一实施例中,上述的对所写入的安全数据产生对应的数据标志的步骤包括随机地或依序地产生此数据标志。
在本发明的一实施例中,上述的对所写入的安全数据产生对应的数据标志的步骤包括依据控制器所接收的特定数据来产生此数据标志。
在本发明的一实施例中,上述的在快闪存储器存储系统的控制中所配置的可覆写式非易失性存储器的配置容量为16位或32位。
在本发明的一实施例中,上述的单向杂凑函数包括MD5、RIPEMD-160SHA1、SHA-256、SHA-386或SHA-512。
本发明因采用由控制器针对每次更新安全数据来产生新的数据标志并且在控制器中使用一可覆写式非易失性存储器来存储所产生的数据标志,因此可利用此数据标志产生的比对讯息摘要来验证安全数据是否被窜改,由此确保安全数据的可靠性。
为让本发明的上述特征和优点能更明显易懂,下文特举优选实施例,并配合附图,作详细说明如下。
【附图说明】
图1是根据本发明一实施例绘示快闪存储器存储系统的概要方块图。
图2(a)~(b)是根据本发明实施例绘示数据保护方法的流程图
图3(a)~(c)是根据本发明实施例绘示判断安全数据的可靠性的示意图。
【主要元件符号说明】
100:快闪存储器存储系统
110:控制器
110a:微处理器单元
110b:快闪存储器接口模块
110c:数据标志产生单元
110d:讯息摘要产生单元
110e:可覆写式非易失性存储器
120:快闪存储器芯片
120’:快闪存储器芯片
200:智慧卡芯片
S201、S203、S205、S207、S211、S213、S215、S217、S219、S221、S223:数据保护步骤
DT1、DT2:数据标志
SD1、SD2:安全数据
M1、M2:讯息摘要
【具体实施方式】
图1是根据本发明一实施例绘示快闪存储器存储系统的概要方块图。请参照图1,快闪存储器存储系统100包括控制器(亦称控制器系统)110以及快闪存储器芯片(flash memory chip)120。
快闪存储器存储系统100具有根据本实施例所设计的数据保护功能,因此,快闪存储器存储系统100可用于存储需保护的安全数据。例如,在本实施例中,快闪存储器存储系统100是用以与智慧卡(smart card)结合作为用以存储智慧卡的安全数据的存储介质。根据本实施例的数据保护方法将于之后详细说明。在本实施例中,快闪存储器存储系统120为小体积的存储卡芯片以方便与目前现行智慧卡芯片200进行结合。但必须了解的是,在本发明另一实施例中快闪存储器存储系统100亦可以是随身盘或固态硬盘(Solid State Drive,SSD),以提供使用者使用随身盘或固态硬盘时可保护使用者的机密数据。
控制器110会执行以硬件型式或固件型式实作的多个逻辑闸或机械指令以对快闪存储器芯片120进行数据的存储、读取与擦除等运作。控制器110包括微处理器单元110a、快闪存储器接口模块110b、数据标志产生单元110c、讯息摘要产生单元110d与可覆写式非易失性存储器110e。
微处理器单元110a用以与快闪存储器接口模块110b、数据标志产生单元110c、讯息摘要产生单元110d与可覆写式非易失性存储器110e协同合作以进行快闪存储器存储系统100的各种运作。特别是,在本实施例中当与快闪存储器存储系统100结合的智慧卡芯片200存取存储在快闪存储器芯片120内的安全数据时,微处理器单元110a会判断所读取的安全数据是否已被非法地窜改,并且当安全数据已被非法地窜改时会向与快闪存储器存储系统100结合的智慧卡芯片200传送警示讯息来告知所读取的安全数据不具可靠性,以避免智慧卡芯片200使用不正确的安全数据来进行相关的运作。
快闪存储器接口模块110b是电性连接至微处理器单元110a并且用以存取快闪存储器芯片120。也就是,欲写入至快闪存储器芯片120的数据会经由快闪存储器接口模块110b转换为快闪存储器芯片120所能接受的格式。
数据标志产生单元110c是电性连接至微处理器单元110a。在本实施例中,数据标志产生单元110c是一随机数产生器,用以在每次微处理器单元110a欲写入安全数据至快闪存储器芯片120时产生对应所写入安全数据的数据标志(Data Token)。具体来说,数据标志是一随机数值,其是用以与所写入安全数据结合以作为产生讯息摘要(message digest)或讯息确认码(Message Authentication Code,MAC)的参数。特别是,微处理器单元110a会将数据标志产生单元110c所产生数据标志存储在可覆写式非易失性存储器110e中,并且之后微处理器单元110a可读取此数据标志来进行安全数据的可靠性验证。
值得一提的是,在本发明另一实施例中,数据标志产生单元110c亦可是依一固定法则或依序产生号码来作为数据标志,例如数据标志产生单元110c会依据流水号1、2、3...作为数据标志。此外,数据标志产生单元110c亦可将微处理器单元110a所接收的一特定数据(例如,此笔数据的处理时间)作为数据标志或者将此特定数据编码后作为数据标志产生单元110c。
讯息摘要产生单元110d电性连接至微处理器单元110a。在本发明实施例中,讯息摘要产生单元110d会将所输入的讯息以单向杂凑函数(One-WayHash Function)来产生讯息摘要。特别是,微处理器单元110a会将讯息摘要产生单元110d所产生讯息摘要存储在快闪存储器芯片120中,并且之后微处理器单元110a可读取此讯息摘要来进行安全数据的可靠性验证。
在本实施例中,是使用SHA-256来实作讯息摘要产生单元110d中的单向杂凑函数。然而,必须了解的是本发明不限于此,在本发明另一实施例中讯息摘要产生单元110d中的单向杂凑函数亦可以MD5、RIPEMD-160SHA1、SHA-386、SHA-512或其他适合的函数来实作。
值得一提的是,在本实施例中,数据标志产生单元110c与讯息摘要产生单元110d是一硬件型式实作在控制器110中。然而,在本发明另一实施例中数据标志产生单元110c与讯息摘要产生单元110d亦可以一固件型式来实作于控制器110中。例如,使用程序语言撰写相关机械指令并且存储于程序存储器(例如,只读存储器(Read Only Memory,ROM))来实作数据标志产生单元110c与讯息摘要产生单元110d于控制器110中。当快闪存储器存储系统100运作时,数据标志产生单元110c与讯息摘要产生单元110d的多个机器指令会间接地被载入至控制器110的缓冲存储器(未绘示)中并且由微处理器单元110a来执行或直接地由微处理器单元110a来执行以完成上述数据保护步骤。
此外,在本发明另一实施例中,数据标志产生单元110c与讯息摘要产生单元110d的机械指令亦可以固件型式存储于快闪存储器芯片120的特定区域(例如,系统区)中。同样的,当快闪存储器存储系统100运作时,数据标志产生单元110c与讯息摘要产生单元110d的多个机器指令可被载入至控制器110的缓冲存储器(未绘示)中并且由微处理器单元110a来执行。
可覆写式非易失性存储器110e电性连接至微处理器单元110a。在本实施例中,可覆写式非易失性存储器110e是用以存储上述数据标志。如上所述,数据标志是用于与所写入的安全数据结合以用作为讯息摘要产生单元110d产生讯息摘要的参数,因此数据标志的数据长度不需很大。基此,在本实施例中可覆写式非易失性存储器110e是以具16位(或36位)存储空间的可覆写非易失性存储器来实作。
虽未绘示于本实施例,但控制器110可还包括缓冲存储器(例如,静态随机存取存储器)、错误校正模块与电源管理模块等用于控制快闪存储器芯片的功能模块。
此外,在本发明另一实施例中,当快闪存储器存储系统100实作为随身盘或固态硬盘时,快闪存储器系统100还包括连接器(未绘示),以连接一主机系统(例如,个人计算机)。同时,控制器110还包括电性连接至微处理器单元110a的主机接口模块(未绘示),以接收与识别主机系统所传送的指令。也就是说,在快闪存储器存储系统100实作为随身盘或固态硬盘的例子中,连接快闪存储器存储系统100的主机系统所传送的指令与数据会通过连接器与主机接口模块传送至微处理器单元110a。例如,连接器与主机接口模块可对应地分别为USB连接器与USB接口、PCI Express连接器与PCI Express接口、IEEE 1394连接器与IEEE 1394接口、SD连接器与SD接口、MS连接器与MS接口、MMC连接器与MMC接口、SATA连接器与SATA接口、PATA连接器与PATA接口、CF连接器与CF接口、IDE连接器与IDE接口或其他适合的连接器与数据传输接口。
基于上述,根据本发明实施例的快闪存储器存储系统100在执行安全数据的写入运作时,数据标志产生单元110c会随机地产生对应所写入的安全数据的数据标志、讯息摘要产生单元110d会依据所写入的安全数据与对应的数据标志来产生讯息摘要并且微处理器单元110a会将安全数据与讯息摘要存储在快闪存储器芯片120中,并且将所产生的数据标志存储在控制器110的可覆写式非易失性存储器110e中。之后,当快闪存储器存储系统100在执行安全数据的读取运作时,微处理器单元110a会读取存储在快闪存储器芯片120中的安全数据与讯息摘要以及读取存储在可覆写式非易失性存储器110e中的数据标志,并且讯息摘要产生单元110d会依据微处理器单元110a所读取的安全数据与数据标志产生比对讯息摘要,由此微处理器单元110a则可依据所计算的比对讯息摘要与所读取的讯息摘要来确认安全数据是否为可靠。以下将配合附图详细说明根据本发明实施例的数据保护方法。
图2是根据本发明实施例绘示数据保护方法的流程图,并且图3是根据本发明实施例绘示判断安全数据的可靠性的示意图。
请参照图2的(a)与图3的(a),当智慧卡芯片200请求控制器110的微处理器单元110a在快闪存储器芯片120中写入安全数据(例如,图3所示的安全数据SD1)时,在步骤S201中控制器110的数据标志产生单元110c会随机地产生一随机数作为对应所写入的安全数据的数据标志并且微处理器单元110a会将所产生的数据标志存储在可覆写式非易失性存储器110e中(例如,图3所示的数据标志DT1)。具体来说,数据标志产生单元110c会在每次写入(或更新)安全数据时随机地产生一组不同的数据标志。
接着,在步骤S203中微处理器单元110a会将所写入的安全数据与所产生的数据标志结合并传送至讯息摘要产生单元110d。之后,在步骤S205中讯息摘要产生单元110d会依据所写入的安全数据与所产生的数据标志使用单向杂凑函数来产生对应的讯息摘要。
最后,在步骤S207中微处理器单元110a会将所产生的讯息摘要存储至快闪存储器芯片120中(例如,图3所示的讯息摘要M1)。
之后,当与快闪存储器系统100结合的智慧卡芯片200欲读取安全数据(例如,图3所示的安全数据SD1)时,请参照图2的(b),在步骤S211中控制器110的微处理器单元110a会从快闪存储器芯片120中读取安全数据(例如,图3所示的安全数据SD1)与讯息摘要(例如,图3所示的讯息摘要M1)。
接着,在步骤S213中控制器110的微处理器单元110a会从可覆写式非易失性存储器110e中读取数据标志(例如,图3所示的数据标志DT1)。
之后,在步骤S215中微处理器单元110a会将所读取的安全数据与所读取的数据标志结合并传送至讯息摘要产生单元110d,并且在步骤S217中讯息摘要产生单元110d会依据所接收的安全数据与数据标志使用单向杂凑函数来产生比对讯息摘要并且将比对讯息摘要传送给微处理器单元110a。
在步骤S219中控制器110的微处理器单元110a会判断所读取的讯息摘要与讯息摘要产生单元110d所产生的比对讯息摘要是否相同。
倘若在步骤S219中,微处理器单元110a判断所读取的讯息摘要与讯息摘要产生单元110d所产生的比对讯息摘要相同时,则在步骤S221中控制器110正常地将安全数据传送给智慧卡芯片200。
倘若在步骤S219中,微处理器单元110a判断所读取的讯息摘要与讯息摘要产生单元110d所产生的比对讯息摘要不相同时,则在步骤S223中控制器110会传送警示讯息给智慧卡芯片200,以告知安全数据已被非法地窜改。例如,在读取图3的(a)中安全数据SD1时,由于微处理器单元110a会判断依据所读取的安全数据SD1与数据标志DT1所计算的比对讯息摘要是相同于所读取的讯息摘要M1,因此控制器110会正常地将安全数据传送给智慧卡芯片200。
请参照图3的(b),当使用者使用智慧卡进行交易时,快闪存储器存储系统100的控制器110会如图2的(a)的步骤所示将快闪存储器芯片120中的安全数据SD1更新为安全数据SD2、重新产生数据标志DT2以取代可覆写非易失性存储器中的数据标志DT1并且产生新的讯息摘要M2以取代快闪存储器芯片120中的讯息摘要M1。
请参照图3的(c),倘若使用者在进行图3的(b)所示的交易前将图3的(a)所示的快闪存储器芯片120中所存储的安全数据SD1与讯息摘要M1进行硬拷贝(hard copy)存储于快闪存储器芯片120’中,并且在图3的(b)所示的交易之后回存于快闪存储器芯片120时,则快闪存储器芯片120中的安全数据SD2与讯息摘要M2将会被窜改为交易前的安全数据SD1与讯息摘要M1。
在图3的(c)的状态下,倘若智慧卡芯片读取欲读取安全数据时,快闪存储器存储系统100的控制器110会如图2的(b)的步骤依据安全数据SD1与数据标志DT2来计算比对讯息摘要。此时,由于快闪存储器芯片120中的讯息摘要M1是依据安全数据SD1与数据标志DT1所产生,因此依据安全数据SD1与数据标志DT2所计算的比对讯息摘要必定不同于中的讯息摘要M1,因此控制器110会传送警示讯息给智慧卡芯片200,以告知安全数据已被非法地窜改(如图2的(b)的步骤S223)。
在本发明另一实施例中,为避免前后两个数据标志有碰撞(即,相同)的机会,在图2的(a)的步骤S201中还包括在所产生的数据标志与原数据标志相同时重新产生数据标志。
此外,本实施例图2所述步骤的顺序并非限定本发明,本领域技术人员可根据本发明的精神轻易地以非本实施例所述的顺序来实作本发明。
综上所述,本发明在快闪存储器存储系统的控制器中实作一可覆写非易失性存储器来存储一个属于随机数的数据标志,并且依据此数据标志与所写入的安全数据来产生用于验证的讯息摘要。因此,当数据窜改者使用硬拷贝方式刷新快闪存储器芯片中的安全数据时,控制器可依据数据标志所计算的比对讯息摘要来判断安全数据是否已被窜改。基此,可有效地确保在快闪存储器存储系统中存储安全数据的可靠性,由此可在结合快闪存储器与智慧卡的应用中有效保护安全数据。
虽然本发明已以优选实施例公开如上,然其并非用以限定本发明,本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范围当视所附权利要求书所界定者为准。