一种NANDFlash存储芯片ECC校验算法的识别方法

文档序号:2671080阅读:905来源:国知局
专利名称:一种NAND Flash存储芯片ECC校验算法的识别方法
技术领域
本发明涉及一种手机芯片校验算法的识别方法,涉及一种NAND Flash存储芯片 ECC校验算法的识别方法,属于手机取证技术领域。
背景技术
随着移动通信技术的不断发展以及提供的服务水平和服务种类的不断提高,手机 日益成为人们工作生活中不可或缺的联系工具。与此同时,利用手机进行诈骗、售假、造谣 等违法犯罪活动也日益猖撅。手机取证正是打击这类犯罪的一个有效手段。手机功能的增强使得手机内置存储芯片的容量不断增大,因此NAND Flash芯片逐 渐成为手机内主要的非易失性存储器件。NAND Flash存储手机的固件信息和短信、通话记 录、多媒体等用户数据,是手机取证的主要对象。与磁盘的存储方式不同,NAND Flash芯片存储的数据分有效数据和元数据(又叫 带外数据)。元数据负责有效数据的管理,元数据存储的区域叫spare area区。NAND Flash的工艺特点使其存储的数据在写入和读出时会不一致,因此NAND Flash采用专门的ECC(Error Checking and Correction)校验算法保证读出数据的正确 性。ECC校验码存储在flash芯片的spare area区,通常由手机内的flash控制器读取,送 入硬件ECC校验模块完成相应有效数据的正确性验证。根据技术方式不同,NANDFlash 主要分为 SLC(Single Level Cell)和 MLC(Multi Level Cell)两种。其中SLC每个存储单元存放Ibit数据,而MLC中每个存储单元存放 2bit数据,因此MLC型NAND Flash容量大,成本低,但是不够稳定,容易出错;SLC型NAND Flash容量较小,但更稳定。因而SLC的ECC校验常用纠错能力不强的Hanming码,MLC使 用纠错能力更强的RS码或BCH码。手机内置NAND Flash芯片中取证数据的获取主要有逻辑镜像方式和物理镜像方 式。物理镜像包含NAND Flash芯片内的所有数据,即有效数据和元数据。其中有效数据 包含那些被删除数据和被犯罪分子故意隐藏数据(该数据不存在于逻辑镜像中),因此物 理镜像成为取证分析的主要研究对象。但是物理镜像的数据获取过程没有Flash控制器和 硬件ECC校验模块的参与,没办法保证读出数据的正确性。因此如何判别NAND Flash芯片 采用的ECC校验算法并据此进行错误数据的校验,成为对物理镜像进行取证分析的关键问 题。

