本实用新型涉及芯片电路设计领域,特别涉及一种ssd固态硬盘主控芯片安全密钥生成装置和系统。
背景技术:
ssd数据存储已经逐渐成为消费设备数据存储和云存储的主要存储介质。对于ssd数据存储来说,数据纠错的意义十分重大,特别是个人关键数据和政府机构相关的数据。ssd主控芯片作为ssd存储设备的大脑,其安全性能直接决定ssd硬盘整体最终的安全性能。而密钥作为整个安全体系的核心,又是ssd数据安全的重中之重。目前,对于密钥信息的配置和运算依然是由cpu来直接读取,这样导致一旦cpu的软件系统被黑客攻破,黑客就可以通过cpu直接读取到所有的密钥信息,存在严重的安全隐患。
技术实现要素:
为此,需要提供一种密钥生成的技术方案,用以解决现有技术由于cpu直接运算密钥信息,导致密钥信息容易被破译、安全性低的问题。
为实现上述目的,本实用新型第一方面提供了一种ssd固态硬盘主控芯片安全密钥生成装置,包括:数据读取单元、信号选择单元、加解密运算单元、密钥缓存单元和输出控制单元;
所述信号选择单元包括第一信号选择器、第二信号选择器、第三信号选择器、第四信号选择器;所述密钥缓存单元包括多个密钥缓存模块;
所述数据读取单元与所述第一信号选择器连接,所述第一信号选择器与所述加解密运算单元连接,所述加解密运算单元与所述第二信号选择器连接,所述第二信号选择器与各个所述密钥缓存模块连接,各个所述密钥缓存模块与所述第三信号选择器连接,所述第三信号选择器与所述第四信号选择器连接,所述第四信号选择器分别与所述输出控制单元、所述第一信号选择器连接。
进一步地,还包括:加解密选通单元;
所述加解密运算单元包括多个加解密运算电路,所述信号选择单元还包括第五信号选择器;
所述第一信号选择器与所述加解密选通单元连接,所述加解密选通单元与各所述加解密运算电路连接,各所述加解密运算电路分别与所述第五信号选择器连接,所述第五信号选择器与所述第二信号选择器连接。
进一步地,所述加解密运算电路包括aes加解密运算电路、tdes加解密运算电路、sm4加解密运算电路中的一种或多种。
进一步地,所述信号选择单元还包括第六信号选择器,所述第六信号选择器分别与第四信号选择器、加解密选通单元连接。
进一步地,还包括初始密钥存储单元,所述初始密钥存储单元与所述加解密选通单元连接。
本实用新型第二方面提供了一种ssd固态硬盘主控芯片安全密钥生成系统,所述系统包括数据处理单元和ssd固态硬盘主控芯片安全密钥生成装置,所述ssd固态硬盘主控芯片安全密钥生成装置为如本实用新型第一方面所述的ssd固态硬盘主控芯片安全密钥生成装置;
所述数据处理单元分别与所述数据读取单元、信号选择单元、加解密运算单元、输出控制单元连接。
进一步地,所述装置包括源数据存储单元,所述源数据存储单元与所述ssd固态硬盘主控芯片安全密钥生成装置中的数据读取单元连接,所述源数据存储单元用于存储加密后的源数据,所述源数据包括源密钥信息和/或层级加解密算法。
进一步地,所述装置还包括层级信息存储单元,所述层级信息存储单元与所述数据读取单元连接,所述层级信息存储单元存储有层级密钥信息。
进一步地,所述层级信息存储单元存储有握手请求信息和握手响应信息。
进一步地,所述装置包括至少一个功能模块,所述功能模块与所述输出控制单元连接。
区别于现有技术,上述技术方案所述的ssd固态硬盘主控芯片安全密钥生成装置和系统,所述装置包括数据读取单元、信号选择单元、加解密运算单元、密钥缓存单元和输出控制单元;所述信号选择单元包括第一信号选择器、第二信号选择器、第三信号选择器、第四信号选择器;所述密钥缓存单元包括多个密钥缓存模块;所述数据读取单元与所述第一信号选择器连接,所述第一信号选择器与所述加解密运算单元连接,所述加解密运算单元与所述第二信号选择器连接,所述第二信号选择器与各个所述密钥缓存模块连接,各个所述密钥缓存模块与所述第三信号选择器连接,所述第三信号选择器与所述第四信号选择器连接,所述第四信号选择器分别与所述输出控制单元、所述第一信号选择器连接。通过上述方案,密钥信息的运算由ssd固态硬盘主控芯片安全密钥生成装置内部来完成,数据处理单元只负责密钥信息的搬运,并不直接接触密钥信息的内容,从而极大提高了ssd数据安全性。
附图说明
图1为本实用新型一实施例涉及的ssd固态硬盘主控芯片安全密钥生成系统的流程结构示意图;
图2为本实用新型另一实施例涉及的ssd固态硬盘主控芯片安全密钥生成系统的流程结构示意图;
图3为本实用新型另一实施例涉及的ssd固态硬盘主控芯片安全密钥生成系统的流程结构示意图;
图4为本实用新型一实施例涉及的密钥生成方法的流程图;
图5为本实用新型另一实施例涉及的密钥生成方法的流程图;
图6为本实用新型另一实施例涉及的密钥生成方法的流程图;
图7为本实用新型另一实施例涉及的ssd固态硬盘主控芯片安全密钥生成装置的电路结构示意图;
图8为本实用新型另一实施例涉及的ssd固态硬盘主控芯片安全密钥生成系统的电路结构示意图。
附图标记说明:
10、ssd固态硬盘主控芯片安全密钥生成装置;
101、数据读取单元;
1021、第一信号选择器;1022、第二信号选择器;1023、第三信号选择器;1024、第四信号选择器;1025、第五信号选择器;1026、第六信号选择器
103、加解密运算单元;
104、输出控制单元;
105、密钥缓存单元;
106、加解密选通单元;
107、初始密钥存储单元;
108、功能模块;
30、ssd固态硬盘主控芯片安全密钥生成系统;
301、源数据存储单元;
302、源数据解密单元;
303、算法信息存储单元;
304、层级信息存储单元;
305、根密钥运算单元;
306、层级解密运算单元;3061、一级解密运算单元;3062、二级解密运算单元;3063、三级解密运算单元;
307、握手解密运算电路;3071、一级握手解密运算电路;3072、二级握手解密运算电路;3073、三级握手解密运算电路;
308、握手加密运算电路;3081、一级握手加密运算电路;3082、二级握手加密运算电路;3083、三级握手加密运算电路;
309、握手信息校验电路;
310、密钥选择单元;
311、算法选择单元;3111、一级算法选择单元;3112、二级算法选择单元;3113、三级算法选择单元;
312、主控芯片;
313、用户验证信息存储单元;
40、密钥记录单元。
具体实施方式
为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
密钥信息作为数据加解密的工具,是芯片安全认证的关键一环,保证密钥生成过程的安全性就显得尤为重要。为了加强密钥生成过程的安全性,本申请设计了专门的ssd固态硬盘主控芯片安全密钥生成装置来生成最终所需的密钥信息。
如图7所示,为本实用新型一实施例涉及的ssd固态硬盘主控芯片安全密钥生成装置的电路结构示意图。所述装置10包括数据读取单元101、信号选择单元、加解密运算单元103和输出控制单元104。信号选择单元的作用是选择一路信号导通,实现多路信号的选择功能。
所述信号选择单元包括第一信号选择器1021、第二信号选择器1022、第三信号选择器1023、第四信号选择器1024;所述密钥缓存单元105包括多个密钥缓存模块;
所述数据读取单元101与所述第一信号选择器1021连接,所述第一信号选择器1021与所述加解密运算单元103连接,所述加解密运算单元103与所述第二信号选择器1022连接,所述第二信号选择器1022与各个所述密钥缓存模块连接,各个所述密钥缓存模块与所述第三信号选择器1023连接,所述第三信号选择器1023与所述第四信号选择器1024连接,所述第四信号选择器1024分别与所述输出控制单元104、所述第一信号选择器1021连接。
图7所示的ssd固态硬盘主控芯片安全密钥生成装置工作原理如下:
数据读取单元101从外部存储单元中读取加密后的源密钥,第一信号选择器1021将读取的所述加密后的源密钥发给所述加解密运算单元103进行解密,所述加解密运算单元103将解密后的源密钥存储于所述密钥屉1中(图7的“密钥屉”相当于前文所述的“密钥缓存模块”,密钥屉1即密钥缓存模块1)。
而后密钥屉1中解密后的源密钥依次经过第三信号选择器1023、第四信号选择器1024、第一信号选择器1021进入加解密运算单元103,并行地,数据读取单元101读取用户标识信息(如用户id或厂商id),并将所述用户标识信息传输给所述加解密运算单元103,加解密运算单元103对所述解密后的源密钥和所述用户标识信息进行哈希运算,得到根密钥信息,并经过所述第二信号选择器1022将所述根密钥信息存入密钥屉2(即密钥缓存模块2)。
而后所述根密钥信息依次经过第三信号选择器1023、第四信号选择器1024、第一信号选择器1021进入加解密运算单元103,并行地,数据读取单元101从层级信息存储单元304中读取第一层源密钥,并将所述第一层源密钥传输给所述加解密运算单元103,所述加解密运算单元103采用所述根密钥信息对所述第一层源密钥进行解密,得到一级密钥存入密钥屉3(即密钥缓存模块3)。一级密钥可以传输给所述输出控制单元104作为最终密钥信息进行输出,也可以进一步传输给第一信号选择器1021进行下一步运算。输出控制单元104在接收到一级密钥可以将其传输给相应的功能模块108,功能模块108可以用接收到的所述一级密钥对重要数据进行加密。
在上述方案的运算过程中,无论是源密钥、根密钥信息,还是一级密钥都被存储于密钥屉,数据处理单元(如cpu)本身并不直接读取密钥屉中的内容,即无法获知当前正在运算的密钥信息,而是只负责密钥信息的搬运工作(即通过控制逻辑在装置10内部实现密钥信息的转移搬运),因而即便cpu软件系统被破解,黑客也无法获知所述装置10生成的密钥信息,从而极大提升了数据的安全性。
在某些实施例中,所述装置10还包括:加解密选通单元106;所述加解密运算单元103包括多个加解密运算电路,所述信号选择单元还包括第五信号选择器1025;所述第一信号选择器1021与所述加解密选通单元106连接,所述加解密选通单元106与各所述加解密运算单元103连接,各所述加解密运算电路分别与所述第五信号选择器1025连接,所述第五信号选择器1025与所述第二信号选择器1022连接。通过加解密选通单元106在生成中间密钥信息的不同环节可以采用不同的加解密算法来进行加密或解密运算,以进而提升层级密钥生成过程的安全性。进一步地,所述加解密运算电路包括aes加解密运算电路、tdes加解密运算电路、sm4加解密运算电路中的一种或多种。
在某些实施例中,所述装置10还包括初始密钥存储单元107,所述初始密钥存储单元107与所述加解密选通单元106连接。所述初始密钥存储单元107用于存储用户标识信息,即所述用户标识信息是固化存储于所述装置10内,,由于根密钥信息是由所述解密后的源密钥和所述用户标识信息进行哈希运算得到,因而当不同用户使用所述ssd固态硬盘主控芯片安全密钥生成装置时,最终输出的密钥信息均是不同的,进一步加强了数据安全性。
在某些实施例中,所述信号选择单元还包括第六信号选择器1026,所述第六信号选择器1026分别与第四信号选择器1024、加解密选通单元106连接。通过设置第六信号选择器1026,可以实现对装置10生成的密钥信息的校验功能,以生成一级密钥为例,校验过程具体如下:一级密钥在传输给所述输出控制单元104之前,所述第四信号选择器1024先将所述一级密钥传输给所述加解密运算单元103,加解密运算单元103选择相应的加解密算法(预先配置好的)采用所述一级密钥对所述一级密钥自身进行解密后,将解密后的一级密钥经由所述第二信号选择器1022存储于密钥屉4中。而后将对自身解密后的一级密钥传输给加解密运算单元103,并行地,数据读取单元101从所述层级信息存储单元304中读取握手请求数据,加解密运算单元103采用所述对自身解密后的一级密钥对所述握手请求数据进行加密,得到握手加密信息,并将所述握手加密信息存储于密钥屉5。而后数据读取单元从所述层级信息存储单元304中读取握手响应数据,比较所述握手响应数据与所述握手加密信息是否一致,若一致则校验通过,所述输出控制单元104将一级密钥发送给功能模块,否则校验失败,向所述数据处理单元(如cpu)发出中断信号。
在另一些实施例中,一级密钥也可以作为中间运算结果被传输给所述第一信号选择器1021,并行地,数据读取单元101从层级信息存储单元304中读取第二层源密钥,并将所述第二层源密钥传输给所述加解密运算单元103,所述加解密运算单元103采用所述一级密钥对所述第二层源密钥进行解密,得到二级密钥存入下一个密钥屉。二级密钥可以传输给所述输出控制单元104作为最终密钥信息进行输出,也可以进一步传输给第一信号选择器1021进行下一步运算。当然,在所述第二密钥输出之前还可以对所述第二密钥进行校验,具体校验方式可以参考一级密钥的校验方式,此处不再展开。
在另一些实施例中,二级密钥也可以作为中间运算结果被传输给所述第一信号选择器1021,并行地,数据读取单元101从层级信息存储单元304中读取第三层源密钥,并将所述第三层源密钥传输给所述加解密运算单元103,所述加解密运算单元103采用所述二级密钥对所述第三层源密钥进行解密,得到三级密钥存入下一个密钥屉。三级密钥可以传输给所述输出控制单元104作为最终密钥信息进行输出,也可以进一步传输给第一信号选择器1021进行下一步运算。当然,在所述第三密钥输出之前还可以对所述第三密钥进行校验,具体校验方式可以参考一级密钥的校验方式,此处不再展开。
如图8所示,本实用新型第二方面还提供了一种ssd固态硬盘主控芯片安全密钥生成系统,所述系统包括数据处理单元和ssd固态硬盘主控芯片安全密钥生成装置,所述ssd固态硬盘主控芯片安全密钥生成装置为如本实用新型第一方面所述的ssd固态硬盘主控芯片安全密钥生成装置;所述数据处理单元分别与所述数据读取单元、信号选择单元、加解密运算单元、输出控制单元连接。
在某些实施例中,所述装置包括源数据存储单元301,所述源数据存储单元301与所述ssd固态硬盘主控芯片安全密钥生成装置中的数据读取单元101连接,所述源数据存储单元301用于存储加密后的源数据,所述源数据包括源密钥信息和/或层级加解密算法。
进一步地,所述装置还包括层级信息存储单元304,所述层级信息存储单元304与所述数据读取单元101连接,所述层级信息存储单元304存储有层级密钥信息。优选的,所述层级信息存储单元304存储有握手请求信息和握手响应信息。
进一步地,所述装置包括至少一个功能模块108,所述功能模块108与所述输出控制单元104连接。功能模块108接收输出控制单元104传输的密钥信息对所需数据进行加密,由于该密钥信息是由所述ssd固态硬盘主控芯片安全密钥生成装置10实时生成的,且cpu并不直接获取所述密钥屉中的信息内容,从而极大提高了密钥生成的安全性。
如图1所示,为本实用新型一实施例涉及的ssd固态硬盘主控芯片安全密钥生成系统的流程结构示意图。所述ssd固态硬盘主控芯片安全密钥生成系统包括源数据解密单元302、根密钥运算单元305和层级解密运算单元306;所述源数据解密单元302与根密钥运算单元305连接,所述根密钥运算单元305和层级解密运算单元306连接;
源数据解密单元302,用于获取加密后的源数据进行解密,得到解密后的源密钥和解密后的层级加解密算法;
根密钥运算单元305,用于根据所述解密后的源密钥计算得到根密钥信息;
层级解密运算单元306,用于获取层级密钥信息、层级密钥加解密算法和根密钥信息,根据所述层级密钥加解密算法采用所述根密钥信息对所述层级密钥信息进行解密,得到密钥输出信息。层级解密运算单元306得到的密钥输出信息即为最终所需的密钥信息,密钥输出信息是由源密钥经过多层加密手段得到,从而极大提升了密钥生成过程中的安全性。
如图2所示,在某些实施例中,所述ssd固态硬盘主控芯片安全密钥生成系统30还包括:
算法信息存储单元303,与所述源数据解密单元302连接,用于存储解密后的层级加解密算法。所述层级加解密算法是后续进行数据加解密时所选择的算法,具体可以包括aes算法、tdes算法、sm4算法中的任意一种或多种。源数据解密单元302解密得到层级加解密算法后,会将层级加解密算法存储到算法信息存储单元303中,以等到后续调用。
算法选择单元311,与所述算法信息存储单元303连接,用于根据用户安全等级选择不同的层级加解密算法至所述层级解密运算单元306。所述用户安全等级是指可以访问存储设备的不同安全存储区的访问权限。用户安全等级越高,其能够访问的安全存储区的安全性越高,对应的密钥生成过程也越复杂。
例如有用户a、用户b和用户c,分别对应的用户安全等级是低安全等级、中安全等级和高安全等级。层级密钥解密运算单元包括第一层级密钥解密运算单元、第二层级密钥解密运算单元和第三层级密钥解密运算单元。假设算法信息存储单元存储有a、b、c三种加解密算法。
在生成用户a对应的密钥输出信息时,所述装置只启动第一层级密钥解密运算单元完成加解密运算,算法选择单元只需要将加解密算法a发送至第一层级密钥解密运算单元即可。
在生成用户b对应的密钥输出信息时,所述装置会启动第一层级密钥解密运算单元和第二层级密钥解密运算单元进行加解密运算,算法选择单元先选择加解密算法a发送至第一层级密钥解密运算单元,并在后续第二层级密钥解密运算单元进行加解密运算时将加解密算法b发送至第二层级密钥解密运算单元。
在生成用户c对应的密钥输出信息时,所述装置不仅会启动第一层级密钥解密运算单元和第二层级密钥解密运算单元进行加解密运算,还会启动第三层级密钥解密运算单元进行加解密运算。算法选择单元先选择加解密算法a发送至第一层级密钥解密运算单元,并在第二层级密钥解密运算单元进行加解密运算时将加解密算法b发送至第二层级密钥解密运算单元,以及在后续并在第三层级密钥解密运算单元进行加解密运算时将加解密算法c发送至第三层级密钥解密运算单元,以使得第三层级密钥解密运算单元完成相应的加解密运算以输出所述密钥输出信息。
在这一实施例中,通过算法选择单元311根据用户安全等级的不同从所述算法信息存储单元303中选择不同的层级加解密算法至相应的层级解密运算单元306,可以使得不同安全等级用户对于同一存储设备中不同存储区域的访问差异化设置,保证不同安全等级用户的对于同一存储设备的访问互不影响,进一步提升访问过程的私密性和安全性。
在某些实施例中,所述ssd固态硬盘主控芯片安全密钥生成系统30还包括:
层级信息存储单元304,用于存储层级密钥信息;
主控芯片312,与所述层级信息存储单元304连接,用于获取所述层级信息存储单元304中的层级密钥信息,并将所述层级密钥信息传输给所述。所述主控芯片可以为本申请第二方面所述的数据处理单元,如cpu。
这样,密钥输出信息生成过程中的解密算法来自于算法信息存储单元303中的加解密算法,并通过算法选择单元311进行筛选,筛选的加解密算法的解密对象为主控芯片312发送的层级密钥信息,解密过程中使用的密钥为根密钥信息,具体是:层级解密运算单元306根据所述层级密钥加解密算法采用所述根密钥信息对所述层级密钥信息进行解密,得到密钥输出信息。由于层级密钥信息、层级密钥加解密算法和根密钥信息三者分别来自于不同的单元,从而进一步提升了生成的密钥输出信息的安全性。
在某些实施例中,还包括:用户等级存储单元,用于存储用户安全等级;主控芯片,与所述用户等级存储单元连接,还用于根据当前用户对应的安全等级发送相应的层级密钥信息至所述层级解密运算单元。同一个存储设备可能被多个不同用户访问,为保证各个用户对于同一存储设备的访问互不影响,对每个都设置了相应的安全等级,并给予各用户对应的安全等级匹配有相应的层级密钥信息,以便于不同用户访问时ssd固态硬盘主控芯片安全密钥生成装置能够生成不同安全级别的密钥输出信息。
例如有用户a、用户b和用户c,分别对应的用户安全等级是低安全等级、中安全等级和高安全等级。层级密钥解密运算单元包括第一层级密钥解密运算单元、第二层级密钥解密运算单元和第三层级密钥解密运算单元。
假设层级密钥信息包括第一层源密钥、第二层源密钥和第三层源密钥,那么在生成用户a对应的密钥输出信息时,所述装置只启动第一层级密钥解密运算单元完成加解密运算,算法选择单元只需要将加解密算法a发送至第一层级密钥解密运算单元,第一层级解密运算单元根据加解密算法a采用所述根密钥信息对所述第一层源密钥进行解密,得到一级密钥。对于用户a而言,一级密钥即为所需的密钥输出信息。
在生成用户b对应的密钥输出信息时,所述装置会启动第一层级密钥解密运算单元和第二层级密钥解密运算单元进行加解密运算,算法选择单元先选择加解密算法a发送至第一层级密钥解密运算单元,第一层级密钥解密运算单元解密得到一级密钥后(具体做法参考用户a的密钥输出信息的生成过程),会将一级密钥发送给所述第二层级密钥解密运算单元。在第二层级密钥解密运算单元进行解密运算时,主控芯片会将第二层源密钥发送给第二层级密钥解密运算单元,算法选择单元会选择加解密算法b发送至第二层级密钥解密运算单元。而后第二层级密钥解密运算单元根据加解密算法b采用所述一级密钥对所述第二层源密钥进行解密,得到二级密钥。对于用户b而言,二级密钥即为所需的密钥输出信息。
在生成用户c对应的密钥输出信息时,所述装置不仅会启动第一层级密钥解密运算单元和第二层级密钥解密运算单元进行加解密运算,还会启动第三层级密钥解密运算单元进行加解密运算。算法选择单元先选择加解密算法a发送至第一层级密钥解密运算单元,并在第二层级密钥解密运算单元进行加解密运算时将加解密算法b发送至第二层级密钥解密运算单元。第二层级密钥解密运算单元解密得到二级密钥后(具体做法参考用户b的密钥输出信息的生成过程),会将二级密钥发送给所述第三层级密钥解密运算单元。在第三层级密钥解密运算单元进行加解密运算时,算法选择单元会选择加解密算法c发送至第三层级密钥解密运算单元,主控芯片也会将第三层源密钥发送至第三层级密钥解密运算单元,以使得第三层级密钥解密运算单元根据加解密算法c采用所述二级密钥对所述第三层源密钥进行解密,得到三级密钥。对于用户c而言,三级密钥即为所需的密钥输出信息。
在某些实施例中,所述ssd固态硬盘主控芯片安全密钥生成系统还包括:
生物特征信息采集单元,用于采集当前用户的生物特征信息。所述生物特征信息是指用户部位的生物特征信息,包括指纹信息、掌纹信息、人脸信息、眼球信息、虹膜信息、嘴唇信息、耳廓信息中的一种或多种。生物特征信息采集单元可以通过相应的生物特征识别芯片来实现,如人脸识别芯片、指纹识别芯片等。
主控芯片,与所述生物特征信息采集单元连接,用于将采集到的生物特征信息与预设生物特征信息进行比对,以确定当前用户对应的安全等级。简言之,每一用户事先录入有自身对应的预设生物特征信息且设置有相应的用户安全等级,每次需要访问存储设备的访问区时,ssd固态硬盘主控芯片安全密钥生成系统会事先基于用户的生物特征信息进行验证,以确定当前用户的安全等级,后续可以根据当前用户的安全等级的不同采用如前所述的方法生成不同安全等级的密钥输出信息,从而保证每一用户对于存储区域的访问的唯一性和私密性。
在某些实施例中,所述ssd固态硬盘主控芯片安全密钥生成系统30还包括:
用户验证信息存储单元313,用于存储用户验证信息。优选的,所述用户验证信息存储单元313中存储有多个不同用户的用户验证信息。所述用户验证信息为区分不同用户的id,例如可以是用户各自设置的密码,如一串字符串。所述用户验证信息存储单元313即为如图7所示的初始密钥存储单元107,用户验证信息为前文所述的用户标识信息。
根密钥运算单元305,分别与用户验证信息存储单元313、源数据解密单元302、层级解密运算单元306连接,用于获取所述用户验证信息和解密后的源密钥,根据所述解密后的源密钥对所述用户验证信息进行哈希运算,得到根密钥信息。由于根密钥信息是通过解密后的源密钥对所述用户验证信息进行哈希运算得到,可以保证源密钥和生成的根密钥的位数保持一致,同时保证不同用户进行认证时,所生成的根密钥信息均是不同的,进一步提升了安全性
在某些实施例中,所述ssd固态硬盘主控芯片安全密钥生成系统30还包括:源数据存储单元301,与所述源数据解密单元302连接,用于存储加密后的源数据,所述源数据包括源密钥和层级加解密算法。在本实施方式中,所述源数据存储单元301为otp存储单元(即一次性可编程单元),这样可以有效防止源数据被篡改。为了防止黑客从源数据存储单元301中直接获得源数据,因而在本申请中是先对源数据进行加密后再存储至otp存储单元中,对源数据进行加密采用的初始密钥可以被存储于其他存储单元中,以提升源数据存储的安全性。
为了防止密钥输出信息在生成过程中被截获篡改,在本实施方式中,所述层级信息存储单元还用于存储握手请求信息和握手响应信息,如图3所示,所述ssd固态硬盘主控芯片安全密钥生成系统30包括:
握手解密运算电路307,与所述层级解密运算单元连接,用于采用所述密钥输出信息对所述密钥输出信息自身进行解密,得到握手加密密钥信息。密钥输出信息自身在传输过程中容易被截获或篡改,但是如果先用密钥输出信息对所述密钥输出信息自身进行解密后,黑客反向破解的难度就会成指数级增加,因而本申请在进行密钥数据校验前先让密钥输出信息对所述密钥输出信息自身进行解密,得到握手加密密钥信息。
握手加密运算电路308,分别与所述握手解密运算电路307、主控芯片312连接,用于接收所述握手请求信息,并采用所述握手加密密钥信息对所述握手请求信息进行加密,得到握手加密信息。握手请求信息可以预先存储于层级信息存储单元304中,握手请求信息是指待验证的信息,其通过握手加密密钥信息进行加密后可以得到握手加密信息。
握手信息校验电路309,分别与握手加密运算电路308、主控芯片连接,用于获取所述握手响应信息和所述握手加密信息,并判断两者是否匹配,若是则通过校验则输出所述密钥输出信息。所述握手响应信息是指预先存储于层级信息存储单元304中、且是握手请求信息经过加密后得到的校验标准信息。通过比对所述握手响应信息和所述握手加密信息,就可以推知当前密钥输出信息是否被篡改,若两者匹配则可以输出密钥输出信息。
如图3所示,为了在不同用户能够使用不同权限的功能,因而在本实施方式中,对于不同用户使用时生成的密钥信息也可以设置不同等级,即ssd固态硬盘主控芯片安全密钥生成装置可以根据用户的安全等级生成相应安全等级的层级密钥信息,安全等级越高,则生成的密钥信息的安全性也就越高。
以密钥等级为三个安全等级为例,所述装置包括密钥选择单元310。所述解密运算单元包括一级解密运算单元3061、二级解密运算单元3062、三级解密运算单元3063。所述握手解密运算电路包括一级握手解密运算电路3071、二级握手解密运算电路3072、三级握手解密运算电路3073。所述握手加密运算电路包括一级握手加密运算电路3081、二级握手加密运算电路3082、三级握手加密运算电路3083。算法信息存储单元303中设置有多种加解密算法,包括一级加解密算法、二级加解密算法和三级加解密算法,并依次通过一级算法选择单元3111、二级算法选择单元3112、三级算法选择单元3113进行选择。所述层级密钥信息包括第一层源密钥、第二层源密钥和第三层源密钥。
图3所述的ssd固态硬盘主控芯片安全密钥生成系统30的工作原理如下:ssd固态硬盘主控芯片安全密钥生成系统30获取当前用户等级,并通过密钥选择单元310输出与所述用户等级相匹配的测试密钥至所述密钥记录单元40,假设用户等级有三级,则密钥选择单元310依次选择一级密钥、二级密钥和三级密钥进行输出,三级密钥的安全等级大于二级密钥,二级密钥的安全等级大于一级密钥。
一级密钥的生成过程如下:
源数据解密单元302获取所述源数据存储单元301中加密后的源密钥和层级加解密算法进行解密,得到解密后的源密钥和层级加解密算法,并将所述解密后的源密钥送往根密钥运算单元305,将所述解密后的层级密钥加解密算法存储于算法信息存储单元303中。根密钥运算单元获取所述用户验证信息和解密后的源密钥,根据所述解密后的源密钥对所述用户验证信息进行哈希运算,得到根密钥信息。
而后一级解密运算单元3061接收层级信息存储单元304的第一层源密钥,一级算法选择单元3111选择一级密钥加解密算法至一级解密运算单元3061,以使得一级解密运算单元3061采用一级密钥加解密算法应用所述根密钥信息对所述第一层源密钥进行解密,得到一级密钥。如果当前用户的安全等级为一级,则密钥选择单元310可以选择所述一级密钥输出。
在输出之前,为了防止一级密钥在传输过程中被篡改,需要对生成的一级密钥进行校验,具体是先通过一级握手解密运算电路3071使用一级密钥对一级密钥自身做一次加密,得到一级握手加密密钥信息。而后通过一级握手加密运算电路3081接收所述层级信息存储单元304传输的第一层握手请求数据,并采用所述一级握手加密密钥信息对所述第一层握手请求数据进行加密,得到第一层握手加密信息。而后接收所述层级信息存储单元304传输的第一层握手响应数据,将所述第一层握手响应数据与所述第一层握手加密信息进行比较,若两者匹配说明一级密钥没有被篡改,可以通过密钥选择单元310进行输出,否则可以发出提示信息。
二级密钥的生成过程如下:
二级密钥的生成过程与一级密钥类似,区别在于一级密钥作为二级密钥生成的输入参数(相当于一级密钥生成时输入的根密钥),具体是二级解密运算单元3062接收层级信息存储单元304的第二层源密钥,二级算法选择单元3112选择二级密钥加解密算法至二级解密运算单元3062,以使得二级解密运算单元3062采用二级密钥加解密算法应用所述一级密钥对所述第二层源密钥进行解密,得到二级密钥。如果当前用户的安全等级为二级,则密钥选择单元310可以选择所述二级密钥输出。
在输出之前,为了防止二级密钥在传输过程中被篡改,需要对生成的二级密钥进行校验,具体是先通过二级握手解密运算电路3072使用二级密钥对二级密钥自身做一次加密,得到二级握手加密密钥信息。而后通过二级握手加密运算电路3082接收所述层级信息存储单元304传输的第二层握手请求数据,并采用所述二级握手加密密钥信息对所述第二层握手请求数据进行加密,得到第二层握手加密信息。而后接收所述层级信息存储单元304传输的第二层握手响应数据,将所述第二层握手响应数据与所述第二层握手加密信息进行比较,若两者匹配说明二级密钥没有被篡改,可以通过密钥选择单元310进行输出,否则可以发出提示信息。
三级密钥的生成过程如下:
三级密钥的生成过程与二级密钥类似,区别在于二级密钥作为三级密钥生成的输入参数(相当于二级密钥生成时输入的一级密钥),具体是三级解密运算单元3063接收层级信息存储单元304的第三层源密钥,三级算法选择单元3113选择三级密钥加解密算法至三级解密运算单元3063,以使得三级解密运算单元3063采用三级密钥加解密算法应用所述二级密钥对所述第三层源密钥进行解密,得到三级密钥。如果当前用户的安全等级为三级,则密钥选择单元310可以选择所述三级密钥输出。
在输出之前,为了防止三级密钥在传输过程中被篡改,需要对生成的三级密钥进行校验,具体是先通过三级握手解密运算电路3073使用三级密钥对三级密钥自身做一次加密,得到三级握手加密密钥信息。而后通过三级握手加密运算电路3083接收所述层级信息存储单元304传输的第三层握手请求数据,并采用所述三级握手加密密钥信息对所述第三层握手请求数据进行加密,得到第三层握手加密信息。而后接收所述层级信息存储单元304传输的第三层握手响应数据,将所述第三层握手响应数据与所述第三层握手加密信息进行比较,若两者匹配说明三级密钥没有被篡改,可以通过密钥选择单元310进行输出,否则可以发出提示信息。
当然,在另一些实施例中,所述用户等级的数量还可以为其他数值,如两个安全等级或四个以上的安全等级,相对应地,所述密钥输出信息的层级也可以为其他数量,具体根据实际需要进行设置。当密钥输出信息的层级为其他数量时,其生成的方式可以参考图3所示的电路应用过程,此处不再赘述。
在某些实施例中,ssd固态硬盘主控芯片安全密钥生成系统30生成的密钥输出信息可以被存储至密钥记录单元40中,以等到后续其他功能模块的选择调用,如可以用于在芯片电路过程中对不同运算数据的加解密等。
如图4所示,本申请的第三方面还提供了一种密钥生成方法,所述方法包括以下步骤:
首先进入步骤s401源数据解密单元获取加密后的源数据进行解密,得到解密后的源密钥和解密后的层级加解密算法;
而后进入步骤s402根密钥运算单元根据所述解密后的源密钥计算得到根密钥信息;
而后进入步骤s403层级解密运算单元获取层级密钥信息、层级密钥加解密算法和根密钥信息,根据所述层级密钥加解密算法采用所述根密钥信息对所述层级密钥信息进行解密,得到密钥输出信息。
通常,ssd固态硬盘主控芯片安全密钥生成装置在投入使用前需要进行一定的出厂设置,具体是将密钥生成密钥过程中需要用到的一些校验数据固化在ssd固态硬盘主控芯片安全密钥生成装置内部,因而如图5所示,所述方法包括以下步骤:
首先进入步骤s501预先设置用户安全等级,并将设置的用户安全等级存储至用户等级存储单元。
而后进入步骤s502设置源密钥。
步骤s502后可以进入步骤s503根据源密钥通过派生算法得到层级密钥信息和握手请求信息。同步地,可以进入步骤s505对当前用户设置对应的安全等级和该用户对应的用户验证信息。
步骤s503后可以进入步骤s504将所述层级密钥信息和所述握手请求信息存储于层级密钥信息存储单元中
而后进入步骤s506完成用户密钥初始设置。
如图6所示,在某些实施例中,所述密钥生成方法包括以下步骤:
首先进入步骤s601源数据存储单元存储加密后的源数据,所述源数据包括源密钥和层级加解密算法。
而后可以进入步骤s602源数据解密单元获取所述加密后的源数据进行解密,得到解密后的源密钥和解密后的层级加解密算法,并将所述解密后的源密钥送往根密钥运算单元,将所述解密后的层级密钥加解密算法存储于算法信息存储单元中。
与步骤s601和步骤s602相并行地,可以进入步骤s603层级信息存储单元存储层级密钥信息;用户验证信息存储单元存储用户验证信息。
步骤s602和步骤s603后可以进入步骤s604根密钥运算单元获取所述用户验证信息和解密后的源密钥,根据所述解密后的源密钥对所述用户验证信息进行哈希运算,得到根密钥信息。
步骤s604之后可以进入步骤s605层级解密运算单元获取所述层级密钥加解密算法、所述层级密钥信息和所述根密钥信息,采用所述层级密钥加解密算法应用所述根密钥信息对所述层级密钥信息进行解密,得到密钥输出信息。
需要说明的是,尽管在本文中已经对上述各实施例进行了描述,但并非因此限制本实用新型的专利保护范围。因此,基于本实用新型的创新理念,对本文所述实施例进行的变更和修改,或利用本实用新型说明书及附图内容所作的等效结构或等效流程变换,直接或间接地将以上技术方案运用在其他相关的技术领域,均包括在本实用新型的专利保护范围之内。
1.一种ssd固态硬盘主控芯片安全密钥生成装置,其特征在于,包括:数据读取单元、信号选择单元、加解密运算单元、密钥缓存单元和输出控制单元;
所述信号选择单元包括第一信号选择器、第二信号选择器、第三信号选择器、第四信号选择器;所述密钥缓存单元包括多个密钥缓存模块;
所述数据读取单元与所述第一信号选择器连接,所述第一信号选择器与所述加解密运算单元连接,所述加解密运算单元与所述第二信号选择器连接,所述第二信号选择器与各个所述密钥缓存模块连接,各个所述密钥缓存模块与所述第三信号选择器连接,所述第三信号选择器与所述第四信号选择器连接,所述第四信号选择器分别与所述输出控制单元、所述第一信号选择器连接。
2.如权利要求1所述的ssd固态硬盘主控芯片安全密钥生成装置,其特征在于,还包括:加解密选通单元;
所述加解密运算单元包括多个加解密运算电路,所述信号选择单元还包括第五信号选择器;
所述第一信号选择器与所述加解密选通单元连接,所述加解密选通单元与各所述加解密运算电路连接,各所述加解密运算电路分别与所述第五信号选择器连接,所述第五信号选择器与所述第二信号选择器连接。
3.如权利要求2所述的ssd固态硬盘主控芯片安全密钥生成装置,其特征在于,所述加解密运算电路包括aes加解密运算电路、tdes加解密运算电路、sm4加解密运算电路中的一种或多种。
4.如权利要求2所述的ssd固态硬盘主控芯片安全密钥生成装置,其特征在于,所述信号选择单元还包括第六信号选择器,所述第六信号选择器分别与第四信号选择器、加解密选通单元连接。
5.如权利要求4所述的ssd固态硬盘主控芯片安全密钥生成装置,其特征在于,还包括初始密钥存储单元,所述初始密钥存储单元与所述加解密选通单元连接。
6.一种ssd固态硬盘主控芯片安全密钥生成系统,其特征在于,所述系统包括数据处理单元和ssd固态硬盘主控芯片安全密钥生成装置,所述ssd固态硬盘主控芯片安全密钥生成装置为如权利要求1至5任一项所述的ssd固态硬盘主控芯片安全密钥生成装置;
所述数据处理单元分别与所述数据读取单元、信号选择单元、加解密运算单元、输出控制单元连接。
7.如权利要求6所述的ssd固态硬盘主控芯片安全密钥生成系统,其特征在于,所述装置包括源数据存储单元,所述源数据存储单元与所述ssd固态硬盘主控芯片安全密钥生成装置中的数据读取单元连接,所述源数据存储单元用于存储加密后的源数据,所述源数据包括源密钥信息和/或层级加解密算法。
8.如权利要求6所述的ssd固态硬盘主控芯片安全密钥生成系统,其特征在于,所述装置还包括层级信息存储单元,所述层级信息存储单元与所述数据读取单元连接,所述层级信息存储单元存储有层级密钥信息。
9.如权利要求8所述的ssd固态硬盘主控芯片安全密钥生成系统,其特征在于,所述层级信息存储单元存储有握手请求信息和握手响应信息。
10.如权利要求6所述的ssd固态硬盘主控芯片安全密钥生成系统,其特征在于,所述装置包括至少一个功能模块,所述功能模块与所述输出控制单元连接。
技术总结