一种针对主控芯片的数据解密方法技术

技术编号:22502321 阅读:18 留言:0更新日期:2019-11-09 02:39
本发明专利技术公开了一种针对主控芯片的数据解密方法,其特征在于包括以下步骤:S100:获取主控芯片的数据表,读取所述数据表中的布局;S200:读取当前块中填用户数据的底层数据并查找所述初始字节;S300:判断所述初始字节后是否具有连续N字节内容为0xFF,如果是,执行步骤S200,否则执行步骤S400;S400:将当前块作为基本密钥块;S500:生成第一块号;S600:判断所述第三块号中以两字节为一组的块号是否为递增/递减,如果是,执行步骤S700,否则,寻址一下块,执行步骤S500;S700:判断所述第三块号中连续缺失的块号个数是否大于M,如果是,执行步骤S600,否则,执行步骤S800;S800:形成完整密钥块;S900:获取解密数据。

A data decryption method for the main control chip

The invention discloses a data decryption method for the main control chip, which is characterized in that the following steps are included: S100: obtaining the data table of the main control chip, reading the layout in the data table; S200: reading the bottom layer data filled with user data in the current block and finding the initial byte; S300: judging whether there is a continuous n-byte content after the initial byte is 0xff, if so Step S200, otherwise step S400; S400: take the current block as the basic key block; S500: generate the first block number; S600: determine whether the block number in the two byte group of the third block number is increasing / decreasing; if so, step s700, otherwise address the next block, and then step S500; s700: determine whether the number of consecutive missing block numbers in the third block number is No is greater than m, if yes, execute step S600, otherwise, execute step S800; S800: form a complete key block; S900: obtain decrypted data.

【技术实现步骤摘要】
一种针对主控芯片的数据解密方法
本专利技术属于电子数据恢复与取证领域,涉及一种针对主控芯片的数据解密方法。
技术介绍
包含主控芯片的U盘或者固态硬盘SSD等存储设备的加密算法较为简单,密钥算法多为左移或者右移n位(n>0)、取反等基础数学运算,分析其密钥生成算法较易。随着U盘或者固态硬盘SSD等存储设备愈加广泛的应用,加之主控芯片的发展,主控芯片的加密方式越来越多变、越来越复杂,特别是对加密复杂的SSD存储设备以及存储设备接口损坏、电路短路、断路、元器件损坏、电路板断裂等情况下,电子数据恢复与取证有关的解密正面临越来越大额度挑战。现有技术中尚无一种针对主控芯片的数据解密方法,给该类包含主控芯片的存储设备的电子数据恢复与取证造成了巨大的困难。因此,急需一种针对该类主控芯片的存储设备的数据解密方法,以弥补电子数据恢复与取证困难的不足。
技术实现思路
本专利技术针对现有技术的不足问题,提出了一种针对主控芯片的数据解密方法:采取分析并获取管理字密钥的方法,获取完整密钥块,达到解密数据的目的。为便于描述,本专利技术可能包含如下术语:在主控芯片包含一个或多个通道(channel),每个通道包含一个或多个块(block),每个块包含一个或多个页(page),每个页包含一个页管理字段(或称系统区SA:SystemArea,以下统称页管理字段)及多个扇区(sector),每个扇区包含固定字节长度的数据及固定字节长度的扇区管理字段(或称管理数据MD:ManageData,以下统称扇区管理字段)。本专利技术申请包括以下步骤:S100:获取主控芯片的数据表,读取所述数据表中的布局,包括扇区字节长度、扇区管理字段字节长度、页管理字段字节长度、每块所包含的页数及密钥块的初始字节;S200:读取当前块中填用户数据的底层数据并查找所述初始字节;S300:判断所述初始字节后是否具有连续N字节内容为0xFF,如果是,表示当前块为无效块并寻址下一块,执行步骤S200,否则执行步骤S400;S400:将当前块作为基本密钥块,所述基本密钥块包括管理字密钥及数据区密钥;S500:生成第一块号;S600:遍历并读取所述另一同型号主控芯片的页管理字段中的块号作为第二块号,所述第二块号为小端格式存储且以两字节为一组,将所述第一块号与所述第二块号对应的两字节为一组进行异或,其结果按升序/降序排列,作为第三块号,所述第三块号为小端格式存储且以两字节为一组;判断所述第三块号中以两字节为一组的块号是否为递增/递减,如果是,执行步骤S700,否则,寻址一下块,执行步骤S500;S700:判断所述第三块号中连续缺失的块号个数是否大于M,如果是,则所述第三块号为不可用密钥块,执行步骤S600,否则,表示所述第三块号为可用密钥块,执行步骤S800;S800:所述数据区密钥保持不变并采用所述第三块号替换所述基本密钥块中的所述管理字密钥,用以形成完整密钥块;S900:获取解密数据:以块为单位,将各个块与所述完整密钥块进行按位异或得到解密数据。优选地,N为不小于4的自然数,M为大于10的自然数。优选地,所述步骤S500包括以下步骤:S501:将另一同型号主控芯片的底层数据填零并读取所述填零的底层数据;S502:将所述填零的底层数据与所述填用户数据的底层数据按位异或,用以生成临时解密数据;S503:获取所述临时解密数据中的块号:读取所述临时解密数据中各个页管理字段,并读取各个所述页管理字段第20、第21字节的内容作为第一块号,所述第一块号为小端格式存储且以两字节为一组,其中,同一块内各个页具有相同的块号。本专利技术的有益效果是解决了现有技术中尚无一种针对主控芯片的数据解密方法的技术问题。附图说明图1为本专利技术所提供的方法的总流程图;图2为本专利技术一个实施例中密钥块的数据结构示意图;图3为本专利技术一个实施例中第一块号的数据结构示意图。具体实施方式本专利技术采用主控芯片型号为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:读取当前块中填用户数据的底层数据并查找初始字节:查找以初始字节4983开头的块,具体地,本专利技术实施例的该主控芯片的布局分为上下2048块,合计4096块,且块为两两一组。上下2048块对称分布。因此,查找时由上至下遍历2048块即可。S300:判断初始字节为4983后是否具有连续4字节内容为0xFF,如果是,表示当前块为无效块并寻址下一块,执行步骤S200,否则执行步骤S400;S400:将当前块作为基本密钥块,基本密钥块包括74字节的管理字密钥及1024字节的数据区密钥;S500:生成第一块号,步骤S500包括以下步骤:S501:将另一同型号主控芯片的底层数据填零并读取该填零的底层数据;S502:将该填零的底层数据与填用户数据的底层数据按位异或,用以生成临时解密数据;S503:获取临时解密数据中的块号:读取临时解密数据中的48字节的各个页管理字段,并读取各个页管理字段第20、第21字节的内容作为第一块号,第一块号为小端格式存储且以两字节为一组,其中,同一块内各个页具有相同的块号。图3示出了本专利技术一个实施例中第一块号的数据结构示意图。如图3中矩形框的内容所示,两字节为一组的第20、第21字节的内容为0x350C,由于是小端格式存储,因此,其块号为0x0C35,且该块内各个页具有相同的块号0x0C35。S600:遍历并读取另一同型号主控芯片的页管理字段中的块号作为第二块号,第二块号为小端格式存储且以两字节为一组,将第一块号与第二块号对应的两字节为一组进行异或,其结果按升序/降序排列,作为第三块号,第三块号为小端格式存储且以两字节为一组;判断第三块号中以两字节为一组的块号是否为递增/递减,如果是,执行步骤S700,否则,寻址一下块,执行步骤S500;S700:判断第三块号中连续缺失的块号个数是否大于10,如果是,则第三块号为不可用密钥块,执行步骤S600,否则,表示第三块号为可用密钥块,执行步骤S800;S800:数据区密钥保持不变并采用第三块号替换基本密钥块中的管理本文档来自技高网...

