专利名称:固态硬盘数据加解密的方法及其固态硬盘的制作方法
技术领域:
本发明涉及存储技术领域,尤其涉及一种固态硬盘数据加解密的方法及其固态硬盘。
背景技术:
固态硬盘(Solid State Disk)是由控制单元和存储单元(FLASH芯片)组成,简单的说就是用固态电子存储芯片阵列而制成的硬盘。目前最大容量为IT以上,固态硬盘的接口规范和定义、功能及使用方法上与普通硬盘的完全相同,在产品外形和尺寸上也完全与普通硬盘一致。广泛应用于军事、车载、工控、视频监控、网络监控、网络终端、电力、医疗、 航空等、导航设备等领域。目前,固态硬盘用户对数据安全性的要求越来越高。现有技术方案主要关注 Password存储的安全性,以及用户认证过程的安全性。并且现有固态硬盘的数据加密方式并非全盘加密,因此,容易产生数据丢失的情况,其保密性能较弱。另外,在固态硬盘多类数据均采用一个密码进行加密,容易使其密码丢失时,所有类别的数据都会遭到窃取。综上可知,现有固态硬盘数据加解密的技术在实际使用上,显然存在不便与缺陷, 所以有必要加以改进。
发明内容
针对上述的缺陷,本发明的目的在于提供一种固态硬盘数据加解密的方法及其固态硬盘,以提高固态硬盘存储数据的安全性。为了实现上述目的,本发明提供一种固态硬盘数据加解密的方法,所述方法包括如下步骤将固态硬盘的至少一个物理页地址切分为至少一个逻辑上独立的逻辑页地址;将不同来源的数据采用不同的密钥加密;将所述加密后的所述不同来源的数据存储到所述至少一个物理页地址。根据所述的方法,所述不同来源的数据包括元数据和逻辑页地址数据;在所述将不同来源的数据采用不同的密钥加密的步骤之前包括写入所述元数据的元数据密钥和所述逻辑页地址数据的逻辑页地址数据密钥,以及根据所述元数据的自描述信息设定所述元数据密钥对应的元数据密钥编号和所述逻辑页地址数据密钥对应的逻辑页地址数据密钥编号;所述将不同来源的数据采用不同的密钥加密的步骤包括根据所述元数据密钥编号获取所述元数据密钥,并解析所述元数据获取所述逻辑页地址数据密钥编号;根据所述逻辑页地址数据密钥编号,获取对应的逻辑页地址数据密钥;采用所述元数据密钥加密所述元数据获得所述元数据的密文,以及采用所述逻辑页地址数据密钥加密所述逻辑页地址数据获得所述逻辑页地址数据的密文;
所述将所述加密后的所述不同来源的数据存储到所述至少一个物理页地址的步骤包括将所述元数据的密文和所述逻辑页地址数据的密文存储到所述至少一个物理页地址。根据所述的方法,在所述将固态硬盘的至少一个物理页地址切分为至少一个逻辑上独立的逻辑页地址的步骤中,所述至少一个逻辑页地址包括多个,每个所述逻辑页地址的大小相等;每个所述不同来源的数据分别存储于一个所述逻辑页地址中;在所述将所述加密后的所述不同来源的数据存储到所述多个逻辑页地址的步骤之后包括 解密所述加密后的所述不同来源的数据。根据所述的方法,所述解密所述加密后的所述不同来源的数据的步骤包括接收读取所述逻辑页地址数据的指令;采用所述元数据密钥解密所述元数据的密文,获得所述元数据的明文;对所述元数据的明文进行解析,获得所述逻辑页地址数据密钥编号;采用所述逻辑页地址数据密钥编号对应的逻辑页地址数据密钥对所述逻辑页地址数据的密文进行解密,获得所述逻辑页地址数据的明文。根据所述的方法,在所述采用所述逻辑页地址数据密钥编号对应的逻辑页地址数据密钥对所述逻辑页地址数据的密文进行解密,获得所述逻辑页地址数据的明文的步骤之后还包括指定所述逻辑页地址数据的明文需要存储的所述已切分的至少一个物理页地址;将所述逻辑页地址数据的明文加密后存储到所述已切分的至少一个物理页地址;所述逻辑页地址数据包括用户数据和管理数据;所述逻辑页地址数据密钥包括用户数据密钥和管理数据密钥;所述逻辑页地址数据密钥编号包括用户数据密钥编号和管理数据密钥编号;所述将所述加密后的所述不同来源的数据存储到所述至少一个物理页地址的步骤之后还包括擦除所述用户数据密钥的信息;采用无效密钥信息覆盖所述用户数据密钥的信息。一种固态硬盘,包括切分模块,用于将固态硬盘的至少一个物理页地址切分为至少一个逻辑上独立的逻辑页地址;加密模块,用于将不同来源的数据采用不同的密钥加密;存储模块,用于将所述加密后的所述不同来源的数据存储到所述至少一个物理页地址。根据所述的固态硬盘,所述不同来源的数据包括元数据和逻辑页地址数据;所述固态硬盘还包括初始化模块,用于写入所述元数据的元数据密钥和所述逻辑页地址数据的逻辑页地址数据密钥,以及根据所述元数据的自描述信息设定所述元数据密钥对应的元数据密钥编号和所述逻辑页地址数据密钥对应的逻辑页地址数据密钥编号;所述加密模块包括指定子模块,用于为所述逻辑页地址数据指定至少一个所述物理页地址;第一解析子模块,用于根据所述元数据密钥编号获取所述元数据密钥,并解析所述元数据获取所述逻辑页地址数据密钥编号;第二解析子模块,根据所述逻辑页地址数据密钥编号,获取对应的逻辑页地址数据S钥;加密子模块,用于采用所述元数据密钥加密所述元数据获得所述元数据的密文, 以及采用所述逻辑页地址数据密钥加密所述逻辑页地址数据获得所述逻辑页地址数据的密文。根据所述的固态硬盘,至少一个所述逻辑页地址包括多个,每个所述逻辑页地址的大小相等;所述存储模块将每个所述不同来源的数据分别存储于一个所述逻辑页地址中;所述固态硬盘还包括解密模块,用于解密所述加密后的所述不同来源的数据。根据所述的固态硬盘,所述解密模块包括接收子模块,用于接收读取所述逻辑页地址数据的指令;解密子模块,采用所述元数据密钥解密所述元数据的密文,获得所述元数据的明文;第三解析子模块,用于对所述元数据的明文进行解析,获得所述逻辑页地址数据密钥编号;第四解析子模块,用于采用所述逻辑页地址数据密钥编号对应的逻辑页地址数据密钥对所述逻辑页地址数据的密文进行解密,获得所述逻辑页地址数据的明文。根据所述的固态硬盘,所述逻辑页地址数据包括用户数据和管理数据;所述逻辑页地址数据密钥包括用户数据密钥和管理数据密钥;所述逻辑页地址数据密钥编号包括用户数据密钥编号和管理数据密钥编号;所述固态硬盘还包括擦除模块,用于擦除所述初始化模块中的用户数据密钥的信息;覆盖模块,用于采用无效密钥信息覆盖所述初始化模块中的用户数据密钥的信肩、O本发明通过将固态硬盘的至少一个物理页地址切分为至少一个逻辑上独立的逻辑页地址;将不同来源的数据采用不同的密钥加密;并且将所述加密后的所述不同来源的数据存储到所述至少一个物理页地址,提高了固态硬盘的存储数据的安全性以及灵活性。 进一步的,还引入逻辑页地址级别数据自描述概念,使得在不知道物理页地址内数据具体构成的情况下,也可以正确的将数据读出解密,使其固态硬盘的使用更为方便。
图I是本发明第一实施例提供的固态硬盘的结构示意图;图2是本发明第二实施例提供的固态硬盘的结构示意图3是本发明第三、四实施例提供的固态硬盘的结构示意图;图4是本发明第五实施例提供的固态硬盘的结构示意图;图5是本发明一个实施例提供的不同来源的数据存储示意图;图6是本发明第六实施例提供的固态硬盘数据加解密的方法流程图;图7是本发明一个实施例提供的数据存储与现有技术中的数据存储的比较示意图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。参见图I,本发明的第一实施例提供了一种固态硬盘100,包括切分模块10,用于将固态硬盘100的至少一个物理页地址切分为至少一个逻辑上独立的逻辑页地址;加密模块20,用于将不同来源的数据采用不同的密钥加密;存储模块30,用于将所述加密后的所述不同来源的数据存储到所述至少一个物理页地址。在该实施例中,通过切分模块10将固态硬盘100的至少一个物理页地址切分为至少一个逻辑上独立的逻辑页地址,可以根据具体的物理页地址的大小的情况进行分割。 还也切分为多个,每个所述逻辑页地址的大小相等;然后加密模块20将不同来源的数据采用不同的密钥加密后,存储模块30将每个所述不同来源的数据分别存储于一个所述多个逻辑页地址。在该实施例中,可以是固态硬盘100中所有的物理页地址均切分成多个逻辑页地址,也可以只有一个物理页地址进行切分。每个物理页地址中的逻辑页地址的大小可以不一样或者都一样,以适应存储不同大小的数据;还可以实现全盘加密,以提高固态硬盘 100数据存储的安全性。参见图5,在本发明的一个具体实施例中,所述不同来源的数据包括元数据和逻辑页地址数据。NAND FLASH(固态硬盘闪存)颗粒以单个PPA(Physical Page Address,物理页地址)作为读写单元,FTL(Flash Translation Layer,闪存转换层)的读写以LPA(Logical Page Address,逻辑页地址)为单元。假定物理页地址为16KB,逻辑页地址为4KB。将16KB 的物理页地址切分为4个逻辑上独立的逻辑页地址分别进行映射管理。这样单个物理页地址内会混合不同的数据。比如其中一个为逻辑页地址_0的数据,一个为逻辑页地址_10的数据,另外两个为FTL管理数据。在对数据加密的情况下,不同来源的数据使用不同密钥可以增加数据安全性及灵活性。并且如图7所示,将一个物理页地址切分为至少一个逻辑上独立的逻辑页地址后再存储数据,可以节省两个物理页地址,提高了存储效率。参见图2,在本发明的第二实施例中,固态硬盘100还包括初始化模块80,用于写入所述元数据的元数据密钥和所述逻辑页地址数据的逻辑页地址数据密钥,以及根据所述元数据的自描述信息设定所述元数据密钥对应的元数据密钥编号和所述逻辑页地址数据密钥对应的逻辑页地址数据密钥编号;而加密模块20包括
8
指定子模块25,用于为所述逻辑页地址数据指定至少一个所述物理页地址;第一解析子模块22,用于根据所述元数据密钥编号获取所述元数据密钥,并解析所述元数据获取所述逻辑页地址数据密钥编号;第二解析子模块23,根据所述逻辑页地址数据密钥编号,获取对应的逻辑页地址数据密钥;加密子模块24,用于采用所述元数据密钥加密所述元数据获得所述元数据的密文,以及采用所述逻辑页地址数据密钥加密所述逻辑页地址数据获得所述逻辑页地址数据的密文;存储模块30将所述元数据的密文和所述逻辑页地址数据的密文存储到所述至少一个物理页地址。在该实施例中,在固态硬盘100初始化时,初始化模块80首先写入元数据密钥和逻辑页地址数据密钥,并且根据元数据的自描述信息对这些密钥进行系统的编号,将各密钥对应不同的编号。然后在解密逻辑页地址数据时,由于系统知道元数据的来源,因此第一解析子模块22可以根据所述元数据密钥编号获取所述元数据密钥,再通过解析所述元数据获取所述逻辑页地址数据密钥编号;进一步的第二解析子模块23根据所述逻辑页地址数据密钥编号,解析获取对应的逻辑页地址数据密钥;最后加密子模块24采用所述元数据密钥加密所述元数据获得所述元数据的密文,以及采用所述逻辑页地址数据密钥加密所述逻辑页地址数据获得所述逻辑页地址数据的密文。存储模块30将所述元数据的密文和所述逻辑页地址数据的密文存储到指定子模块25指定的所述至少一个物理页地址。具体的, 存储模块30将所述元数据的密文和所述逻辑页地址数据的密文分别存储于一个所述至少一个物理页地址切分后的逻辑页地址中的。在本发明的一个优选实施例中,所述逻辑页地址数据包括用户数据和管理数据; 所述逻辑页地址数据密钥包括用户数据密钥和管理数据密钥;所述逻辑页地址数据密钥编号包括用户数据密钥编号和管理数据密钥编号;初始化模块80用于不同来源数据的密钥的初始化。在固态硬盘100初始化时,初始化模块80会将管理数据密钥(MNG_KEY)、元数据密钥(META_KEY)、用户数据密钥(USER_ KEY)写入加密模块20和解密模块40。之后就由约定的密钥编号(KEY_SEL)来代表对应的密钥。在数据加密时,由于固态硬盘100知道数据的来源,由此确定对应的KEY_SEL,并将该信息记录在逻辑页地址对应的元数据中。第一解析子模块22会先拿到元数据,从中解析出逻辑页地址数据对应的KEY_SEL,第二解析子模块23由此就可对应到KEY。逻辑页地址数据按从元数据中解析出的KEY_SEL,通过加密子模块24使用对应的KEY进行加密。而对于元数据,加密子模块24按约定使用META_KEY进行加密。存储模块30将加密后的逻辑页地址数据和元数据写入指定子模块25指定的物理页地址。参见图3,在本发明的第三实施例中,固态硬盘100还包括解密模块40,用于解密所述加密后的所述不同来源的数据。在上述数据加密后,需要查看数据时,需要进行解密的操作,该操作通过解密模块 40实现。参见图3,在本发明的第四实施例中,解密模块40包括
接收子模块41,用于接收读取所述逻辑页地址数据的指令;解密子模块42,采用所述元数据密钥解密所述元数据的密文,获得所述元数据的明文;第三解析子模块43,用于对所述元数据的明文进行解析,获得所述逻辑页地址数据密钥编号;第四解析子模块44,用于采用所述逻辑页地址数据密钥编号对应的逻辑页地址数据密钥对所述逻辑页地址数据的密文进行解密,获得所述逻辑页地址数据的明文。在该实施例中,接收子模块41接收读取所述逻辑页地址数据的指令后,需要通过解密子模块42先读取加密后的元数据,并按约定使用META_KEY进行解密获得元数据的明文。然后通过第三解析子模块43从元数据的明文中解析出逻辑页地址数据对应的KEY_ SEL0最后通过第四解析子模块44按照从元数据的明文中解析出的KEY_SEL获得对应KEY, 使用对应的KEY对逻辑页地址数据进行解密。从上述几个实施例中可知,元数据是解密过程的起点。因此,即便某些非法用户获得了元数据的明文,如果不了解其数据格式,也拿不到对应逻辑页地址数据的KEY_SEL信息。即便碰巧获得了 KEY_SEL,也仍然不知道对应的KEY。所以仍然无法解密逻辑页地址数据。因此,固态硬盘100上存储的数据具有高度的安全性。参见图4,在本发明的第五实施例中,固态硬盘100还包括擦除模块60,用于擦除初始化模块80中的用户数据密钥的信息;覆盖模块70,用于采用INVALID_KEY (无效密钥信息)覆盖初始化模块80中的用户数据密钥的信息。在该实施例中,可以实现PPA级别的数据的搬移。首先可以由指定子模块25指定需要读取的物理页地址,然后进行NAND FLASH的物理页地址读操作,解密模块40先获得元数据的密文,使用约定元数据的META_KEY进行解密,获得元数据的明文;然后通过对元数据明文的解析获得对应的逻辑页地址数据的KEY_SEL信息;解密模块40再将逻辑页地址数据的KEY_SEL对应的KEY对逻辑页地址数据的密文进行解密,获得逻辑页地址数据的明文。至此,可获得物理页地址内逻辑页地址的构成信息后,即获得物理页地址内的元数据及其对应的PLA数据的明文后,重新为读出的逻辑页地址数据指定新的物理页地址映射地址,然后存储模块30将加密后的数据写出到指定子模块25指定的新的物理页地址。另外,本发明一个实施例提供的固态硬盘100还可以通过擦除模块60擦除初始化模块80中的用户数据密钥的信息;以及覆盖模块70采用无效密钥信息覆盖初始化模块80中的用户数据密钥的信息的操作后。在物理页地址内的用户数据在解密时,会使用 INVALID_KEY进行解密,无法正确恢复出用户数据的明文,但物理页地址内的数据,例如元数据和管理数据多不受影响。因此,在该实施例中,通过销毁USER_KEY可以快速的销毁用户数据。而在现有技术中,如果对不同来源数据使用统一的KEY,在该KEY被销毁掉后,其它管理数据也会丢失。因此,固态硬盘100具有优越的灵活性,其这种特性可以方便FTL在进行损耗均衡、垃圾回收、数据搬移时,直接在物理页地址级别进行读操作,无需预先了解所读取物理页地址内的数据构成,无需为其指定对应的密钥。参见图6,在本发明的第六实施例中,提供了一种固态硬盘数据加解密的方法,所述方法包括如下步骤
步骤S601中,切分模块10将固态硬盘100的至少一个物理页地址切分为至少一个逻辑上独立的逻辑页地址;步骤S602中,加密模块20将不同来源的数据采用不同的密钥加密;步骤S603中,存储模块30将所述加密后的所述不同来源的数据存储到所述至少一个物理页地址。在该实施里中,通过将切分模块10将固态硬盘100的至少一个物理页地址切分为至少一个逻辑上独立的逻辑页地址;具有的,可以是如16KB的物理页地址切分为4个逻辑上独立的逻辑页地址分别进行映射管理。还可以是一个16KB的物理页地址切分为2个逻辑上独立的8KB逻辑页地址;或者16KB物理页地址直接对应一个16KB逻辑页地址。这些切分方式将数据的最小单元提高到8K/16KB,会影响小颗粒度数据读写操作的效率。优选的,为了提高 4KB 级别数据的写效率。4KB IOPS (Input/Output Operations Per Second, 每秒进行读写I/O操作的次数)得分是一项重要的SSD性能指标。通过将一个16KB的物理页地址切分为4个独立的4KB逻辑页地址,可以降低4KB数据写入时的额外负担。在本发明的一个实施例中,在步骤S602之前包括初始化模块80写入所述元数据的元数据密钥和所述逻辑页地址数据的逻辑页地址数据密钥,以及根据所述元数据的自描述信息设定所述元数据密钥对应的元数据密钥编号和所述逻辑页地址数据密钥对应的逻辑页地址数据密钥编号的步骤;所述步骤S602包括第一解析子模块22根据所述元数据密钥编号获取所述元数据密钥,并解析所述元数据获取所述逻辑页地址数据密钥编号;第二解析子模块23根据所述逻辑页地址数据密钥编号,获取对应的逻辑页地址数据密钥;加密子模块24采用所述元数据密钥加密所述元数据获得所述元数据的密文,以及采用所述逻辑页地址数据密钥加密所述逻辑页地址数据获得所述逻辑页地址数据的密文;所述步骤S603包括存储模块30将所述元数据的密文和所述逻辑页地址数据的密文存储到所述至少一个物理页地址。在该实施例中,所述不同来源的数据包括元数据和逻辑页地址数据;所述逻辑页地址数据包括用户数据和管理数据;所述逻辑页地址数据密钥包括用户数据密钥和管理数据密钥;所述逻辑页地址数据密钥编号包括用户数据密钥编号和管理数据密钥编号;单个物理页地址内会混合不同的数据写入NANDFLASH的数据来源有多种,比如用户数据、FTL管理数据(例如块擦除次数记录表)、SATA LOG数据。比如用户先写了两笔逻辑页地址数据,然后FTL写了一笔管理数据,然后SATA写了一笔LOG数据。虽然这四笔数据操作的是不同的逻辑页地址,但有可能会被拼在一起写入一个物理页地址。这样单个物理页地址内就混合了不同的数据。不同来源的数据使用不同密钥。单个物理页地址内会混合多种数据,比如用户数据和管理数据需要写入固态硬盘100,这些数据的写操作被合并映射到同一个物理页地址内,则为这些逻辑页地址数据构造对应的元数据,包括KEY_SEL、LBA等信息。 然后不同的数据分别使用不同的密钥进行加解密。用户数据会使用USER_KEY及其对应的 LBA(Logical Block Address,逻辑块地址)作为密钥进行加密;管理数据会使用MNG_KEY 及物理页地址作为密钥进行加密;元数据会使用META_KEY和物理页地址作为密钥进行加密,完成加密后再进行固态硬盘100的写操作。在该实施例中,只有在破解元数据格式后才能知道对应数据的类型及其密钥的选择。由于元数据的存在,物理页地址内数据的构成在逻辑页地址级别是自描述。使得软件可以在不知道物理页地址内具体数据构成的情况下, 可以正确的读出任意物理页地址内的加密数据。这种特性可以方便FTL在进行损耗均衡、 垃圾回收、数据搬移时,直接在物理页地址级别进行读操作,无需预先了解所读取物理页地址内的数据构成,无需为其指定对应的密钥。在本发明的一个实施例中,图7描述了 4笔逻辑页地址数据写入操作,在现有技术中物理页地址不做切分和在本发明的实施例中物理页地址做切分的不同数据的存储表现。 可以看到,由于物理页地址被切分为4个独立的逻辑页地址分别进行管理,所以这4标数据可以合并写入一个物理页地址内,不会造成额外的写方法。而若物理页地址不做切分,要求单个物理页地址内逻辑页地址为逻辑连续,结果这4笔数据会被写入不同的物理页地址内,额外多消耗两个物理页地址。因此,本实施提供的将物理页地址做切分的不同数据的存储表现优越。在本发明的第七实施例中,所述将固态硬盘100的至少一个物理页地址切分为至少一个逻辑上独立的逻辑页地址的步骤中,所述至少一个逻辑页地址包括多个,每个所述逻辑页地址的大小相等;每个所述不同来源的数据分别存储于一个所述逻辑页地址中。逻辑页地址的大小可以根据具体的物理页地址的大小及数据存储需要的情况进行分割。在所述步骤S603之后包括解密模块40解密所述加密后的所述不同来源的数据的步骤。具体的,所述步骤S603包括接收子模块41接收读取所述逻辑页地址数据的指令; 解密子模块42采用所述元数据密钥解密所述元数据的密文,获得所述元数据的明文;第三解析子模块43对所述元数据的明文进行解析,获得所述逻辑页地址数据密钥编号;第四解析子模块44采用所述逻辑页地址数据密钥编号对应的逻辑页地址数据密钥对所述逻辑页地址数据的密文进行解密,获得所述逻辑页地址数据的明文。当固态硬盘100接收到读取用户数据或者管理数据的指令时,这些多个数据都指向同一个物理页地址,则固态硬盘100开始执行读操作。解密模块40先获得元数据的密文, 使用约定元数据的META_KEY进行解密,获得元数据的明文;然后通过对元数据明文的解析获得对应的逻辑页地址数据的KEY_SEL信息;解密模块40再将逻辑页地址数据的KEY_SEL 对应的KEY对逻辑页地址数据的密文进行解密,获得逻辑页地址数据的明文。在本发明的一个优选实施例中,在所述采用所述逻辑页地址数据密钥编号对应的逻辑页地址数据密钥对所述逻辑页地址数据的密文进行解密,获得所述逻辑页地址数据的明文的步骤之后还包括指定子模块25指定所述逻辑页地址数据的明文需要存储的所述已切分的至少一个物理页地址;存储模块30将所述逻辑页地址数据的明文加密后存储到所述已切分的至少一个物理页地址;实现了 PPA级别的数据搬移。所述步骤S603之后还包括擦除模块60擦除所述用户数据密钥的信息;覆盖模块70采用无效密钥信息覆盖所述用户数据密钥的信息。通过这样的方式可以保证如用户数据删除后其他逻辑页地址数据仍然可保留。因此,本实施例中引入LPA级别数据自描述概念使得在不知道PPA内数据具体构成的情况下,也可以正确的将数据读出解密。综上所述,本发明通过将固态硬盘的至少一个物理页地址切分为至少一个逻辑上独立的逻辑页地址;将不同来源的数据采用不同的密钥加密;并且将所述加密后的所述不同来源的数据存储到所述至少一个物理页地址,提高了固态硬盘的存储数据的安全性以及灵活性。进一步的,还引入逻辑页地址级别数据自描述概念,使得在不知道物理页地址内数据具体构成的情况下,也可以正确的将数据读出解密,使其固态硬盘的使用更为方便。当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种固态硬盘数据加解密的方法,其特征在于,所述方法包括如下步骤将固态硬盘的至少一个物理页地址切分为至少一个逻辑上独立的逻辑页地址;将不同来源的数据采用不同的密钥加密;将所述加密后的所述不同来源的数据存储到所述至少一个物理页地址。
2.根据权利要求I所述的方法,其特征在于,所述不同来源的数据包括元数据和逻辑页地址数据;在所述将不同来源的数据采用不同的密钥加密的步骤之前包括写入所述元数据的元数据密钥和所述逻辑页地址数据的逻辑页地址数据密钥,以及根据所述元数据的自描述信息设定所述元数据密钥对应的元数据密钥编号和所述逻辑页地址数据密钥对应的逻辑页地址数据密钥编号;所述将不同来源的数据采用不同的密钥加密的步骤包括根据所述元数据密钥编号获取所述元数据密钥,并解析所述元数据获取所述逻辑页地址数据密钥编号;根据所述逻辑页地址数据密钥编号,获取对应的逻辑页地址数据密钥;采用所述元数据密钥加密所述元数据获得所述元数据的密文,以及采用所述逻辑页地址数据密钥加密所述逻辑页地址数据获得所述逻辑页地址数据的密文;所述将所述加密后的所述不同来源的数据存储到所述至少一个物理页地址的步骤包括将所述元数据的密文和所述逻辑页地址数据的密文存储到所述至少一个物理页地址。
3.根据权利要求2所述的方法,其特征在于,在所述将固态硬盘的至少一个物理页地址切分为至少一个逻辑上独立的逻辑页地址的步骤中,至少一个所述逻辑页地址包括多个,每个所述逻辑页地址的大小相等;每个所述不同来源的数据分别存储于一个所述逻辑页地址中;在所述将所述加密后的所述不同来源的数据存储到所述至少一个物理页地址的步骤之后包括解密所述加密后的所述不同来源的数据。
4.根据权利要求3所述的方法,其特征在于,所述解密所述加密后的所述不同来源的数据的步骤包括接收读取所述逻辑页地址数据的指令;采用所述元数据密钥解密所述元数据的密文,获得所述元数据的明文;对所述元数据的明文进行解析,获得所述逻辑页地址数据密钥编号;采用所述逻辑页地址数据密钥编号对应的逻辑页地址数据密钥对所述逻辑页地址数据的密文进行解密,获得所述逻辑页地址数据的明文。
5.根据权利要求3所述的方法,其特征在于,在所述采用所述逻辑页地址数据密钥编号对应的逻辑页地址数据密钥对所述逻辑页地址数据的密文进行解密,获得所述逻辑页地址数据的明文的步骤之后还包括指定所述逻辑页地址数据的明文需要存储的所述已切分的至少一个物理页地址;将所述逻辑页地址数据的明文加密后存储到所述已切分的至少一个物理页地址;所述逻辑页地址数据包括用户数据和管理数据;所述逻辑页地址数据密钥包括用户数据密钥和管理数据密钥;所述逻辑页地址数据密钥编号包括用户数据密钥编号和管理数据密钥编号;所述将所述加密后的所述不同来源的数据存储到所述至少一个物理页地址的步骤之后还包括擦除所述用户数据密钥的信息;采用无效密钥信息覆盖所述用户数据密钥的信息。
6.一种固态硬盘,其特征在于,包括切分模块,用于将固态硬盘的至少一个物理页地址切分为至少一个逻辑上独立的逻辑页地址;加密模块,用于将不同来源的数据采用不同的密钥加密;存储模块,用于将所述加密后的所述不同来源的数据存储到所述至少一个物理页地址。
7.根据权利要求6所述的固态硬盘,其特征在于,所述不同来源的数据包括元数据和逻辑页地址数据;所述固态硬盘还包括初始化模块,用于写入所述元数据的元数据密钥和所述逻辑页地址数据的逻辑页地址数据密钥,以及根据所述元数据的自描述信息设定所述元数据密钥对应的元数据密钥编号和所述逻辑页地址数据密钥对应的逻辑页地址数据密钥编号;所述加密模块包括指定子模块,用于为所述逻辑页地址数据指定至少一个所述物理页地址;第一解析子模块,用于根据所述元数据密钥编号获取所述元数据密钥,并解析所述元数据获取所述逻辑页地址数据密钥编号;第二解析子模块,根据所述逻辑页地址数据密钥编号,获取对应的逻辑页地址数据密钥;加密子模块,用于采用所述元数据密钥加密所述元数据获得所述元数据的密文,以及采用所述逻辑页地址数据密钥加密所述逻辑页地址数据获得所述逻辑页地址数据的密文。
8.根据权利要求7所述的固态硬盘,其特征在于,所述至少一个逻辑页地址包括多个, 每个所述逻辑页地址的大小相等;所述存储模块将每个所述不同来源的数据分别存储于一个所述逻辑页地址中;所述固态硬盘还包括解密模块,用于解密所述加密后的所述不同来源的数据。
9.根据权利要求8所述的固态硬盘,其特征在于,所述解密模块包括接收子模块,用于接收读取所述逻辑页地址数据的指令;解密子模块,采用所述元数据密钥解密所述元数据的密文,获得所述元数据的明文; 第三解析子模块,用于对所述元数据的明文进行解析,获得所述逻辑页地址数据密钥编号;第四解析子模块,用于采用所述逻辑页地址数据密钥编号对应的逻辑页地址数据密钥对所述逻辑页地址数据的密文进行解密,获得所述逻辑页地址数据的明文。
10.根据权利要求8所述的固态硬盘,其特征在于,所述逻辑页地址数据包括用户数据和管理数据;所述逻辑页地址数据密钥包括用户数据密钥和管理数据密钥;所述逻辑页地址数据密钥编号包括用户数据密钥编号和管理数据密钥编号;所述固态硬盘还包括擦除模块,用于擦除所述初始化模块中的用户数据密钥的信息;覆盖模块,用于采用无效密钥信息覆盖所述初始化模块中的用户数据密钥的信息。
全文摘要
本发明适用于存储技术领域,提供了一种固态硬盘数据加解密的方法及其固态硬盘,所述方法包括如下步骤将固态硬盘的至少一个物理页地址切分为至少一个逻辑上独立的逻辑页地址;将不同来源的数据采用不同的密钥加密;将所述加密后的所述不同来源的数据存储到所述至少一个物理页地址。借此,本发明提高了固态硬盘存储数据的安全性。
文档编号G06F12/14GK102609368SQ20121000707
公开日2012年7月25日 申请日期2012年1月11日 优先权日2012年1月11日
发明者徐伟华 申请人:记忆科技(深圳)有限公司