储存装置数据加解密方法

文档序号:9598140阅读:456来源:国知局
储存装置数据加解密方法
【技术领域】
[0001]本发明涉及计算机技术领域,尤其涉及一种储存装置数据加解密方法。
【背景技术】
[0002]关于可卸式储存装置(以下称之为硬盘),数据加解密为保护用户数据安全性的常见方法。现有的硬盘加密技术通常是由软件(例如微软公司的Bitlock程序或者开源的Truecrypt程序等)在系统存储器中进行,或者是由储存装置的控制器在储存装置内部进行。上述硬盘加密技术的密钥会暴露在系统存储器中或连接储存装置的总线上,造成安全性下降。因此如何避免硬盘密钥暴露以及提升加密规则破解难度等,是本技术领域亟待解决的重要课题。

【发明内容】

[0003]根据本发明一种实施方式所实现的一储存装置数据加解密方法,包括:提供一加解密引擎,所述加解密引擎为硬件;自写入指令解析出写入指令信息,并将写入数据与所述写入指令信息传递至该加解密引擎;以及经由该加解密引擎将一硬盘密钥与所述写入指令信息组合,以便加密所述写入数据,并将加密后的所述写入数据透过一通讯端口写入一储存装置。
[0004]在一种实施方式中,该储存装置数据加解密方法还包括:自读取指令解析出读取指令信息,并将取自该储存装置未解密的读取数据与所述读取指令信息传递至该加解密引擎;且经由该加解密引擎将所述硬盘密钥与所述读取指令信息组合,以便将未解密的所述读取数据解密,以响应所述读取指令。
[0005]一种实施方式中,所述写入指令信息包括所述写入指令所指示的逻辑地址以及扇区的数量,且所述读取指令信息包括所述读取指令所指示的逻辑地址以及扇区的数量。该加解密引擎是根据所述逻辑地址以所述扇区为单位作数据加解密。
[0006]一种实施方式中,该储存装置数据加解密方法还包括:提供一可信赖平台模块,该可信赖平台模块包括一硬盘密钥供应硬件,且所述硬盘密钥来自该硬盘密钥供应硬件。该加解密引擎可遵循一密钥交换协议与该硬盘密钥供应硬件通讯以取得所述硬盘密钥,以维护硬盘密钥安全性。另一种实施方式中,该加解密引擎是与该硬盘密钥供应硬件封装在一起,有效避免硬盘密钥曝光于外部。另一种实施方式中,该加解密引擎是与该硬盘密钥供应硬件制作在同一芯片上,有效避免硬盘密钥曝光于外部。
[0007]在本发明的上述储存装置数据加解密方法中的加解密引擎以硬件方式实现,数据安全性大大提升。此外,在数据加解密时还考虑写入/读取指令信息,大大提升被破解的难度。
[0008]下文特举实施例,并配合所附图示,详细说明本
【发明内容】

