CN110427765A - 一种生成固态硬盘中用户数据密钥的方法 - Google Patents

一种生成固态硬盘中用户数据密钥的方法 Download PDF

Info

Publication number
CN110427765A
CN110427765A CN201910699658.9A CN201910699658A CN110427765A CN 110427765 A CN110427765 A CN 110427765A CN 201910699658 A CN201910699658 A CN 201910699658A CN 110427765 A CN110427765 A CN 110427765A
Authority
CN
China
Prior art keywords
exclusive
several
number several
data
current
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910699658.9A
Other languages
English (en)
Other versions
CN110427765B (zh
Inventor
梁效宁
彭炼
许超明
董超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SICHUAN XLY INFORMATION SAFETY TECHNOLOGY Co Ltd
Original Assignee
SICHUAN XLY INFORMATION SAFETY TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SICHUAN XLY INFORMATION SAFETY TECHNOLOGY Co Ltd filed Critical SICHUAN XLY INFORMATION SAFETY TECHNOLOGY Co Ltd
Priority to CN201910699658.9A priority Critical patent/CN110427765B/zh
Publication of CN110427765A publication Critical patent/CN110427765A/zh
Application granted granted Critical
Publication of CN110427765B publication Critical patent/CN110427765B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本发明公开了一种生成固态硬盘中用户数据密钥的方法,其特征在于包括以下步骤:S100:获取所述固态硬盘中主控芯片的数据表,读取所述数据表中的布局;S200:读取任一通道中数据的镜像,根据块结构和第一标识提取块数据;S300:读取当前块数据中各页的各扇区中前两个字节内容,用以生成第一数据;S400:将所述第一数据划分为两字节一组,读取第一组的内容;S500:获取数据变换因子;S600:生成单个扇区的密钥;S700:是否完成所有扇区的密钥的生成,如果是,执行步骤S900,否则,执行步骤S800;S800:读取下一组号及对应的两字节的内容,执行步骤S600;S900:将各个单个扇区的密钥顺序组合为当前块的用户数据密钥。

Description

一种生成固态硬盘中用户数据密钥的方法
技术领域
本发明属于电子数据恢复与取证领域,涉及一种生成固态硬盘中用户数据密钥的方法。
背景技术
在电子数据存储领域,随着固态硬盘SSD容量的不断扩大以及固态硬盘SSD的成本不断的降低和读写速度上明显的优势,导致使用固态硬盘SSD的用户群不断增加,但是固态硬盘SSD的寿命要比机械硬盘低得多,如果固态硬盘SSD出现了硬件或者固件的损坏,需要恢复固态硬盘SSD中重要的用户数据,无论是修复硬件还是固件的损坏,目前都没有成熟的技术能够实现,本发明为固态硬盘SSD的数据恢复的重要组成部分,将固态硬盘SSD的闪存芯片中直接提取的数据进行解密。而用户数据的密钥生成对数据恢复有着至关重要的作用,同时也提高了数据恢复成功率。
包含主控芯片的U盘或者固态硬盘SSD等存储设备的加密算法较为简单,密钥算法多为左移或者右移n位(n>0)、取反等基础数学运算,分析其密钥生成算法较易。随着U盘或者固态硬盘SSD等存储设备愈加广泛的应用,加之主控芯片的发展,主控芯片的加密方式越来越多变、越来越复杂,特别是对加密复杂的SSD存储设备以及存储设备接口损坏、电路短路、断路、元器件损坏、电路板断裂等情况下,电子数据恢复与取证有关的解密正面临越来越大额度挑战。
现有技术中尚无一种生成固态硬盘中用户数据密钥的方法,给该类包含主控芯片的存储设备的电子数据恢复与取证造成了巨大的困难。因此,急需一种生成固态硬盘中用户数据密钥的方法,以弥补电子数据恢复与取证困难的不足。
发明内容
本发明针对现有技术的不足问题,提出了一种生成固态硬盘中用户数据密钥的方法:获取数据变换因子并进行数据变换以获取用户数据密钥的方法,达到解密数据的目的。
为便于描述,本发明可能包含如下术语:
在主控芯片包含一个或多个通道(channel),每个通道包含一个或多个块(block),每个块包含一个或多个页(page),每个页包含一个页管理字段(或称系统区SA:System Area,以下统称页管理字段)及多个扇区(sector),每个扇区包含固定字节长度的数据及固定字节长度的扇区管理字段(或称管理数据MD:Manage Data,以下统称扇区管理字段)。
本发明申请包括以下步骤:
S100:获取所述固态硬盘中主控芯片的数据表,读取所述数据表中的布局,所述布局包括通道个数、各通道所包含的块数、各块所包含的页数、各页所包含的扇区数、页管理字段字节长度、扇区字节长度、扇区管理字段字节长度;
S200:读取任一通道中数据的镜像,根据块结构和第一标识提取块数据;
S300:读取当前块数据中各页的各扇区中前两个字节内容,用以生成第一数据;
S400:将所述第一数据划分为两字节一组,读取第一组的内容;
S500:获取数据变换因子;
S600:生成单个扇区的密钥;
S700:是否完成所有扇区的密钥的生成,如果是,执行步骤S900,否则,执行步骤S800;
S800:读取下一组号及对应的两字节的内容,执行步骤S600;
S900:将各个单个扇区的密钥顺序组合为当前块的用户数据密钥。
优选地,所述步骤S500包括以下步骤:
S501:获取用户数据密钥块并给N赋初值为0:获取当前通道中数据的镜像,根据块结构、页结构及扇区结构,删除各页的页管理字段及各页中各扇区的扇区管理字段,用以获取用户数据密钥块;
S502:是否在所述用户数据密钥块查找到0xN000,如果是,执行步骤S506,否则执行步骤S503;
S503:是否在所述用户数据密钥块查找到0xN001,如果是,执行步骤S506,否则执行步骤S504;
S504:是否在所述用户数据密钥块查找到0xN002,如果是,执行步骤S506,否则执行步骤S505;
S505:是否在所述用户数据密钥块查找到0xN003,如果是,执行步骤S506,否则执行步骤S508;
S506:在查找到0xN00M的所述用户数据密钥块中,将当前0xN00M所在地址向后偏移2字节并读取连续2字节的内容,其中,M为0,1,2,3中任一数字;
S507:将步骤S506所读取前两字节的内容以尾加方式写入所述数据变换因子;
S508:当前N是否小于或等于0x0F,如果是,执行步骤S509,否则执行步骤S510;
S509:N=N+1,执行步骤S502;
S510:输出所述数据变换因子。
优选地,所述步骤S600包括以下步骤:
S601:所述第一数据以两字节为一组且按升序/降序排列,依次编号作为组号,组号与扇区号各自一一对应;
S602:读取所述第一数据的当前组的内容作为第二数据,将第二数据的高八比特位数据记为H,低八比特位数据记为L;
S603:将第二数据的高四比特位数据记为K,读取所述数据变换因子中第K+1组的内容作为第三数据;
S604:将第三数据按四比特位为一组,由高位至低位依次记为数1、数2、数3及数4;
S605:对当前H的低四位取整并进行数据变换:
S606:对当前H的低四位取余并进行数据变换:
S607:对当前L的高四位进行数据变换:
S608:对当前L的低四位取整并进行数据变换:
S609:生成用户数据密钥:
当前第四数据的高8位=数1*16+数2,
当前第四数据的低8位=数3*16+数4,
将当前第四数据以尾加方式写入用户数据密钥;
S610:是否完成当前扇区的用户数据密钥的生成,如果是,执行步骤S700,否则,执行步骤S611;
S611:将当前第四数据的值赋值给第二数据,将第二数据的高八比特位数据记为H,低八比特位数据记为L,执行步骤S603。
优选地,所述步骤S605的具体步骤如下:
当前H的低四位除以4取整,
如果结果为0,不做处理;
如果结果为1,数1=数1异或0x7,数2=数2异或0x4,数3=数3异或0x4;
如果结果为2,数1=数1异或0xe,数2=数2异或0x8,数3=数3异或0x8;
如果结果为3,数1=数1异或0x9,数2=数2异或0xc,数3=数3异或0xc。
优选地,所述步骤S606的具体步骤如下:
当前H的低四位除以4取余,
如果结果为0,不做处理;
如果结果为1,数1=数1异或0xD,数2=数2异或0xD,数3=数3异或0x1,数4=数4异或0xC;
如果结果为2,数1=数1异或0xB,数2=数2异或0xB,数3=数3异或0x3,数4=数4异或0x9;
如果结果为3,数1=数1异或0x6,数2=数2异或0x6,数3=数3异或0x2,数4=数4异或0x5。
6.根据权利要求3所述的一种生成固态硬盘中用户数据密钥的方法,其特征在于,所述步骤S607的具体步骤如下:
根据当前L高四位的值,
如果结果为0,不做处理;
如果值为1,数1=数1异或0x0,数2=数2异或0x9,数3=数3异或0xC,数4=数4异或0xC;
如果值为2,数1=数1异或0xC,数2=数2异或0xE,数3=数3异或0x8,数4=数4异或0x4;
如果值为3,数1=数1异或0xC,数2=数2异或0x7,数3=数3异或0x4,数4=数4异或0x8;
如果值为4,数1=数1异或0x4,数2=数2异或0x1,数3=数3异或0x1,数4=数4异或0x5;
如果值为5,数1=数1异或0x4,数2=数2异或0x8,数3=数3异或0xD,数4=数4异或0x9;
如果值为6,数1=数1异或0x8,数2=数2异或0xF,数3=数3异或0x9,数4=数4异或0x1;
如果值为7,数1=数1异或0x8,数2=数2异或0x6,数3=数3异或0x5,数4=数4异或0xD;
如果值为8,数1=数1异或0x8,数2=数2异或0x1,数3=数3异或0x1,数4=数4异或0x9;
如果值为9,数1=数1异或0x8,数2=数2异或0x8,数3=数3异或0xD,数4=数4异或0x5;
如果值为10,数1=数1异或0x4,数2=数2异或0xF,数3=数3异或0x9,数4=数4异或0xD;
如果值为11,数1=数1异或0x4,数2=数2异或0x6,数3=数3异或0x5,数4=数4异或0x1;
如果值为12,数1=数1异或0xC,数2=数2异或0x0,数3=数3异或0x0,数4=数4异或0xC;
如果值为13,数1=数1异或0xC,数2=数2异或0x9,数3=数3异或0xC,数4=数4异或0x0;
如果值为14,数1=数1异或0x0,数2=数2异或0xE,数3=数3异或0x8,数4=数4异或0x8;
如果值为15,数1=数1异或0x0,数2=数2异或0x7,数3=数3异或0x4,数4=数4异或0x4。
优选地,所述步骤S608的具体步骤如下:
S608:对当前L低四位取整的数据变换:
对当前L低四位除以4取整,
如果结果为0,不做处理;
如果结果为1,数1=数1异或0x0,数2=数2异或0x2,数3=数3异或0x3,数4=数4异或0x3;
如果结果为2,数1=数1异或0x0,数2=数2异或0x4,数3=数3异或0x6,数4=数4异或0x6;
如果结果为3,数1=数1异或0x0,数2=数2异或0x6,数3=数3异或0x5,数4=数4异或0x5。
本发明的有益效果是解决了现有技术中尚无一种生成固态硬盘中用户数据密钥的方法的技术问题。
附图说明
图1为本发明所提供的方法的总流程图;
图2为本发明一个实施例中密钥块的数据结构示意图;
图3为本发明一个实施例中获取数据变换因子的流程图;
图4为本发明一个实施例中生成单个扇区的密钥的流程图。
具体实施方式
本发明采用主控芯片型号为SM2246XT作为实施例。下面结合附图和实施例对本发明作进一步阐述。
图1示出了本发明所提供的方法的总流程图。如图1所示,本发明的方法包括以下步骤:
S100:获取固态硬盘中主控芯片型号为SM2246XT的数据表,读取数据表中的布局,包括扇区字节长度、扇区管理字段字节长度、页管理字段字节长度、每块所包含的页数及密钥块的初始字节。
图2示出了本发明一个实施例中密钥块的数据结构示意图。如图2所示,主控芯片包含一个或多个通道(channel);为简洁考虑,图中未示出通道(channel)。每个通道包含一个或多个块100(block),每个块100包含一个或多个页101(page),每个页101包含一个页管理字段1012(或称系统区SA:System Area,以下统称页管理字段)及多个扇区1011(sector),每个扇区包含固定字节长度的数据10111及固定字节长度的扇区管理字段10112(或称管理数据MD:Manage Data,以下统称扇区管理字段)。
以该主控芯片为例,其布局为一个通道包含4096块,一个块包含256页,一个页包含16个扇区,一个扇区字节长度为1098字节,其中,数据字节长度为1024字节,扇区管理字段的字节长度为74字节;页管理字段字节长度为48字节。
S200:根据图2所示的块结构,读取任一通道中数据的镜像并查找第一标识0x498383C2C8A7FCE7,当查找到该第一标识即提取当前块数据;
S300:读取当前块数据中各页的各扇区中前两个字节内容,用以生成第一数据;
S400:将第一数据划分为两字节一组,读取第一组的内容;
S500:获取数据变换因子。图3示出了本发明一个实施例中获取数据变换因子的流程图,如图3所示,包括以下步骤:
S501:获取用户数据密钥块并给N赋初值为0:获取当前通道中数据的镜像,根据块结构、页结构及扇区结构,删除各页的页管理字段及各页中各扇区的扇区管理字段,用以获取用户数据密钥块;
S502:是否在用户数据密钥块查找到0xN000,如果是,执行步骤S506,否则执行步骤S503;
S503:是否在用户数据密钥块查找到0xN001,如果是,执行步骤S506,否则执行步骤S504;
S504:是否在用户数据密钥块查找到0xN002,如果是,执行步骤S506,否则执行步骤S505;
S505:是否在用户数据密钥块查找到0xN003,如果是,执行步骤S506,否则执行步骤S508;
S506:在查找到0xN00M的用户数据密钥块中,将当前0xN00M所在地址向后偏移2字节并读取连续2字节的,其中,M为0,1,2,3中任一数字;
S507:将步骤S506所读取前两字节的内容以尾加方式写入数据变换因子;
S508:当前N是否小于或等于0x0F,如果是,执行步骤S509,否则执行步骤S510;
S509:N=N+1,执行步骤S502;
S510:输出数据变换因子,经分析,本发明实施例中主控芯片的数据变换因子为:
0x0000,0x0D1D,0x1A3A,0x1727,0x3747,0x3A5A,0x2D7D,0x2060,0x6E8E,0x6393,0x74B4,0x79A9,0x59C9,0x54D4,0x43F3,0x4EEE;
事实上,只要型号为SM2246XT的主控芯片,其数据变换因子均为:
0x0000,0x0D1D,0x1A3A,0x1727,0x3747,0x3A5A,0x2D7D,0x2060,0x6E8E,0x6393,0x74B4,0x79A9,0x59C9,0x54D4,0x43F3,0x4EEE。
S600:生成单个扇区的密钥。图4示出了本发明一个实施例中生成单个扇区的密钥的流程图。如图4所示,包括如下步骤:
S601:第一数据以两字节为一组且按组号进行升序/降序排列,组号与扇区号各自一一对应,例如,按组号进行升序/降序排列后的数据为0x2A000x2BC0...,即,组号为1的两字节为一组的数据为0x2A00,对应扇区为1扇区;同理,组号为2的两字节为一组的数据为0x2BC0,对应扇区为2扇区;
S602:读取第一数据的当前组的内容作为第二数据,将第二数据的高八比特位数据记为H,低八比特位数据记为L;例如,现在需要计算第二个扇区的密钥数据,就取出0x2BC0作为当前的第二数据,其高八比特位数据H为0x2B,低八比特位数据L为0xC0;
S603:将第二数据的高四比特位数据记为K,读取数据变换因子中第K+1组的内容作为第三数据;本实施例中,将第二数据的高四比特位数据为0x2,读取数据变换因子中第3组的内容0x1A3A作为第三数据;
S604:将第三数据0x1A3A按四比特位为一组,由高位至低位依次记为数1、数2、数3及数4;即,数1=0x1、数2=0xA、数3=0x3,数4=0xA;
S605:对当前H的低四位取整并进行数据变换,具体步骤如下:
当前H(即,0x2B)的低四位(即,0xB)除以4取整,
如果结果为0,不做处理;
如果结果为1,数1=数1异或0x7,数2=数2异或0x4,数3=数3异或0x4;
如果结果为2,数1=数1异或0xe,数2=数2异或0x8,数3=数3异或0x8;此实施例中结果为2,则按此情况处理。
如果结果为3,数1=数1异或0x9,数2=数2异或0xc,数3=数3异或0xc。
S606:对当前H的低四位取余并进行数据变换:
当前H(即,0x2B)的低四位(即,0xB)除以4取余,
如果结果为0,不做处理;
如果结果为1,数1=数1异或0xD,数2=数2异或0xD,数3=数3异或0x1,数4=数4异或0xC;
如果结果为2,数1=数1异或0xB,数2=数2异或0xB,数3=数3异或0x3,数4=数4异或0x9;
如果结果为3,数1=数1异或0x6,数2=数2异或0x6,数3=数3异或0x2,数4=数4异或0x5;此实施例中结果为3,则按此情况处理。
S607:对当前L的高四位进行数据变换:
根据当前L(即,0xC0)高四位(即,0xC)的值,
如果结果为0,不做处理;
如果值为1,数1=数1异或0x0,数2=数2异或0x9,数3=数3异或0xC,数4=数4异或0xC;
如果值为2,数1=数1异或0xC,数2=数2异或0xE,数3=数3异或0x8,数4=数4异或0x4;
如果值为3,数1=数1异或0xC,数2=数2异或0x7,数3=数3异或0x4,数4=数4异或0x8;
如果值为4,数1=数1异或0x4,数2=数2异或0x1,数3=数3异或0x1,数4=数4异或0x5;
如果值为5,数1=数1异或0x4,数2=数2异或0x8,数3=数3异或0xD,数4=数4异或0x9;
如果值为6,数1=数1异或0x8,数2=数2异或0xF,数3=数3异或0x9,数4=数4异或0x1;
如果值为7,数1=数1异或0x8,数2=数2异或0x6,数3=数3异或0x5,数4=数4异或0xD;
如果值为8,数1=数1异或0x8,数2=数2异或0x1,数3=数3异或0x1,数4=数4异或0x9;
如果值为9,数1=数1异或0x8,数2=数2异或0x8,数3=数3异或0xD,数4=数4异或0x5;
如果值为10,数1=数1异或0x4,数2=数2异或0xF,数3=数3异或0x9,数4=数4异或0xD;
如果值为11,数1=数1异或0x4,数2=数2异或0x6,数3=数3异或0x5,数4=数4异或0x1;
如果值为12,数1=数1异或0xC,数2=数2异或0x0,数3=数3异或0x0,数4=数4异或0xC;此实施例中值为0xC,则按此情况处理。
如果值为13,数1=数1异或0xC,数2=数2异或0x9,数3=数3异或0xC,数4=数4异或0x0;
如果值为14,数1=数1异或0x0,数2=数2异或0xE,数3=数3异或0x8,数4=数4异或0x8;
如果值为15,数1=数1异或0x0,数2=数2异或0x7,数3=数3异或0x4,数4=数4异或0x4。
S608:对当前L的低四位取整并进行数据变换:
对当前L(即0xC0)低四位(即0x0)除以4取整,
如果结果为0,不做处理;此实施例中值为0x0,则按此情况处理
如果结果为1,数1=数1异或0x0,数2=数2异或0x2,数3=数3异或0x3,数4=数4异或0x3;
如果结果为2,数1=数1异或0x0,数2=数2异或0x4,数3=数3异或0x6,数4=数4异或0x6;
如果结果为3,数1=数1异或0x0,数2=数2异或0x6,数3=数3异或0x5,数4=数4异或0x5。
S609:生成用户数据密钥:
当前第四数据的高8位=数1*16+数2,
当前第四数据的低8位=数3*16+数4,
将当前第四数据以尾加方式写入用户数据密钥;
S610:是否完成当前扇区的用户数据密钥的生成,如果是,执行步骤S700,否则,执行步骤S611;
S611:将当前第四数据的值赋值给第二数据,将第二数据的高八比特位数据记为H,低八比特位数据记为L,执行步骤S603。
S700:是否完成所有扇区的密钥的生成,如果是,执行步骤S900,否则,执行步骤S800;
S800:读取下一组号及对应的两字节的内容,执行步骤S600;
S900:将各个单个扇区的密钥顺序组合为当前块的用户数据密钥。
通过本发明提供的方法,解决了现有技术中尚无一种生成固态硬盘中用户数据密钥的方法的技术问题。
应当理解的是,本发明不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (7)

1.一种生成固态硬盘中用户数据密钥的方法,其特征在于包括以下步骤:
S100:获取所述固态硬盘中主控芯片的数据表,读取所述数据表中的布局,所述布局包括通道个数、各通道所包含的块数、各块所包含的页数、各页所包含的扇区数、页管理字段字节长度、扇区字节长度、扇区管理字段字节长度;
S200:读取任一通道中数据的镜像,根据块结构和第一标识提取块数据;
S300:读取当前块数据中各页的各扇区中前两个字节内容,用以生成第一数据;
S400:将所述第一数据划分为两字节一组,读取第一组的内容;
S500:获取数据变换因子;
S600:生成单个扇区的密钥;
S700:是否完成所有扇区的密钥的生成,如果是,执行步骤S900,否则,执行步骤S800;
S800:读取下一组号及对应的两字节的内容,执行步骤S600;
S900:将各个单个扇区的密钥顺序组合为当前块的用户数据密钥。
2.根据权利要求1所述的一种生成固态硬盘中用户数据密钥的方法,其特征在于,所述步骤S500包括以下步骤:
S501:获取用户数据密钥块并给N赋初值为0:获取当前通道中数据的镜像,根据块结构、页结构及扇区结构,删除各页的页管理字段及各页中各扇区的扇区管理字段,用以获取用户数据密钥块;
S502:是否在所述用户数据密钥块查找到0xN000,如果是,执行步骤S506,否则执行步骤S503;
S503:是否在所述用户数据密钥块查找到0xN001,如果是,执行步骤S506,否则执行步骤S504;
S504:是否在所述用户数据密钥块查找到0xN002,如果是,执行步骤S506,否则执行步骤S505;
S505:是否在所述用户数据密钥块查找到0xN003,如果是,执行步骤S506,否则执行步骤S508;
S506:在查找到0xN00M的所述用户数据密钥块中,将当前0xN00M所在地址向后偏移2字节并读取连续2字节的内容,其中,M为0,1,2,3中任一数字;
S507:将步骤S506所读取前两字节的内容以尾加方式写入所述数据变换因子;
S508:当前N是否小于或等于0x0F,如果是,执行步骤S509,否则执行步骤S510;
S509:N=N+1,执行步骤S502;
S510:输出所述数据变换因子。
3.根据权利要求1所述的一种生成固态硬盘中用户数据密钥的方法,其特征在于,所述步骤S600包括以下步骤:
S601:所述第一数据以两字节为一组且按组号进行升序/降序排列,组号与扇区号各自一一对应;
S602:读取所述第一数据的当前组的内容作为第二数据,将第二数据的高八比特位数据记为H,低八比特位数据记为L;
S603:将第二数据的高四比特位数据记为K,读取所述数据变换因子中第K+1组的内容作为第三数据;
S604:将第三数据按四比特位为一组,由高位至低位依次记为数1、数2、数3及数4;
S605:对当前H的低四位取整并进行数据变换;
S606:对当前H的低四位取余并进行数据变换;
S607:对当前L的高四位进行数据变换;
S608:对当前L的低四位取整并进行数据变换;
S609:生成用户数据密钥:
当前第四数据的高8位=数1*16+数2,
当前第四数据的低8位=数3*16+数4,
将当前第四数据以尾加方式写入用户数据密钥;
S610:是否完成当前扇区的用户数据密钥的生成,如果是,执行步骤S700,否则,执行步骤S611;
S611:将当前第四数据的值赋值给第二数据,将第二数据的高八比特位数据记为H,低八比特位数据记为L,执行步骤S603。
4.根据权利要求3所述的一种生成固态硬盘中用户数据密钥的方法,其特征在于,所述步骤S605的具体步骤如下:
当前H的低四位除以4取整,
如果结果为0,不做处理;
如果结果为1,数1=数1异或0x7,数2=数2异或0x4,数3=数3异或0x4;
如果结果为2,数1=数1异或0xe,数2=数2异或0x8,数3=数3异或0x8;
如果结果为3,数1=数1异或0x9,数2=数2异或0xc,数3=数3异或0xc。
5.根据权利要求3所述的一种生成固态硬盘中用户数据密钥的方法,其特征在于,所述步骤S606的具体步骤如下:
当前H的低四位除以4取余,
如果结果为0,不做处理;
如果结果为1,数1=数1异或0xD,数2=数2异或0xD,数3=数3异或0x1,数4=数4异或0xC;
如果结果为2,数1=数1异或0xB,数2=数2异或0xB,数3=数3异或0x3,数4=数4异或0x9;
如果结果为3,数1=数1异或0x6,数2=数2异或0x6,数3=数3异或0x2,数4=数4异或0x5。
6.根据权利要求3所述的一种生成固态硬盘中用户数据密钥的方法,其特征在于,所述步骤S607的具体步骤如下:
根据当前L高四位的值,
如果结果为0,不做处理;
如果值为1,数1=数1异或0x0,数2=数2异或0x9,数3=数3异或0xC,数4=数4异或0xC;
如果值为2,数1=数1异或0xC,数2=数2异或0xE,数3=数3异或0x8,数4=数4异或0x4;
如果值为3,数1=数1异或0xC,数2=数2异或0x7,数3=数3异或0x4,数4=数4异或0x8;
如果值为4,数1=数1异或0x4,数2=数2异或0x1,数3=数3异或0x1,数4=数4异或0x5;
如果值为5,数1=数1异或0x4,数2=数2异或0x8,数3=数3异或0xD,数4=数4异或0x9;
如果值为6,数1=数1异或0x8,数2=数2异或0xF,数3=数3异或0x9,数4=数4异或0x1;
如果值为7,数1=数1异或0x8,数2=数2异或0x6,数3=数3异或0x5,数4=数4异或0xD;
如果值为8,数1=数1异或0x8,数2=数2异或0x1,数3=数3异或0x1,数4=数4异或0x9;
如果值为9,数1=数1异或0x8,数2=数2异或0x8,数3=数3异或0xD,数4=数4异或0x5;
如果值为10,数1=数1异或0x4,数2=数2异或0xF,数3=数3异或0x9,数4=数4异或0xD;
如果值为11,数1=数1异或0x4,数2=数2异或0x6,数3=数3异或0x5,数4=数4异或0x1;
如果值为12,数1=数1异或0xC,数2=数2异或0x0,数3=数3异或0x0,数4=数4异或0xC;
如果值为13,数1=数1异或0xC,数2=数2异或0x9,数3=数3异或0xC,数4=数4异或0x0;
如果值为14,数1=数1异或0x0,数2=数2异或0xE,数3=数3异或0x8,数4=数4异或0x8;
如果值为15,数1=数1异或0x0,数2=数2异或0x7,数3=数3异或0x4,数4=数4异或0x4。
7.根据权利要求3所述的一种生成固态硬盘中用户数据密钥的方法,其特征在于,所述步骤S608的具体步骤如下:
S608:对当前L低四位取整的数据变换:
对当前L低四位除以4取整,
如果结果为0,不做处理;
如果结果为1,数1=数1异或0x0,数2=数2异或0x2,数3=数3异或0x3,数4=数4异或0x3;
如果结果为2,数1=数1异或0x0,数2=数2异或0x4,数3=数3异或0x6,数4=数4异或0x6;
如果结果为3,数1=数1异或0x0,数2=数2异或0x6,数3=数3异或0x5,数4=数4异或0x5。
CN201910699658.9A 2019-07-31 2019-07-31 一种生成固态硬盘中用户数据密钥的方法 Active CN110427765B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910699658.9A CN110427765B (zh) 2019-07-31 2019-07-31 一种生成固态硬盘中用户数据密钥的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910699658.9A CN110427765B (zh) 2019-07-31 2019-07-31 一种生成固态硬盘中用户数据密钥的方法

Publications (2)

Publication Number Publication Date
CN110427765A true CN110427765A (zh) 2019-11-08
CN110427765B CN110427765B (zh) 2023-02-03

Family

ID=68413212

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910699658.9A Active CN110427765B (zh) 2019-07-31 2019-07-31 一种生成固态硬盘中用户数据密钥的方法

Country Status (1)

Country Link
CN (1) CN110427765B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113360957A (zh) * 2021-06-30 2021-09-07 四川效率源信息安全技术股份有限公司 一种主控为sm2246en的固态硬盘的密码提取方法

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1905073A (zh) * 1999-04-27 2007-01-31 松下电器产业株式会社 半导体存储卡和数据读取装置
CN101079008A (zh) * 2006-05-22 2007-11-28 中国软件与技术服务股份有限公司 移动存储器失泄密防护的方法和系统
CN101582109A (zh) * 2009-06-10 2009-11-18 成都市华为赛门铁克科技有限公司 数据加密方法及装置、数据解密方法及装置、固态硬盘
CN101669124A (zh) * 2007-06-29 2010-03-10 桑迪士克公司 从存储器存储和访问头数据的方法
US20110013888A1 (en) * 2009-06-18 2011-01-20 Taiji Sasaki Information recording medium and playback device for playing back 3d images
EP2375355A1 (en) * 2010-04-09 2011-10-12 ST-Ericsson SA Method and device for protecting memory content
CN102495982A (zh) * 2011-11-30 2012-06-13 成都七巧软件有限责任公司 一种基于进程线程的防拷贝系统和防拷贝存储介质
WO2013173729A1 (en) * 2012-05-18 2013-11-21 Cornell University Methods and systems for providing hardware security functions using flash memories
US20140181532A1 (en) * 2010-12-31 2014-06-26 International Business Machines Corporation Encrypted flash-based data storage system with confidentiality mode
CN106845251A (zh) * 2015-12-07 2017-06-13 四川效率源信息安全技术股份有限公司 闪存芯片物理镜像后的数据解密方法
CN107516053A (zh) * 2017-08-25 2017-12-26 四川巧夺天工信息安全智能设备有限公司 针对主控芯片ps2251的数据加密方法
CN108052282A (zh) * 2017-12-06 2018-05-18 四川巧夺天工信息安全智能设备有限公司 一种针对硬盘指令锁的解锁方法
CN108898033A (zh) * 2018-06-15 2018-11-27 中国电子科技集团公司第五十二研究所 一种基于fpga的数据加解密系统
CN109558340A (zh) * 2018-11-15 2019-04-02 北京计算机技术及应用研究所 一种基于可信认证的安全固态盘加密系统及方法

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1905073A (zh) * 1999-04-27 2007-01-31 松下电器产业株式会社 半导体存储卡和数据读取装置
CN101079008A (zh) * 2006-05-22 2007-11-28 中国软件与技术服务股份有限公司 移动存储器失泄密防护的方法和系统
CN101669124A (zh) * 2007-06-29 2010-03-10 桑迪士克公司 从存储器存储和访问头数据的方法
CN101582109A (zh) * 2009-06-10 2009-11-18 成都市华为赛门铁克科技有限公司 数据加密方法及装置、数据解密方法及装置、固态硬盘
US20110013888A1 (en) * 2009-06-18 2011-01-20 Taiji Sasaki Information recording medium and playback device for playing back 3d images
EP2375355A1 (en) * 2010-04-09 2011-10-12 ST-Ericsson SA Method and device for protecting memory content
US20140181532A1 (en) * 2010-12-31 2014-06-26 International Business Machines Corporation Encrypted flash-based data storage system with confidentiality mode
CN102495982A (zh) * 2011-11-30 2012-06-13 成都七巧软件有限责任公司 一种基于进程线程的防拷贝系统和防拷贝存储介质
WO2013173729A1 (en) * 2012-05-18 2013-11-21 Cornell University Methods and systems for providing hardware security functions using flash memories
CN106845251A (zh) * 2015-12-07 2017-06-13 四川效率源信息安全技术股份有限公司 闪存芯片物理镜像后的数据解密方法
CN107516053A (zh) * 2017-08-25 2017-12-26 四川巧夺天工信息安全智能设备有限公司 针对主控芯片ps2251的数据加密方法
CN108052282A (zh) * 2017-12-06 2018-05-18 四川巧夺天工信息安全智能设备有限公司 一种针对硬盘指令锁的解锁方法
CN108898033A (zh) * 2018-06-15 2018-11-27 中国电子科技集团公司第五十二研究所 一种基于fpga的数据加解密系统
CN109558340A (zh) * 2018-11-15 2019-04-02 北京计算机技术及应用研究所 一种基于可信认证的安全固态盘加密系统及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A. MARELLI 等: "Protecting SSD Data Against Attacks", 《INSIDE SOLID STATE DRIVES(SSDS)》 *
BR JOSHI 等: "Forensics analysis of solid state drive(SSD)", 《2016 UNIVERSAL TECHNOLOGY MANAGEMENT CONFERENCE(UTMC)》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113360957A (zh) * 2021-06-30 2021-09-07 四川效率源信息安全技术股份有限公司 一种主控为sm2246en的固态硬盘的密码提取方法
CN113360957B (zh) * 2021-06-30 2022-08-02 四川效率源信息安全技术股份有限公司 一种主控为sm2246en的固态硬盘的密码提取方法

Also Published As

Publication number Publication date
CN110427765B (zh) 2023-02-03

Similar Documents

Publication Publication Date Title
TWI432964B (zh) 金鑰傳送方法、記憶體控制器與記憶體儲存裝置
JP2010157216A5 (zh)
CN105229592B (zh) 用于生成用以由于错误而重新访问存储驱动器的非易失性半导体存储器的描述符的装置和方法
CN111865560B (zh) 一种aes密码协处理器及终端设备
TWI537980B (zh) 用於寫入經遮罩資料至緩衝器之裝置及方法
CN110427765A (zh) 一种生成固态硬盘中用户数据密钥的方法
CN104240747A (zh) 一种多媒体数据获取的方法及装置
CN105874774A (zh) 用于在帧的处理过程中保持计数表的计数表保持装置以及相关的保持方法
CN109919826B (zh) 一种用于图计算加速器的图数据压缩方法及图计算加速器
US20150058639A1 (en) Encryption processing device and storage device
CN105472602A (zh) 一种加密装置及加密方法
Plos et al. Compact hardware implementations of the block ciphers mCrypton, NOEKEON, and SEA
CN104573537A (zh) 数据处理方法、存储器存储装置与存储器控制电路单元
CN101895374B (zh) 速率匹配方法及装置
CN114401081A (zh) 数据加密传输方法、应用及系统
JP5435845B2 (ja) 信号処理装置
CN110071927B (zh) 一种信息加密方法、系统及相关组件
TWI808902B (zh) 資料加密的錯誤偵測裝置
US20190190699A1 (en) Efficient hash table key storage
US20160371414A1 (en) Circuit design support method, circuit design support apparatus, and recording medium
TWI835381B (zh) 資料加密的錯誤偵測裝置
CN110443053A (zh) 一种基于密钥循环表及映射表的密钥生成方法
CN110781100B (zh) 一种数据检测方法、逻辑芯片及网络设备
JP2020027473A (ja) データ処理装置及びデータ処理プログラム
CN113821256A (zh) 数据读写方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant