闪存芯片物理镜像后的数据解密方法与流程

文档序号:12670087阅读:1836来源:国知局
闪存芯片物理镜像后的数据解密方法与流程

本发明属于数据恢复技术领域,具体涉及一种闪存芯片物理镜像后的数据解密方法。



背景技术:

高度信息化时代的今天,数据的重要性在人们的生活中越来越多的得到了体现。数据安全已经成为人们在生活和工作中不得不面对的一个现实问题,随着科学技术的飞速发展,存储介质也逐渐从以前主要的硬盘磁性介质存储转变为多样化存储。闪存芯片就是其中应用比较广泛的一类新生存储载体。但由于其存储原理的特殊性和寿命限制,相比硬盘来说,闪存产生故障的几率也成倍的增加,一旦发生故障,保存在其中的数据将无法读出。

造成用户数据不可读取的原因可以分为两类:一是闪存设备逻辑损坏,一般是闪存设备在正常连接时,可以被操作系统识别,但是通过操作系统的标准方式不可以访问用户数据。这种情况下可以使用一些简单的逻辑层数据恢复工具来恢复数据;二是闪存设备物理损坏,这可能是由于闪存设备的主控、晶振、接口、PCB板等组成部件损坏,导致无法读取闪存芯片中的数据,这时可以通过更换相同的配件来解决;还有一类比较严重的故障是主控芯片或闪存芯片中的固件丢失,导致无法读取闪存芯片中的数据,这类损坏比逻辑损坏更普遍,为了恢复这类故障导致的无法读出数据的情况,需要将闪存芯片从PCB板上取下进行数据读取和恢复。

U盘的数据是通过主控算法映射的数据(逻辑数据),而芯片上的数据(物理数据)是加密的、没有顺序的。因此对于物理镜像后的数据提取后不能直接读 取其内容,需要先进行算法的解密,然而随着时代的发展,U盘的容量越来越大,加密的方式也就越来越复杂,常见的加密方式(反转位、交换等)已经很少出现,这为数据的恢复与公检法的取证工作带来了诸多不便之处。

发明

技术实现要素:

本发明针对现有技术的不足,提供了一种闪存芯片物理镜像后的数据解密方法,能够有效解决U盘损坏时从闪存芯片提取出的数据无法直接读取的问题。

为解决以上问题,本发明采用的技术方案如下:一种闪存芯片物理镜像后的数据解密方法,包括以下步骤:

001-将U盘的逻辑数据填零后得到物理数据,去掉物理数据中的管理字节即得到密钥;

002-按照闪存芯片的结构对密钥进行区域划分,解析出主控密钥的算法。

作为优选,001包括以下步骤:

101-将U盘的逻辑数据全盘清零;

102-将闪存芯片从电路板分离,读取闪存芯片的物理数据;

103-去掉物理数据中的管理字节,此数据即为密钥。

作为优选,103包括以下步骤:

1031-查找芯片的数据表datasheet,解析芯片的页结构;

1032-根据页结构,删除页内管理字节的winhex脚本。

作为优选,002包括以下步骤:

201-判断页内的加密方式;

202-判断块内的加密方式;

203-判断块间的加密方式。

作为优选,U盘的主控型号为SSS6691,闪存型号为TC58NVG5D2FTAIO,页大小为8832字节,包含256个块的4G的芯片。

作为优选,所述芯片的页结构为(1024+46)*8+272,表示在一页中每1024字节用户数据后面有46字节的管理字节,在页尾有272字节的管理字节。

作为优选,解析出主控密钥的算法如下:

201-判断页内每个节区间密钥的关系:以页的第一节区的密钥为基本密钥,那么第n节区的密钥为基本密钥的每个字节循环左移n-1位的结果,其中0<n<=8的整数;

202-判断每页基本密钥间的关系,即块内加密方式;每一页的基本密钥为前一页基本密钥左移1个字节,再在末端补上一个字节;

203-块间的加密方式相同,即每个块内的密钥都相同。

本发明的有益效果如下:本发明通过多次的实验发现了数据存储的方式:存储在芯片上的数据是逻辑数据与通过加密算法产生的密钥进行异或操作后的数据;通过逻辑数据填零的方式得到主控产生的所有密钥,对所有的密钥进行简单的分析即可得出其加密方式。进而能够读取U盘损坏时从闪存芯片提取出的数据,为数据恢复与公检法的取证工作开展带来了便利之处。

