一种提高数据写入完整性的方法

文档序号:8209004阅读:488来源:国知局
一种提高数据写入完整性的方法
【技术领域】
[0001] 本发明涉及信息安全领域,特别涉及一种提高数据写入完整性的方法。
【背景技术】
[0002] 文件系统中存有许多文件页,在对文件页中的数据更新时,容易出现坏页;在现有 技术中,文件系统中只有两个备份页,在连续对同一个文件页进行写操作时,会出现循环使 用同一个备份页和文件页的情况,减少备份页和文件页的使用寿命;现有技术中,使用两个 备份页将长度为2048比特的RSA私钥数据写入文件系统时,需将私钥数据划分为若干部 分,向第一个备份页写入RSA私钥数据的第一部分,将第一备份页中的数据写入文件系统 中,向第二个备份页中写入RSA私钥数据的第二部分,将第二备份页中的数据写入文件系 统中,然后擦除第一备份页中的数据,如果此时掉电,在掉电恢复之后,无法恢复RSA私钥 数据的第一部分,导致文件页中写入的RSA私钥数据不完整。

【发明内容】

[0003] 为了解决现有技术中出现的问题,本发明提出一种提高数据写入完整性的方法, 包括:
[0004] 当设备上电进行数据恢复时,执行步骤S1 ;
[0005] 步骤S1 :获取每个页地址中的掉电标识和页号,将置位的掉电标识对应的页号和 页地址保存至第一缓存区中,记录掉电页数;
[0006] 步骤S2 :判断所述掉电页数是否大于0,是则执行步骤S3 ;否则结束;
[0007] 步骤S3 :从所述第一缓存区中获取第一个页号作为当前页号,判断所述第一缓存 区中首页的掉电标识是否置位,是则执行步骤S4 ;否则执行步骤S6 ;
[0008] 步骤S4:判断是否存在与所述当前页号相同的其他页,是则擦除当前页,执行步 骤S5 ;否则清除所述当前页的掉电标识,执行步骤S5 ;
[0009] 步骤S5 :更新所述当前页号,判断所述第一缓存区中是否存在所述更新后的当前 页号,是则返回步骤S4 ;否则结束;
[0010] 步骤S6 :判断是否存在与所述当前页号相同的其他页,是则擦除与所述当前页号 相同的其他页,执行步骤S7 ;否则清除所述当前页的掉电标识,执行步骤S7 ;
[0011] 步骤S7 :更新所述当前页号,判断所述第一缓存区中是否存在当前页号,是则返 回步骤S6;否则结束。
[0012] 采用本发明提供的方法,通过增加磨损平衡处理机制,采用三个备份页的处理方 式,即使在写入数据的时候发生掉电,也能保证更新数据的完整性。
【附图说明】
[0013] 图1至图2为本发明实施例提供的一种进行系统写操作的方法流程图;
[0014] 图3至图4为本发明实施例提供的一种磨损平衡处理函数的方法流程图;
[0015] 图5为本发明实施例提供的一种进行系统读取操作的方法流程图。
[0016] 图6、图7和图8为本发明实施例提供的一种提高数据写入完整性的方法流程图。
[0017] 图9为本发明实施例提供的一种坏块管理模块操作的方法流程图。
【具体实施方式】
[0018] 本实施例提供的技术方案,涉及到系统写操作,具体包括:接收物理地址、待写参 数、待写参数的长度,根据这些参数计算首页页号、首页偏移量、首页待写参数长度、尾页页 号以及尾页待写参数长度,根据首页页号和尾页页号,判断页数,如果是单页,则从RAM页 号表中读取与首页页号对应的地址,作为首页地址,从文件系统区中的数据区中查找与首 页地址对应的首页,读取首页数据,根据首页偏移量、首页待写参数长度和首页地址,将待 写参数写入首页数据中,设置首页数据中的首页的掉电标识,根据首备份页标识查找首备 份页,擦除首页,从RAM页号表中获取首备份页的地址,作为待写入的首页地址,用首页地 址更新RAM页号表中的首备份页地址,用待写入的首页地址更新RAM页号表中的首页地址, 清除首备份页的掉电标识,结束;如果是两页,则采用与写首页、写首备份页相同的方法,写 尾页和尾备份页,擦除首页,擦除尾页,采用与更新首页地址和首备份页地址相同的方式, 更新尾页地址和尾备份页地址,清除首备份页的掉电标识、尾备份页的掉电标识,结束; [0019] 如果是三页,先写首页和首备份页,然后根据首页页号计算中间页页号,采用与写 首页、写首备份页相同的方法,写中间页和中间备份页,写尾页和尾备份页,擦除首页,擦除 中间页,擦除尾页,采用与更新首页地址和首备份页地址相同的方式,更新中间页地址和中 间备份页地址,采用与更新首页地址和首备份页地址相同的方式,更新尾页地址和尾备份 页地址,清除首备份页的掉电标识、中间备份页的掉电标识、尾备份页的掉电标识,结束;
[0020] 为了保障在进行系统写操作过程中,数据安全性,设备增加掉电恢复处理机制,具 体方案包括:设备首次上电时,擦除坏页地址记录区和坏页替换区、设置文件系统区中的数 据区的页号、擦除文件系统区中的备份区中的三个备份页,然后建立RAM页号表,将文件系 统区中的数据区中的每个页的页号和地址写入RAM页号表中,将文件系统区中的备份区中 的每个备份页的页号和地址写入RAM页号表中,等待进行系统写操作;
[0021] 当设备再次上电时,读取坏页地址记录区中的坏页数目,若坏页数目在规定范围 内,则从文件系统区中的数据区中遍历所有页的掉电标识和相应的页号,将该页号和该页 地址存入第一缓存区中,如果第一缓存区中存在首页、中间页、尾页,或者首页、中间页,或 者首页、尾页,或者首页,则循环从第一缓存区中获取页号,将其作为当前页号,如果文件系 统区中的数据区中存在与当前页号相同的其他页,则擦除当前页;如果文件系统区中的数 据区中不存在与当前页号相同的其他页,则清除当前页的掉电标识;如果第一缓存区中存 在中间页和尾页,或者存在尾页,则循环从第一缓存区中获取页号,将其作为当前页号,如 果文件系统区中的数据区中存在与当前页号相同的其他页,则擦除与当前页号相同的其他 页,否则清除当前页的掉电标识。
[0022] 具体地,本实施例提供一种进行系统写操作的方法,如图1至图2所示,具体包 括:
[0023] 步骤bl :接收物理地址、待写参数、待写参数的长度,根据物理地址和待写参数的 长度计算首页页号、首页偏移量、首页待写参数长度、尾页页号、尾页待写参数长度;
[0024] 具体地,接收物理地址、待写参数、待写参数的长度,将物理地址与页中有效数据 长度值做除法运算,将得到的运算结果作为首页页号;将物理地址与页中有效数据长度值 做求余运算,将得到的运算结果作为首页偏移量;将页中有效数据长度值减去首页偏移量, 将得到的运算结果作为首页待写参数长度;将物理地址与待写参数的长度相加再减1,将 得到的计算结果与页中有效数据长度值做除法运算,将得到的运算结果作为尾页页号;将 物理地址与待写参数的长度相加,将得到的计算结果与页中有效数据长度值做求余运算, 将得到的运算结果作为尾页待写参数长度;
[0025] 其中,页中有效数据长度值为页实际长度减去掉电标识长度减去页号长度得到的 结果;优选地,页实际长度为512字节;掉电标识长度为2字节;页号长度为1字节;
[0026] 例如:接收到的物理地址为:500,待写参数为:0X6B8AECEE54C2C65D174C9311334 B76C097B09211E61DD59BC8F7FA9F85A......03E007ACF7930C1CB72823944FC14FF88DB8FBEDF 1DEFD46B8AECEE54C2C65D174C9311334B76C097B09211E61DD59BC8F7FA9F85A68F1CD5D1022 F1346B745203E007ACF7930C1CB72823944FC14FF88DB75D3DF1DEFD4203E007ACF7930C1CB72 823944FC14FF88DB8FBEDF1DEFD4 ;待写参数的长度为:600 ;
[0027] 通过计算得到页中有
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1