【附图说明】
[0009]图1图解根据本发明一种实施方式所实现的一芯片组100 ;
[0010]图2A图解XTS-AES数据加密技术;
[0011 ]图2B图解XTS-AES数据解密技术;
[0012]图3图解一可信赖平台模块300 ;
[0013]图4为硬盘密钥交换协议的流程图;
[0014]图5A为SATA硬盘写入的流程图;
[0015]图5B为SATA硬盘读取的流程图;
[0016]图6为采用NCQ DMA的SATA硬盘写入流程图;
[0017]图7为USB硬盘写入的流程图。
[0018]附图标记:
[0019]100:芯片组;102:储存装置主控制器;
[0020]104:加解密引擎;106:通讯端口 ;
[0021]108:储存装置;
[0022]202、204:加密运算硬件; 206:模乘组件;
[0023]208、210:模加组件;212:加密运算硬件;
[0024]214:解密运算硬件;216:模乘组件;
[0025]218、220:模加组件;
[0026]300:可信赖平台模块;302:可信赖平台模块软件;
[0027]304:硬盘密钥供应硬件;
[0028]aj:常数;
[0029]C:密文;cc:数据;
[0030]Cmd_Info:写入/读取指令信息;
[0031]Data:未加密的写入数据/解密的读取数据;
[0032]Data_Encrypted:加密的写入数据/未解密的读取数据;
[0033]DEK:硬盘密钥;
[0034]DEK_keyUDEK_key2:组成硬盘密钥DEK的两部分密钥;
[0035]p:明文;PP:数据;
[0036]S402…S406、S502…S514、S522…S534、S602…S620、S702…S714:步骤;
[0037]T:模乘结果。
【具体实施方式】
[0038]以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本
【发明内容】
。实际发明范围应依照申请专利范围来界定。
[0039]图1图解根据本发明一种实施方式所实现的一芯片组100。该芯片组100包括一储存装置主控制器102以及一加解密引擎104。该储存装置主控制器102控制一通讯端口(communicat1n port) 106与一储存装置108之间的通讯。通讯端口 106举例而言可以是串行高级技术附件(SATA)接口,也可以是通用串行总线(USB)接口。该储存装置108又称硬盘,可为机械硬盘或固态硬盘等。该加解密引擎104为硬件,耦接该储存装置主控制器102,以实现对写入或读出该储存装置108的数据进行加解密。由于该加解密引擎104以硬件方式封闭于芯片组100中,数据安全性大大提升。一种实施方式中,加解密引擎104所作的数据加解密完全不使用芯片组100外部空间作数据暂存。一种实施方式中,由北桥以及南桥组成的芯片组100是将该储存装置主控制器102以及该加解密引擎104制作在南桥内。在另一种实施方式中,还可将该加解密引擎104集成在该储存装置主控制器102内部,进一步提升加解密的安全性。至于该储存装置主控制器102,其包括自所接收的写入/读取指令解析出写入/读取指令信息Cmd_Info。在一种实施方式中,这里的写入/读取指令是由主机(图中未示出)的直接内存存取(DMA)控制器发送至该芯片组100的DMA请求。
[0040]该加解密引擎104是在数据加解密时还考虑写入/读取指令信息Cmd_Info,大大提升被破解的难度。
[0041]此段落讨论写入指令。该储存装置主控制器102会自所接收的写入指令解析出写入指令信息Cmd_Info,并将写入数据Data与所述写入指令信息Cmd_Info传递至该加解密引擎104。该加解密引擎104将硬盘密钥DEK与所述写入指令信息Cmd_Info组合,以便加密所述写入数据Data,并将加密后的所述写入数据Data_Encrypted交由该储存装置主控制器102透过该通讯端口 106写入该储存装置108。
[0042]此段落讨论读取指令。该储存装置主控制器102自所接收的读取指令解析出读取指令信息Cmd_Info,并将取自该储存装置108的未解密的读取数据Data_Encrypted与所述读取指令信息Cmd_Info传递至该加解密引擎104。该加解密引擎104将所述硬盘密钥DEK与所述读取指令信息Cmd_Info组合,以便将未解密的所述读取数据Data_Encrypted解密,解密后的读取数据Data交由该储存装置主控制器102响应所述读取指令。
[0043]DMA请求所存取的数据是以格式相对固定的数据块为单位进行传输,方便本发明的加解密引擎104进行自动的加解密操作,无需软件参与。DMA请求的写入/读取指令中包括其要存取的逻辑地址(例如,LBA)及扇区(sector)数量。一种实施方式中,加解密引擎104是根据写入/读取指令所指示的逻辑地址(例如,LBA)中的扇区号以扇区为单位作数据加解密;例如,XTS-AES/SM4数据加解密技术。写入/读取指令信息Cmd_Info包括所述写入/读取指令所指示的逻辑地址及扇区数量。
[0044]图2A图解XTS-AES数据加密技术。写入指令信息Cmd_Info包括写入指令所指示的硬盘扇区号i。硬盘密钥DEK由密钥DEK_keyl以及密钥DEK_key2两部分组成。硬盘扇区号i经过加密运算硬件202与密钥DEK_key2结合后,是由模乘组件206与常数aj结合,模乘结果T是经模加组件208与未加密的写入数据p (即「明文」,图1以Data标号)结合,模加结果PP经过加密运算硬件204与密钥DEK_keyl结合后,产生的数据cc将由模加组件210与模乘结果T结合,获得加密的写入数据C(即「密文」,图1以Data_Encrypted标号)。图2A是以XTS-AES加密算法为例说明,但本发明并不限于此,采取其他加密算法也落入本发明欲保护的范围。
[0045]图2B图解XTS-AES数据解密技术。读取指令信息Cmd_Info包括读取指令所指示的硬盘扇区号i。硬盘密钥DEK由密钥DEK_keyl以及密钥DEK_key2两部分组成。硬盘扇区号i经过加密运算硬件212与密钥D
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1