发明内容
本发明的目的是针对现有技术的问题,为解决在没有Flash控制器和硬件ECC校 验模块参与的情况下,无法判断获取的物理镜像数据是否正确的问题,提出一种识别NAND Flash芯片采用何种ECC校验算法并进行错误数据校验的方法。首先分析NAND Flash中常用的几种校验码Hanming码、RS码和BCH码。其中 Hanming码的纠错能力不强,只能纠1比特错检测2比特错,常用于SLC型NAND Flash中。一般情况下它用每256字节有效数据生成3字节的ECC校验码,其中有6比特列校验和16 比特行校验,剩余2比特填充1,共M比特(3个字节),如图1。有的情况下用每512字节 有效数据生成3字节ECC校验,其中6比特列校验和18比特行校验共M比特,如图2。RS 码是BCH码的重要子类,可视为BCH码的特例。MLC型NAND Flash的差错类型测试显示其 错误是以比特的形式分散在整个数据块内,所以像BCH码具有的随机错误纠错能力使它更 适于对MLC型NAND Flash进行差错控制。BCH码通常以512字节或IOM字节为单位生成 ECC校验码。由于BCH是按比特处理数据,所以这里的512字节或IOM字节是指4096比特 或8192比特原始数据。BCH校验码的长度取决于它的最大纠错能力。假设BCH码的最大纠 错数据比特是t,则原始数据长度为512字节的BCH校验码长度为13*t比特,原始数据长度 为IOM字节的BCH校验码长度为14*t比特。一般情况下,t取值是4比特或8比特,由此 可计算出512字节原始数据的BCH校验码长度为52比特(占7字节)或104比特(占13 字节),1024字节原始数据的BCH校验码长度为56比特(占7字节)或112比特(占14 字节)。ECC校验算法的识别前提是知道物理镜像中有效数据区和spare area区的排列 规则以及spare area区内ECC校验码字段的位置。目前手机内置NAND Flash芯片的主流 存储结构是512+16字节或2048+64字节,即相应物理镜像中每512字节有效数据后跟16 字节spare area内容或者每2048字节有效数据后跟64字节sparearea内容。申请人在 本申请之前申请的一项专利“一种NAND Flash存储芯片的元数据格式识别方法”也提供了 一种从NAND Flash存储芯片中识别数据的排布规则以及ECC校验码字段位置的方法。如果物理镜像是512+16字节的数据排布格式,则可能的ECC校验算法有每256 字节生成3字节校验码的Hanming码算法,每512字节生成3字节校验码的Hanming码算 法以及最大纠错能力t = 4的BCH码算法(以512字节为单位生成校验码),与之对应的 各ECC校验码长度最少分别为6字节、3字节和7字节。因为16字节中有保留字段、逻辑 地址字段、坏块标识字段,所以其ECC校验码字段最多不能超过10字节。如果物理镜像是 2048+64字节的数据排布格式,则可能采用的ECC校验算法情况较为复杂,暂不考虑。针对物理镜像是512+16字节的数据排布格式,本发明提供了一种NANDFlash存储 芯片ECC校验算法的识别方法,包括以下步骤一、根据已知的ECC校验码字段长度必须大于等于可能采用的ECC校验算法生成 的校验码长度的原则推测匹配的ECC校验算法;二、对步骤一的推测结果进行验证,并确定标准ECC校验码和存储ECC校验码之间 的对应关系,如不正确则继续对下一个推测结果进行验证(1)随机生成一些数据文件存储到目标手机的内置NAND Flash芯片上,分别获取 NAND Flash芯片的物理镜像文件和逻辑镜像文件并计算它们有效数据的MD5值,根据相同 数据段MD5值相等的原则查找每一个逻辑页对应的物理页,记录下逻辑页号、物理页号及 对应的spare area元数据内容;(2)分析目标NAND Flash芯片的逻辑镜像文件内容,确定某个随机数据文件的位 置,即文件所在的逻辑页号,记为log_num ;根据逻辑页号l0g_rmm查找并读取对应物理页 spare area ^ftW ;(3)将读指针定位到NAND Flash芯片逻辑镜像文件的log_num*512字节位置处,读取一定数量的有效数据,采用上述推测出的ECC校验算法计算该有效数据的ECC校验 码;(4)将计算得到的ECC校验码与从物理镜像的相应物理页中读出的ECC校验码进 行对比。如果完全一致则说明推测的ECC校验算法正确;如果不完全一致则继续执行步骤 (5);算得到的ECC校验码与从物理镜像的相应物理页中读出的ECC校验码不完全一致 并不说明推测的ECC校验算法错误,因为Hanming码和BCH码都是按比特处理数据的,其生 成的检验码也是按比特进行存储的,所以目标手机内存储的ECC校验码的存放规律可能与 推测的ECC校验算法计算出的标准ECC校验码的存放规律不同。(5)要找出存储的ECC校验码和标准ECC校验码各比特之间存在的对应关系(i)从NAND Flash芯片逻辑镜像文件的log_num*512字节位置开始,根据推测的 ECC校验算法连续计算多个逻辑页的标准ECC校验码;统计所有校验码每比特值为1的个 数。为了保证统计结果能够均勻分布,建议计算逻辑页ECC校验码的页个数大于1000 ;(ii)对标准ECC校验码的每比特统计结果进行排序A并记录下每比特数据在标准 ECC校验码中的位置;(iii)从记录NAND Flash芯片逻辑页号、对应物理页号及其spare area内容的文 件result, txt中读取与上述多个逻辑页对应的物理页内存储的ECC校验码数据,同样统计 每比特值为1的个数;(iv)对统计结果进行排序B并记录下每比特数据在存储的ECC校验码中的位置;(ν)比较排序结果A和B,找出两种ECC校验码中统计结果相等的比特位,从而得 到标准ECC校验码和存储的ECC校验码的一一对应关系;如果在查找对应关系的过程中,出 现少部分比特位不能一一对应的情况,则说明物理镜像文件中存储的ECC校验码有错误, 此时需增加log_num的值,从第(i)步起重复上述过程,直到可以确定标准ECC校验码和存 储的ECC校验码的对应关系;如果二者之间不存在所有比特位一一对应的情况或者大多数 比特位不能对应的情况则说明推测出的ECC校验算法错误,那么需要验证其它可能的ECC 校验算法。三、最后利用上述识别的ECC校验算法以及标准ECC校验码和存储ECC校验码之 间的对应关系,检验物理镜像文件中每个物理页的数据是否有错误,如果有,则将其存储的 ECC校验码按比特转换成标准ECC校验码的形式,利用对应ECC校验算法的纠错算法进行错 误数据的定位和纠错。有益效果采用本发明方法能够在无flash控制器和硬件ECC校验模块参与的情况下,识别 手机内置NAND Flash芯片采用的ECC校验算法,发现实际存储的ECC校验码与对应校验算 法计算出的标准校验码之间的对应关系并利用该对应关系和相应的ECC纠错算法对物理 镜像中的错误数据进行定位和纠错,确保NANDFlash芯片内物理镜像数据的准确和有效。 本发明方法通用性强,在手机取证领域具有很强的实用价值。


