数据加密方法及装置、数据解密方法及装置、固态硬盘的制作方法

文档序号:6773714阅读:134来源:国知局
专利名称:数据加密方法及装置、数据解密方法及装置、固态硬盘的制作方法
技术领域
本发明涉及数据存储技术领域,尤其涉及一种数据加密方法及装置、数 据解密方法及装置、固态石更盘。
背景技术
随着电子技术的发展,存储器的容量增加了上万倍,然而,伴随着数 据容量的爆炸性增长,存储器的读取速率成为制约存储器发展的瓶颈,因
此,能够以更快速率读取数据的固态硬盘(Solid State Disk;以下简称 SSD)应运而生。目前,SSD广泛应用于军事、视频监控、网络监控、网 络终端、医疗、航空、导航设备等领域。因此,SSD的数据安全显得尤为 重要。
在相关技术中,可以对SSD中的数据进行加密,以保证SSD中数据 的安全,在对具备加密功能的SSD的数据进行加密时,用户首先需要通 过基本输入输出系统(Basic Input Output System;以下简称BIOS )中的 密码认证开启加密硬盘锁,对用户进行身份认证,从而确认该用户是否为 合法用户,在身份认证通过后,就可以直接开启数据加解密功能,使用预 先保存在SSD中唯一的主密钥(KEY)对进出SSD的数据进行全盘加密 或解密。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题由 于KEY具有唯一性,攻击者可以获取存放在SSD上的密文数据,对密文 数据行枚举攻击,就可以获得该密文数据对应的密码本,攻击者通过分析 密码本上的规律,恢复明文数据。由上可知,使用唯一的KEY对进出SSD 中的数据进行加密,其安全性比较低,不能够较好的保证SSD中数据的安全性。

发明内容
本发明实施例提供一种数据加密方法及装置、数据解密方法及装置、固
态硬盘,用以解决现有技术中使用唯一的数据加密密钥对进出SSD中的数据 进行加密造成SSD中数据安全低的缺陷,实现为SSD中的数据提供更高的安 全保障。
本发明实施例提供了一种数据加密方法,包括接收待加密数据,并获 取待加密数据的位置信息;接收控制器解密后的加密密钥,并根据解密后的 加密密钥以及位置信息,获取用于对待加密数据进行加密处理的会话密钥; 根据会话密钥对待加密数据进行加密处理。
本发明实施例提供了一种数据解密方法,包括接收数据读取指令,数 据读取指令包括预读取数据的位置信息;利用根据位置信息获得的会话密钥, 对预读取数据进行解密处理。
本发明实施例提供了一种数据加密装置,包括第一接收模块,用于接 收待加密数据,并获取待加密数据的位置信息;第二接收模块,用于接收控 制器解密后的加密密钥;密钥生成模块,用于根据解密后的加密密钥以及位 置信息,获取用于对待加密数据进行加密处理的会话密钥;加密处理模块, 用于根据会话密钥对待加密数据进行加密处理。
本发明实施例提供了一种数据解密装置,包括第四接收模块,用于接 收数据读取指令,数据读取指令包括预读取数据的位置信息;解密处理模块, 用于利用根据位置信息获得的会话密钥,对预读取数据进行解密处理。
本发明实施例提供了一种固态硬盘,包括接口芯片、控制器、存储器以 及上述的数据加密装置和数据解密装置。
本发明实施例提供的数据加密方法及装置、数据解密方法及装置、固态硬盘,通过根据数据加密密钥与位置信息生成会话密钥,并应用该会话密钥
对SSD中对应位置的数据进行加密和解密,由于每个数据存储位置对应唯一 的会话密钥,提高了整盘数据存储的安全性。