附图说明

图1主流程图示意图;

图2获取芯片数据的详细流程图;

图3读取物理数据的详细流程图;

图4得到密钥详细流程图;

图5为算法分析流程图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明做进一步详细说明。

原理说明:数据以页为单位进行读,以块为单位进行擦除(一个块由多个页组成),写入分为全新写入和复写两种情况。全新写入直接分配一个空闲块就可以写入;而对于复写的情况要先擦除再写入,需要经过以下几个步骤:(1)标记旧数据块为无效块;(2)分配空闲块,写入新的数据,重新地址映射;(3)如果空闲块数量低于某一阀值时启动擦除操作擦除数据;(4)擦除算法中要合并的有效数据,启动均衡写入管理进行擦除并释放空闲块。因为闪存器件中每个块的擦写次数是有限的,为了延长其使用时间,闪存器件采用了均衡写入技术(也称为平均写入技术)对块的擦写次数进行管理,即保证每个块的写入次数尽量一致,使块的使用寿命达到极限,所以在写入时会呈现出随机写入的情况,因此在写入数据(页)的时候会写入相应的管理字节,包含当前数据的ID和ECC校验码以及用于区分管理区和数据区的标志。

实施例:一种闪存芯片物理镜像后的数据解密方法,本实施例中使用的U盘的主控型号为SSS6691,闪存型号为TC58NVG5D2FTAIO,页大小为8832字节,包含256块的4G的东芝芯片。

001-将U盘的数据填零,由于物理数据是加密后的结果,而物理数据是将逻辑数据与主控产生的密钥进行异或而产生的结果,逻辑数据填零后得到物理数据,去掉物理数据中的管理字节即得到密钥。

002-按照闪存芯片的结构对密钥进行区域划分,解析出主控密钥的算法。

101-将U盘的逻辑数据全盘清零;

102-将闪存芯片从电路板分离,读取闪存芯片的物理数据;

103-去掉物理数据中的管理字节,此数据即为密钥。

1021-在芯片启用信号CE有效的情况下,首先指令启用指令锁存信号CLE,此时写入信号WE有效,芯片处于就绪状态,且R/B信号置高电平,表示准备就绪;同时向I/O端口发送读取操作指令(0x00或0x01),告诉芯片现在要进行的是读操作;

1022-此时芯片启用信号CE有效,地址启用信号ALE有效,写入信号WE保持有效,连续发送4个地址周期,地址寄存器接收到地址值后,R/B信号将维持“忙”一段时间,此后R/B变为就绪状态;

1023-每次读有效信号RE置低有效时,将会输出一组数据,如此往复直到所有数据输出完毕。

1031-查找芯片的数据表datasheet,解析芯片的页结构,该芯片的页结构为(1024+46)*8+272,表示在一页中每1024字节用户数据后面有46字节的管理字节,在页尾有272字节的管理字节;

1032-根据页结构,删除页内管理字节的winhex脚本;

goto 0

{

move 1024

assign SABegin currentpos

move(46-1)

assign SAEnd currentpos

block SABegin SAEnd

remove

move-45

}[8]

assign SABegin currentpos

move(272-1)

assign SAEnd currentpos

block SABegin SAEnd

remove

move-271

201-判断页内每个节区间密钥的关系:第一页第一节区的密钥为:0x80,0x9e,0x9c,0x3c(截取前4个字节为例),第二节区的密钥为0x01,0x3d,0x39,0x78,第三节区的密钥为0x02,0x7a,0x72,0xf0。发现每一节区的密钥为上一节区的密钥的每个字节循环左移1位的结果,后面的页也是如此。如果以页的第一节区的密钥为基本密钥,那么第n(0<n<=8)节区的密钥为基本密钥的每个字节循环左移n-1位的结果;

202-判断每页基本密钥间的关系,即块内加密方式;第一页的基本密钥为0x80,0x9e,0x9c,0x3c;第二页的基本密钥为0x9e,0x9c,0x3c,0x25,以后每一页的基本密钥为前一页基本密钥左移1个字节,再在末端补上一个字节;

203-块间的加密方式相同,即每个块内的密钥都相同。密钥为1024字节的主密钥和255字节的补充密钥。加密方式为:第n页的基本密钥为主密钥左移(n-1)字节产生的数据,页内第n节区的密钥为当前页的基本密钥左移(n-1)位后产生的密钥。

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理 解本发明的实施方法,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。

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