图1为汉明码算法为每256字节有效数据生成3字节校验码的标准存储图2为汉明码算法为每512字节有效数据生成3字节校验码的标准存储图;图3为ECC校验算法的识别方法的流程图;图4为验证推测的ECC校验算法是否正确的程序流程图;图5为查找标准ECC校验码和存储的ECC校验码各比特对应关系的程序流程图。图6为标准ECC校验码和存储的ECC校验码各比特位统计结果的排序结果图
具体实施例方式下面结合附图具体说明本发明的优选实施方式。本发明不仅限于以下实例,凡是 利用本发明的设计思路都进入本发明的保护范围之内。本实施方式实现了一种NAND Flash存储芯片ECC校验算法的识别方法,如图3所 示,包括以下步骤—、根据已知的ECC校验码字段长度必须大于等于可能采用的ECC校验算法生成 的校验码长度的原则推测匹配的ECC校验算法;比如已知的ECC校验码长度是3字节或4 字节,则推测可能采用的是每512字节有效数据生成校验码的Hanming码算法(多余比特 可能全置0或1);如果确定的ECC校验码长度是7字节或8字节,则推测可能采用的是BCH
码算法。二、对步骤一的推测结果进行验证,验证过程如图3所示。要找出存储的ECC校验 码和标准ECC校验码各比特之间存在的对应关系的具体步骤如图4所示。为详细说明本实施方式,下面以philips f511手机为例,具体说明本发明的实施 过程。实施例目标手机是philips f511,在其内置的NAND Flash芯片上存储多个随机数据文 件,大小尽量占满NAND Flash的剩余空间。分别用WinheX15. 2软件和手机维修工具(妙 手Box)获取内置flash芯片的逻辑镜像文件philipS-f511-logical和对应的物理镜像文 件 philips-f511-physical. bin。根据专利申请“一种NAND Flash存储芯片的元数据格式识别方法”中提供的方 法辨别出物理镜像文件philips-f511-physical.bin中有效数据和元数据的排列规则是 512+16字节形式,并且其spare area区内ECC校验码字段位于第9 14字节,共6字节。 根据前面对各种Hanming码校验算法和BCH码校验算法的分析可知,philips f511手机内 置NAND Flash芯片最有可能采用的是每256字节有效数据生成3字节校验码的Hanming 码算法。下面验证该推测结果是否正确。利用Winhexl5. 2软件分析逻辑镜像文件philips-f511_logical,确定一个IOM 大小的随机数据文件randoml.dat的起始扇区位于逻辑页(即扇区)2000号。打开记 录有NAND Flash芯片逻辑页号、对应物理页号及其spare area内容的result, txt文 件,找到逻辑页号2000对应的物理页是100081,其spare area内存储的ECC校验码 是0x3E33E35342CB。接着将读指针定位到逻辑镜像文件phi 1 ips_f511-Iogical的第 2000*512 = 1024000字节位置处,先读取前256字节有效数据,利用Hanming码校验算法计 算得到该有效数据的标准ECC校验码值0x3FF03F,再读取后256字节有效数据计算得到的 标准ECC校验码值是0x66966B,连接在一起是0x3FF03F66966B。比较这两对ECC校验码发现其值并不相同,因此需要继续寻找存储的ECC校验码和标准的ECC校验码各比特位之间
是否存在一一对应关系。从逻辑镜像文件philipS-f511-logiCal的第1024000字节开始,利用每256字节 数据生成3字节校验码的Hanming码算法连续计算1000个逻辑页的标准ECC校验码(共 2000个)生成标准ECC校验码文件standarcLecc ;统计所有标准ECC校验码每比特取值 为1的个数存放在数组num_l [24] (3字节校验码共M比特)中;对数组num_l进行排序 并记录下每比特数据在标准ECC校验码中的位置如图5左侧;从result, txt文件中读取 从第2000 四99这1000个逻辑页所对应物理页的ECC校验码(共2000个)内容生成存 储ECC校验码文件physicalecc,同样统计所有校验码每比特取值为1的个数存放在数组 num_2[24];对数组num 2进行排序并记录下每比特数据在存储ECC校验码中的位置如图 5 右侧;比较排序结果发现除了 num_l [22] = 2000、num_l [23] = 2000 和 num_2
= 0、 num_2[12] = 0无法一一对应外,其余22比特数据全能一一对应,原因在于标准ECC校验 码的最后2比特无用位填充的是1,而存储校验码的第0比特和第12比特无用位填充的是
0。最后结论是标准ECC校验码的第0比特、第1比特、第2比特、第3比特......分别和
存储ECC校验码的第13比特、第1比特、第14比特、第2比特......一一对应,此结果说
明上述的推测是正确的,即Philips f511手机采用的是每256字节有效数据生成3字节校 验码的Hanming码算法。识别出目标手机所采用的ECC校验算法以及生成校验码每比特的实际存储顺序 后,能够检验物理镜像文件philipS-f511-phySiCal. bin中每个物理页的数据是否正确。 比如在检验到第514物理页时发现该物理页后256字节有效数据计算得到的3字节标准 ECC校验码是0xC0C33F,而存储在spare area区的后一个3字节ECC校验码是0x4CB44B。 按照上述发现的标准校验码和存储校验码每比特的对应关系将存储校验码0x4CB44B转换 成标准校验码后其值是0xClC33F。对比这2个标准校验码发现并不完全相同说明物理镜像 中该物理页的数据发生了错误。利用Hanming码的纠错算法得知是该物理页存储的ECC校 验码存在错误,于是对其进行纠错。
权利要求
1.一种NAND Flash存储芯片ECC校验算法的识别方法,其特征在于,包括以下步骤一、根据已知的ECC校验码字段长度必须大于等于可能采用的ECC校验算法生成的校 验码长度的原则推测匹配的ECC校验算法;二、对步骤一的推测结果进行验证,并确定标准ECC校验码和存储ECC校验码之间的对 应关系,如不正确则继续对下一个推测结果进行验证;三、利用上述识别的ECC校验算法以及标准ECC校验码和存储ECC校验码之间的对应 关系,检验物理镜像文件中每个物理页的数据是否有错误,如果有,则将其存储的ECC校验 码按比特转换成标准ECC校验码的形式,利用对应ECC校验算法的纠错算法进行错误数据 的定位和纠错。
2.根据权利要求1所述的一种NANDFlash存储芯片ECC校验算法的识别方法,其特征 在于,所述对步骤一的推测结果进行验证,并确定标准ECC校验码和存储ECC校验码之间对 应关系的方法为(1)随机生成一些数据文件存储到目标手机的内置NANDFlash芯片上,分别获取NAND Flash芯片的物理镜像文件和逻辑镜像文件并计算它们有效数据的MD5值,根据相同数据 段MD5值相等的原则查找每一个逻辑页对应的物理页,记录下逻辑页号、物理页号及对应 的spare area元数据内容;(2)分析目标NANDFlash芯片的逻辑镜像文件内容,确定某个随机数据文件的位置, 即文件所在的逻辑页号,记为log_num ;根据逻辑页号log_num查找并读取对应物理页的 spare area f^J^ ;(3)将读指针定位到NANDFlash芯片逻辑镜像文件的log_num*512字节位置处,读取 一定数量的有效数据,采用上述推测出的ECC校验算法计算该有效数据的ECC校验码;(4)将计算得到的ECC校验码与从物理镜像的相应物理页中读出的ECC校验码进行对 比,如果完全一致则说明推测的ECC校验算法正确;如果不完全一致则继续执行步骤(5);(5)找出存储的ECC校验码和标准ECC校验码各比特之间存在的对应关系(i)从NAND Flash芯片逻辑镜像文件的log_nUm*512字节位置开始,根据推测的ECC 校验算法连续计算多个逻辑页的标准ECC校验码;统计所有校验码每比特值为1的个数;( )对标准ECC校验码的每比特统计结果进行排序A并记录下每比特数据在标准ECC 校验码中的位置;(iii)从记录NANDFlash芯片逻辑页号、物理页号及其对应spare area内容的文件 result, txt中读取与上述多个逻辑页对应的物理页内存储的ECC校验码数据,同样统计每 比特值为1的个数;(iv)对统计结果进行排序B并记录下每比特数据在存储的ECC校验码中的位置;(ν)比较排序结果A和B,找出两种ECC校验码中统计结果相等的比特位,从而得到标 准ECC校验码和存储的ECC校验码的一一对应关系;如果在查找对应关系的过程中,出现少 部分比特位不能一一对应的情况,则说明物理镜像文件中存储的ECC校验码有错误,此时 需增加log_nUm的值,从第(i)步起重复上述过程,直到可以确定标准ECC校验码和存储的 ECC校验码的对应关系;如果二者之间不存在所有比特位一一对应的情况或者大多数比特 位不能对应的情况则说明推测出的ECC校验算法错误,那么需要验证其它可能的ECC校验 算法。
3.根据权利要求2所述的一种NAND Flash存储芯片ECC校验算法的识别方法,其特 征在于,步骤(i)中为了保证统计结果能够均勻分布,计算逻辑页ECC校验码的页个数大于 1000。
全文摘要
本发明涉及一种NAND Flash存储芯片ECC校验算法的识别方法,包括以下步骤一、根据已知的ECC校验码字段长度必须大于等于可能采用的ECC校验算法生成的校验码长度的原则推测匹配的ECC校验算法;二、对步骤一的推测结果进行验证;三、利用识别的ECC校验算法以及标准ECC校验码和存储ECC校验码之间的对应关系,进行错误数据的定位和纠错。采用本发明能够在无flash控制器和硬件ECC校验模块参与的情况下,识别手机内置NAND Flash芯片采用的ECC校验算法,发现实际存储的ECC校验码与对应校验算法计算出的标准校验码之间的对应关系,并对物理镜像中的错误数据进行定位和纠错,确保NAND Flash芯片内物理镜像数据的准确和有效。
文档编号G11C29/42GK102142282SQ20111004169
公开日2011年8月3日 申请日期2011年2月21日 优先权日2011年2月21日
发明者张丽, 张全新, 张雪兰, 李元章, 谭毓安, 马忠梅 申请人:北京理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1