为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需 要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的 前提下,还可以根据这些附图获得其他的附图。
图l是本发明实施例的数据加密装置的结构示意图2是根据本发明实施例的数据解密装置的结构示意图3是本发明实施例的固态硬盘的结构示意图4是本发明实施例的数据加密方法的流程图5是本发明实施例的数据加密方法的详细处理的流程图6是根据本发明实施例的数据解密方法的流程图。
具体实施例方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进 行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例, 而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没 有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的 范围。
本发明实施例提供了一种数据加密装置,图l是本发明实施例的数据加 密装置的结构示意图,如图1所示,本发明实施例的数据加密装置包括第 一接收模块IO、第二接收模块12、密钥生成模块14、加密处理模块16。下 面,对上述各个;f莫块进行详细的说明。为了确认用户的身份是否合法,在进行存取数据之前,数据加密装置中 的第三发送模块需要在获取用于验证用户身份的加密密钥后,向控制器发送 该加密密钥,使得控制器能够使用该加密密钥对用户进行身份认证,控制器
在用户身份认证成功时,对加密密钥进行解密并向第二接收模块12发送解密 后的加密密钥,需要说明的是,上述加密密钥也可以称为主密钥,以下均使 用主密钥对实施例进行描述。
具体地,本实施例中控制器为微处理器(AdvancedRISCMachines;以下 简称ARM),在进行身份认证时,在ARM的控制下,FLASH芯片阵列将 主密钥通过同步动态随机存取存储器(Synchronous Dynamic Random Access Memory;以下简称SDRAM)传送到第三发送模块,随后,第三发送模块 将主密钥传送给ARM, ARM接收到主密钥后,将主密钥与用户输入的认证 信息进行比对,对用户进行身份认证,如果比对结果正确,则ARM确认用 户身份认证通过,在用户身份认证通过的情况下,对主密钥进行解密,得到 解密后的主密钥,并将解密后的主密钥发送到第二接收^f莫块12。
第一接收模块IO,连接至第二接收模块12,用于接收接口芯片发送的待 加密数据,并获取在存储器中存储该待加密数据的位置信息;
具体地,有数据写入时,接口芯片首先为待加密数据分配一个逻辑地址, 并将待加密数据以及该逻辑地址传送到第一接收模块10,第一接收模块10 根据该待加密数据的逻辑地址确定相应的物理地址,例如,存储器中的扇区 地址和/或柱面号等,从而得到该待加密数据的位置信息。
随后,密钥生成模块14根据控制器发送的解密后的主密钥以及位置信 息,获取用于对待加密数据进行加密处理的会话密钥。
具体地,在第一接收模块10获取到位置信息以及第二接收模块12获取 到解密后的主密钥后,密钥生成模块14首先对解密后的主密钥、位置信息进 行异或操作,之后,根据得到的异或结果进行预定预算,获取与该位置信息 相应的会话密钥(SESSIONJCEY),例如,将解密后的主密钥与柱面、扇区号的组合进行异或操作后,根据异或结果进行预订预算,获取会话密钥,优 选地,还可以将解密后的主密钥与柱面进行异或操作后,#4居异或结果进行 预定预算,获取会话密钥,或将解密后的主密钥与扇区号进行异或操作后, 根据异或结果进行预订预算,获取会话密钥。
本实施例中涉及的预定运算需要满足以下两个条件
1、 该运算为单向运算,即运算不可逆;这样就可以保证一旦攻击者获取 了会话密钥,由于该预定算法的不可逆性,就不会通过获取的会话密钥倒推 出主密钥,从而保证了其他数据的安全性;
2、 通过该运算生成的会话密钥需要至少128比特,例如,会话密钥也可 以为192比特、或者256比特;如果会话密钥过短,其防御攻击的能力也就 随之减弱,而128比特以上会话密钥能够抵抗包括穷举在内的恶意攻击。
在本发明的实施例中,可以使用单向哈希运算,首先,单向哈希运算不 可逆,因此,保证了攻击者不会通过获取的会话密钥倒推出主密钥,此外, 经过单向哈希运算得到的会话密钥可以保证其大小在128比特以上,其强度 能够抵抗包括穷举在内的恶意攻击。
进一步地,如果对解密后的主密钥和位置信息使用单向哈希运算,进行 哈希运算的算法可以为任意散列算法,例如,MD2算法、MD4算法、MD5 算法、以及SHA-1算法等。
在实际的应用中,由上可知,会话密钥与数据存储位置是——对应的, 因此,在现场可编程门阵列(Field Programmable Gate Array;以下简称FPGA ) 根据解密后的主密钥和位置信息生成了会话密钥后,还需要保存会话密钥和 位置信息——对应的映射关系,可以以关系列表的形式保存在FPGA本地。
加密处理模块16,连接至密钥生成模块14,用于根据会话密钥对待加密 数据进行加密处理。
具体地,密钥生成模块14生成相应的会话密钥后,将会话密钥发送到加 密处理模块16,加密处理模块16使用该会话密钥对待加密数据进行加密。并将加密后的数据存储在FLASH芯片阵列中与位置信息相应的位置上。
在实际应用中,上述数据加密装置中的各个模块可以进行合并,例如, 可以将第一接收模块IO,第二接收模块12、密钥生成模块14合并成会话密 钥生成单元,该会话密钥生成单元主要用于接收控制器发送的解密后的主密 钥,获取从接口芯片待加密数据的位置信息,并根据解密后的主密钥、位置 信息获取会话密钥。
由上可知,通过根据控制器发送的解密后的主密钥以及位置信息获取会 话密钥,使得每个数据存储位置均对应唯一的会话密钥,从而加密处理模块 16可以使用相应的会话密钥对进出该地址的数据进行加密操作,使得攻击者 即使通过破解获得了某个会话密钥,也不可能反推KEY,保证了 SSD内其他 数据的机密性,提高了数据的安全性。
根据本发明的另一实施例,提供了一种数据解密装置。图2是根据本发 明实施例的数据解密装置的结构示意图,如图2所示,根据本发明实施例的 数据解密装置包括第四接收模块20,解密处理模块22。下面,对上述数据 解密装置中的各个模块进行详细说明。
第四接收模块20,用于接收控制器发送的从存储器中读取数据的数据读 取指令,其中,数据读取指令包括预读取数据的位置信息。
具体地,如果需要从FLASH芯片阵列中读取数据,控制器会向第四接 收模块20下发需要读取的数据的位置信息,第四接收模块20根据该位置信 息通过SDRAM从FLASH芯片阵列中获取需要读取的数据。
解密处理模块22,连接至第四接收模块20,用于利用根据上述位置信息 获得的会话密钥,对预读取数据进行解密处理。
具体地,解密处理才莫块22需要根据该位置信息以及本地保存的位置信息 与会话密钥的映射关系,确定与该位置信息对应的使用上述数据加密装置生 成的会话密钥,并使用与该位置信息对应的会话密钥对读取的数据进行解密, 并将解密后的数据传送到接口芯片。由上可知,通过使用会话密钥对读取的数据进行解密,能够在保证数据 安全的情况下,快速的读取数据。
根据本发明的实施例,提供了一种固态硬盘,图3是根据本发明实施例 的固态硬盘的结构示意图,如图3所示,根据本发明实施例的固态硬盘包括: 接口芯片30、控制器32、 FPGA34、存储器36,其中,FPGA34包括数据加 密装置340、数据解密装置342;存储器36可以包括闪存芯片阵列(FLASH 芯片阵列)360、同步动态随机存取存储器(Synchronous Dynamic Random Access Memory;以下简称SDRAM) 362 ,在本实施例中,控制器32可以 为ARM。下面,对上述固态硬盘中的各个单元进行详细说明。
在进行存取数据时,优选地,SSD首先需要对用户进行身份认证,具体 地,在进行身份认证时,在控制器32的控制下,存储器36中的FLASH芯 片阵列360将主密钥通过SDRAM 362传送到FPGA34的凄t据加密装置340, 随后,数据加密装置340将主密钥传送给控制器32,控制器32接收到主密 钥后,将主密钥与用户输入的认证信息进行比对,对用户进行身份认证,如 果比对结果正确,则控制器32确认用户身份认证通过,在用户身份认证通过 的情况下,控制器32对主密钥进行解密,得到解密后的主密钥,并将解密后 的主密钥发送到数据加密装置340,数据加密装置340的结构可以参考图1, 在此不再赘述。
数据加密装置340接收控制器32发送的解密后的主密钥,并获取从接口 芯片30写入的待加密数据的位置信息,具体地,在有待加密数据写入时,接 口芯片30首先为写入的待加密数据分配一个逻辑地址,并将写入的待加密数 据以及该逻辑地址传送到数据加密装置340,数据加密装置340根据该待加 密数据的逻辑地址确定相应的物理地址,例如,存储器36中的扇区地址和/ 或柱面号等,从而得到该待加密数据的位置信息。
数据加密装置340获取到解密后的主密钥以及位置信息后,首先对解密 后的主密钥、以及位置信息进行异或操作,之后,根据得到的异或结果进行
10预定预算,获取与该位置信息相应的会话密钥(SESSION—KEY),例如,将 解密后的主密钥与柱面、扇区号的组合进行异或操作后,根据异或结果进行 预订预算,获取会话密钥,优选地,还可以将解密后的主密钥与柱面进行异 或操作后,根据异或结果进行预订预算,获取会话密钥,或将解密后的主密 钥与扇区号进行异或操作后,根据异或结果进行预定预算,获取会话密钥。 数据加密装置340生成相应的会话密钥后,数据加密装置340就可以使用该 会话密钥对待加密数据进行加密。并将加密后的数据存储在存储器36的 FLASH芯片阵列360中与位置信息相应的位置上。
在本发明的实施例中,上述预定运算为单向哈希运算,进行哈希运算的 算法可以为任意散列算法。
在实际的应用中,数据加密装置340还可以以关系列表的形式保存会话 密钥和位置信息一一对应的映射关系。
如果需要从FLASH芯片阵列360中读取数据,控制器32会向FPGA34 的数据解密装置342下发需要读取的数据的位置信息,数据解密装置342根 据该位置信息通过SDRAM 362从FLASH芯片阵列360中获取需要读取的 数据,并根据该位置信息以及本地保存的位置信息与会话密钥的映射关系, 确定与该位置信息对应的会话密钥,并使用与该位置信息对应的会话密钥对 读取的数据进行解密,并将解密后的数据传送到接口芯片30。
通过上述的处理可以看出,不同的柱面、扇区是用不同的SESSION—KEY 加密的,攻击者即使通过破解获得了某个SESSION—KEY,也不可能反推主 密钥KEY,因此,根据本发明实施例的SSD能够保证盘内数据的机密性。
本发明的另一实施例,提供了一种数据加密方法,图4是根据本发明实 施例的数据加密方法的流程图,如图4所示,根据本发明实施例的数据加密 方法包括如下处理
步骤401, FPGA接收接口芯片发送的待加密数据,并获取在存储器中存 储待加密数据的位置信息;
ii具体地,FPGA获取位置信息的主要处理包括1、 FPGA首先获取接口 芯片为待加密数据所分配的逻辑地址信息;2、 FPGA随后根据逻辑地址信息 获取位置信息。其中,上述位置信息包括存储器中的扇区地址和/或柱面号。
此外,在执行步骤401之前,FPGA还需要向控制器转发用于验证用户 身份的主密钥,对用户进行身份认证,确认用户身份的合法性。在用户身份 认证通过的情况下,控制器还需要对主密钥进行解密,得到解密后的主密钥, 并将解密后的主密钥发送到FPGA。
步骤402, FPGA根据控制器发送的解密后的主密钥以及位置信息,获取 用于对待加密数据进行加密处理的会话密钥;
具体地,FPGA将解密后的主密钥以及位置信息进行异或操作,并根据 异或结果进行单向哈希运算,生成会话密钥。
步骤403, FPGA应用会话密钥对待加密数据进行加密处理。
下面,结合图5,对图4所示的处理过程作进一步的详细说明。
图5是根据本发明实施例的数据加密方法的详细处理的流程图,如图5 所示,包括如下处理
步骤501,固态硬盘上电;
步骤502,对用户进行身份认证,在进行身份认证时,在SSD中的控制 器(ARM )的控制下,FLASH芯片阵列将主密钥通过SDRAM发送到FPGA, 随后,在FPGA获取主密钥后,将主密钥转发给ARM, ARM接收到主密钥 后,将主密钥与用户输入的认证信息进行比对,对用户进行身份认证,如果 比对通过,则ARM确认用户身份认证通过,执行步骤504,否则,执行步骤 503;
步骤503,用户身份认证失败,执行认证失败流程; 步骤504, ARM确认用户身份认证通过,对主密钥进行解密,得到解密 后的主密钥,并将解密后的主密钥发送到FPGA;
步骤505, FPGA中的会话密钥生成单元接收ARM发送的解密后的主密钥,并获取从接口芯片输入的待加密数据的位置信息,具体地,在有数据写 入时,接口芯片首先为待加密数据分配一个逻辑地址,并将待加密数据以及
该逻辑地址传送到FPGA, FPGA一艮据该写入数据的逻辑地址确定相应的物理 地址,例如,柱面、扇区号等,从而得到该写入数据的位置信息。
在会话密钥生成单元获取到解密后的主密钥、以及位置信息后,首先对 解密后的主密钥、以及位置信息进行异或操作,之后,对进行了异或操作的 解密后的主密钥以及位置信息进行单向哈希运算,得到与该位置信息相应的 会话密钥(SESSION—KEY),该会话密钥的大小至少为128比特,会话密钥 生成单元生成相应的会话密钥后,就可以将会话密钥发送到FPGA中的硬件 力口密单元。
需要说明的是,上述单向哈希运算可以由其他运算替代,其他运算所需 要满足的条件可以参照上述装置实施例中描述的相关内容,在此不再赘述。
步骤506,硬件加密单元使用该会话密钥对存储到相应位置的数据进行 加密,并将加密后的数据存储在FLASH芯片阵列中相应的位置上,并以关 系列表的形式将会话密钥和位置信息的一一对应关系保存在FPGA的本地。
如上所述,通过在加密过程中将KEY与数据存储的位置信息进行预定运 算,以生成相应的会话密钥,使得SSD中每个数据存储位置均对应唯一的会 话密钥,从而实现使用相应的会话密钥对进出该地址的数据进行加密操作, 由于每个数据存储位置的会话密钥的唯一性,使得攻击者即使通过破解获得 了某个会话密钥,也不可能反推KEY,保证了 SSD内其他数据的机密性,提 高了数据的安全性。
根据本发明的另一实施例,提供了一种数据解密方法,图6是根据本发 明实施例的数据解密方法的流程图,如图6所示,包括如下处理
步骤601,接收数据读取指令,数据读取指令包括预读取数据的位置信自.
,&,
步骤602,利用根据该位置信息获得的会话密钥,对预读取数据进行解密处理。
具体地,如果需要从FLASH芯片阵列中读取数据,控制器会向FPGA 下发需要读取的数据的位置信息,FPGA根据该位置信息通过SDRAM从 FLASH芯片阵列中获取需要读取的数据,并根据加密时本地保存的会话密钥 与位置信息的关系列表确定与该位置信息对应的会话密钥,并使用与该位置 信息对应的会话密钥对读取的数据进行解密,将解密后的数据传送到接口芯 片。
综上所述,借助于上述技术方案中的至少一个技术方案,通过在加密过 程中将KEY与数据存储的位置信息进行预定运算,以生成相应的会话密钥, 使得SSD中每个数据存储位置均对应唯一的会话密钥,从而实现使用相应的 会话密钥对进出该地址的数据进行加密操作,由于每个数据存储位置的会话 密钥的唯一性,使得攻击者即使通过破解获得了某个会话密钥,也不可能反 推KEY,保证了 SSD内其他数据的机密性,提高了数据的安全性。此外,本 发明实施例使用单向哈希运算,既保证了会话密钥的不可逆性,又能使会话 密钥在128比特以上,能够抵抗包括穷举在内的恶意攻击。
本领域普通^t术人员可以理解实现上述方法实施例的全部或部分步骤 可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读 取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述 的存储介质包括只读存储器(ROM)、随机存取器(RAM)、磁碟或者光盘 等各种可以存储程序代码的介质。
最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其 限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术 人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或 者对其中部分技术特征进行等同替换;而这些^^改或者替换,并不使相应技
术方案的本质脱离本发明各实施例技术方案的精神和范围。
1权利要求
1、一种数据加密方法,其特征在于,包括接收待加密数据,并获取所述待加密数据的位置信息;接收控制器解密后的加密密钥,并根据所述解密后的加密密钥以及所述位置信息,获取用于对所述待加密数据进行加密处理的会话密钥;根据所述会话密钥对所述待加密数据进行加密处理。
2、 根据权利要求1所述的数据加密方法,其特征在于,所述根据所述解 密后的加密密钥以及所述位置信息获取用于对所述待加密数据进行加密处理 的会话密钥包括将所述解密后的加密密钥以及所述位置信息进行单向哈希运算,生成所 述会话密钥。
3、 根据权利要求1所述的数据加密方法,其特征在于,所述获取所述待 加密数据的位置信息包括获取所述待加密数据的逻辑地址信息; 根据所述逻辑地址信息获取所述位置信息。
4、 根据权利要求1所述的数据加密方法,其特征在于,还包括 向所述控制器发送用于认证用户身份的加密密钥,所述控制器在用户身份认证成功时,对所述加密密钥进行解密并发送所述解密后的加密密钥。
5、 一种数据解密方法,其特征在于,包括接收数据读取指令,所述数据读取指令包括预读取数据的位置信息; 利用根据所述位置信息获得的会话密钥,对所述预读取数据进行解密处理。
6、 根据权利要求5所述的数据解密方法,其特征在于,在所述接收数据 读取指令之前,所述方法还包括根据控制器解密后的加密密钥以及所述预读取数据的所述位置信息,获取所述会话密钥。
7、 一种数据加密装置,其特征在于,包括第一接收模块,用于接收待加密数据,并获取所述待加密数据的位置信息;第二接收模块,用于接收控制器解密后的加密密钥;密钥生成模块,用于根据所述解密后的加密密钥以及所述位置信息,获 取用于对所述待加密数据进行加密处理的会话密钥;加密处理模块,用于根据所述会话密钥对所述待加密数据进行加密处理。
8、 根据权利要求7所述的数据加密装置,其特征在于,所述第一接收模 块用于获取所述待加密数据的逻辑地址信息; 根据所述逻辑地址信息获取所述位置信息。
9、 根据权利要求7所述的数据加密装置,其特征在于,还包括第三发 送模块,用于向所述控制器发送用于认证用户身份的加密密钥,所述控制器 在用户身份认证成功时,对所述加密密钥进行解密并发送所述解密后的加密 密钥。
10、 一种数据解密装置,其特征在于,包括第四接收模块,用于接收数据读取指令,所述数据读取指令包括预读取 数据的位置信息;解密处理模块,用于利用根据所述位置信息获得的会话密钥,对所述预 读取数据进行解密处理。
11、 一种固态硬盘,包括接口芯片、控制器、存储器,其特征在于,还 包括如权利要求7至9任一所述的数据加密装置以及如权利要求10所述的数 据解密装置。
全文摘要
本发明实施例提供一数据加密方法及装置、数据解密方法及装置、固态硬盘,其中,数据加密方法包括接收待加密数据,并获取待加密数据的位置信息;接收控制器解密后的加密密钥,并根据解密后的加密密钥以及位置信息,获取用于对待加密数据进行加密处理的会话密钥;根据会话密钥对待加密数据进行加密处理。通过在加密过程中将KEY与数据存储的位置信息进行预定运算生成相应的会话密钥,从而实现使用相应的会话密钥对进出该地址的数据进行加密操作,由于每个数据存储位置对应唯一的会话密钥,使得攻击者即使通过破解获得了某个会话密钥,也不可能反推KEY,保证了SSD内数据的机密性,提高了数据的安全性。
文档编号G11C7/00GK101582109SQ200910146138
公开日2009年11月18日 申请日期2009年6月10日 优先权日2009年6月10日
发明者万峪臣, 丹 周 申请人:成都市华为赛门铁克科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1