一种提取固态硬盘基本密钥的方法与流程

文档序号:19155220发布日期:2019-11-16 00:39阅读:1822来源:国知局
一种提取固态硬盘基本密钥的方法与流程

本发明属于电子数据恢复与取证领域,涉及一种提取固态硬盘基本密钥的方法。



背景技术:

在电子数据存储领域,随着固态硬盘ssd的存储大小不断的增加,以及固态硬盘ssd的价格的降低和读写速度上明显的优势,使得使用固态硬盘ssd的用户在不断增加。但是目前固态硬盘ssd的缺点也非常的明显,固态硬盘ssd的闪存芯片具有擦写次数限制,所以固态硬盘ssd的寿命要比机械硬盘短得多。如果固态硬盘ssd出现了硬件或者固件的损坏,需要恢复固态硬盘ssd中重要的用户数据。无论是修复硬件还是固件的损坏,目前都没有成熟的技术能够实现。所以,固态硬盘ssd在出现损坏的情况下,数据是很难恢复出来。本发明为固态硬盘ssd的数据恢复重要组成部分,将固态硬盘ssd的闪存芯片中直接提取的数据提取基本密钥。而用户数据的密钥生成对数据恢复有着至关重要的作用,同时也提高了数据恢复成功率。

包含主控芯片的u盘或者固态硬盘ssd等存储设备的加密算法较为简单,密钥算法多为左移或者右移n位(n>0)、取反等基础数学运算,分析其密钥生成算法较易。随着u盘或者固态硬盘ssd等存储设备愈加广泛的应用,加之主控芯片的发展,主控芯片的加密方式越来越多变、越来越复杂,特别是对加密复杂的ssd存储设备以及存储设备接口损坏、电路短路、断路、元器件损坏、电路板断裂等情况下,电子数据恢复与取证有关的解密正面临越来越大额度挑战。

现有技术中尚无一种提取固态硬盘基本密钥的方法,给该类包含主控芯片的存储设备的电子数据恢复与取证造成了巨大的困难。因此,急需一种提取固态硬盘基本密钥的方法,以弥补电子数据恢复与取证困难的不足。



技术实现要素:

本发明针对现有技术的不足问题,提出了一种提取固态硬盘基本密钥的方法:采取分析数据表中的布局并获取查找关键字,获取扇区的基本密钥并组合为固态硬盘基本密钥的方法,达到解密数据的目的。

为便于描述,本发明可能包含如下术语:

在主控芯片包含一个或多个通道(channel),每个通道包含一个或多个块(block),每个块包含一个或多个页(page),每个页包含一个页管理字段(或称系统区sa:systemarea,以下统称页管理字段)及多个扇区(sector),每个扇区包含固定字节长度的数据及固定字节长度的扇区管理字段(或称管理数据md:managedata,以下统称扇区管理字段)。

本发明申请包括以下步骤:

s100:读取所述固态硬盘的主控芯片中各块前八个字节的内容并获取所述主控芯片的数据表,读取所述数据表中的布局,所述布局包括通道个数、各通道所包含的块数、各块所包含的页数、各页所包含的扇区数、页管理字段字节长度、扇区字节长度、扇区管理字段字节长度;

s200:读取任一通道中数据的镜像,根据块结构和第一标识提取块数据;

s300:读取当前块数据中各页的各扇区中前两个字节内容,用以生成第一数据;

s400:将所述第一数据划分为两字节一组,读取第一组的内容;

s500:将当前组的内容作为关键字,在用户数据区中查找所述关键字,将查找到的当前关键字的前两个字节的内容作为对应当前扇区的基本密钥,将所述对应当前扇区的基本密钥尾加至临时密钥文件中;

s600:是否完成所述第一数据中其他组的操作,如果是,执行步骤s800,否则,执行步骤s700;

s700:读取下一组的内容,执行步骤s500;

s800:获取当前临时密钥文件作为当前块的基本密钥,完成基本密钥的提取。

优选地,所述用户数据区不包含页管理字段及扇区管理字段。

优选地,所述步骤s200包括以下步骤:

s201:根据块结构,读取当前块的前八个字节内容;

s202:当前块的前八个字节内容是否等于所述第一标识,如果是,提取块数据并执行步骤s300,否则结束流程。

本发明的有益效果是解决了现有技术中尚无一种提取固态硬盘基本密钥的方法的技术问题。

附图说明

图1为本发明所提供的方法的总流程图;

图2为本发明一个实施例中密钥块的数据结构示意图。

具体实施方式

本发明采用主控芯片型号为sm2246xt作为实施例。下面结合附图和实施例对本发明作进一步阐述。

图1示出了本发明所提供的方法的总流程图。

如图1所示,本发明的方法包括以下步骤:

s100:读取固态硬盘的主控芯片(主控芯片型号为sm2246xt)中各块前八个字节的内容并获取主控芯片的数据表,读取数据表中的布局,包括扇区字节长度、扇区管理字段字节长度、页管理字段字节长度、每块所包含的页数及密钥块的初始字节。

图2示出了本发明一个实施例中密钥块的数据结构示意图。如图2所示,主控芯片包含一个或多个通道(channel);为简洁考虑,图中未示出通道(channel)。每个通道包含一个或多个块100(block),每个块100包含一个或多个页101(page),每个页101包含一个页管理字段1012(或称系统区sa:systemarea,以下统称页管理字段)及多个扇区1011(sector),每个扇区包含固定字节长度的数据10111及固定字节长度的扇区管理字段10112(或称管理数据md:managedata,以下统称扇区管理字段)。

以该主控芯片为例,其布局为一个通道包含4096块,一个块包含256页,一个页包含16个扇区,一个扇区字节长度为1098字节,其中,数据字节长度为1024字节,扇区管理字段的字节长度为74字节;页管理字段字节长度为48字节。

s200:根据图2所示的块结构,读取任一通道中数据的镜像并查找第一标识0x498383c2c8a7fce7,当查找到该第一标识即提取当前块数据;包括以下步骤:

s201:根据块结构,读取当前块的前八个字节内容;

s202:判断当前块的前八个字节内容是否等于第一标识0x498383c2c8a7fce7,如果是,提取块数据并执行步骤s300,否则结束流程。

s300:读取当前块数据中各页的各扇区中前两个字节内容,用以生成第一数据;具体地,在步骤s200所提取的当前块数据中,以字节长度为1024字节的扇区为单位,每页包含16个扇区,从当前块数据的第一页开始,依次提取第1至16个扇区中各个扇区的前两个字节,这样每页就会提取出32字节的一组数据;对于一个块,需要依次提取第1至256页的数据,每个页都提取这样32字节的数据,这样组成8192字节的一组数据作为第一数据;

s400:将第一数据划分为两字节一组,读取第一组的内容;

s500:将当前组的内容作为关键字,在用户数据区中查找关键字,将查找到的当前关键字的前两个字节的内容作为对应当前扇区的基本密钥,将对应当前扇区的基本密钥尾加至临时密钥文件中;需要注意的是,用户数据区不包含页管理字段及扇区管理字段;

s600:是否完成第一数据中其他组的操作,如果是,执行步骤s800,否则,执行步骤s700;

s700:读取下一组的内容,执行步骤s500;

s800:获取当前临时密钥文件作为当前块的基本密钥,完成基本密钥的提取。

通过本发明提供的方法,解决了现有技术中尚无一种提取固态硬盘基本密钥的方法的技术问题。

应当理解的是,本发明不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1