【技术保护点】
1.一种针对主控芯片的数据解密方法,其特征在于包括以下步骤:S100:获取主控芯片的数据表,读取所述数据表中的布局,包括扇区字节长度、扇区管理字段字节长度、页管理字段字节长度、每块所包含的页数及密钥块的初始字节;S200:读取当前块中填用户数据的底层数据并查找所述初始字节;S300:判断所述初始字节后是否具有连续N字节内容为0xFF,如果是,表示当前块为无效块并寻址下一块,执行步骤S200,否则执行步骤S400;S400:将当前块作为基本密钥块,所述基本密钥块包括管理字密钥及数据区密钥;S500:生成第一块号;S600:遍历并读取所述另一同型号主控芯片的页管理字段中的块号作为第二块号,所述第二块号为小端格式存储且以两字节为一组,将所述第一块号与所述第二块号对应的两字节为一组进行异或,其结果按升序/降序排列,作为第三块号,所述第三块号为小端格式存储且以两字节为一组;判断所述第三块号中以两字节为一组的块号是否为递增/递减,如果是,执行步骤S700,否则,寻址一下块,执行步骤S500;S700:判断所述第三块号中连续缺失的块号是否多于M个,如果是,则所述第三块号为不可用密钥块,执行步骤S600,否则,表示所述第三块号为可用密钥块,执行步骤S800;S800:所述数据区密钥保持不变并采用所述第三块号替换所述基本密钥块中的所述管理字密钥,用以形成完整密钥块;S900:获取解密数据:以块为单位,将各个块与所述完整密钥块进行按位异或得到解密数据。...

【技术特征摘要】
1.一种针对主控芯片的数据解密方法,其特征在于包括以下步骤:S100:获取主控芯片的数据表,读取所述数据表中的布局,包括扇区字节长度、扇区管理字段字节长度、页管理字段字节长度、每块所包含的页数及密钥块的初始字节;S200:读取当前块中填用户数据的底层数据并查找所述初始字节;S300:判断所述初始字节后是否具有连续N字节内容为0xFF,如果是,表示当前块为无效块并寻址下一块,执行步骤S200,否则执行步骤S400;S400:将当前块作为基本密钥块,所述基本密钥块包括管理字密钥及数据区密钥;S500:生成第一块号;S600:遍历并读取所述另一同型号主控芯片的页管理字段中的块号作为第二块号,所述第二块号为小端格式存储且以两字节为一组,将所述第一块号与所述第二块号对应的两字节为一组进行异或,其结果按升序/降序排列,作为第三块号,所述第三块号为小端格式存储且以两字节为一组;判断所述第三块号中以两字节为一组的块号是否为递增/递减,如果是,执行步骤S700,否则,寻址一下块,执行步骤S500;S700:判断所述第三块号中...

【专利技术属性】
技术研发人员:梁效宁许超明彭炼董超
申请(专利权)人:四川效率源信息安全技术股份有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1