专利名称:一种用于嵌入式系统的大规模数据验证方法
技术领域:
本发明涉及一种数据验证方法,特别是涉及一种用于嵌入式系统的大规模数 据验证方法。
背景技术:
大规模的数据是在当前信息技术的迅猛发展及高容量存储器日新月异的情况 下产生的,但是,大规模数据的产生也引起了另一个问题的出现,就是如何快速 地知道所产生的数据是否正确。由于大规模数据通常都是几百兆,甚至更高的容 量,所以给数据的验证工作带来了很大的困难,尤其是在存储资源非常珍贵以而 处理器速度较低的嵌入式系统中,此问题显得尤为突出。
基于嵌入式系统本身的特殊性,以致该系统在处理速度、存储空间方面都远 远比不上PC机,而大规模数据在嵌入式系统中的广泛应用,更突显了在嵌入式系
统中,传统方式的数据验证方法对大规模数据验证方式的不足之处在于
(1) 由于在嵌入式多媒体开发过程中经常会遇到对大规模数据量进行验证工 作,但是往往会碰到开发板上的存储空间不够的情况,比如解码后的数据,在这
种情况下如果要验证解码后数据的正确性是非常麻烦和费时的;
(2) 解码前的数据量一般和解码后的数据量相差甚远,比如一个l兆容量的 被压縮了的码流数据在解码后得到的解压数据是几十兆甚至几百兆,所以解码后 的数据量是非常大的,如果这些数据用存储器来存储的话,那么必然会增加成本。
嵌入式系统的运算速度远远低于PC机,因此往往会把非常耗时的工作让PC机 来完成,而用嵌入式系统进行关键性且简单的工作,这样才能提高数据验证工作
的效率。目前在嵌入式系统中数据验证的方法及其不足之处大致如下
方法一在通常情况下要比较两个文件的数据是否完全相等时,通常会一次 性(在文件比较小,或者内存足够大的情况下)把需要比较的数据读入到相应的 内存缓冲区中,或者通过循环语句分批一段一段地把文件数据读入到对应的内存 缓冲区中,然后逐字节或者逐位进行比较,通过这种方法可以看出,根据原始数 据块的数据量不断的变大,同时也间接地要求准备一块完全大小的数据块,只有 这样才能进行数据的比较,而此时内存空间的消耗将是成倍增长的。数据量少的 情况下兴许不会对嵌入式系统造成大的影响,但是当每次需要比较的数据量达到 几十兆或者更多的时候,应用这种传统方法的嵌入式系统(包括硬件及软件)的工作效率就会比较低。
方法二由于数据太大的原因,通常会把数据从嵌入式系统上传到外部设备 (如PC机)上,再进行验证。
一般情况下,从嵌入式终端设备上传数据到PC机或者 其他装置都是通过串口或者USB (通用串行总线)来进行,而嵌入式系统通过USB 口向上传输数据会受到文件系统、可保持闪存、嵌入式系统的处理能力等各方面 的限制,所以导致其传输性能大大降低,经过测试证明,目前嵌入式系统通USB2.0 向上最大传输速度是5MB/s以内,如比较1,000,000份H263 (—种视频标准编码) CIF(高4宽二352+288)格式解码后的YUV数据,其数据量是1,000,000*(352*288*2)= 202752000000 Bytes,如果传输完这么多的数据将要花费的时间大概是640分钟, 达10个小时左右。所以,这种效率是十分低的。该方法虽然从一定程度上缓解了 存储空间不足的问题,但是其传输能力远远不能满足大规模数据的需要。
发明内容
本发明的目的在于提供一种简单高效、成本较低且校验正确的用于嵌入式系 统的大规模数据验证方法。
本发明的目的通过以下的技术方案来实现 一种用于嵌入式系统的大规模数 据验证方法,其处理过程包括以下步骤
步骤l,在PC机上将需要验证的原始数据按要求分段处理,然后通过密钥算 法处理器获得各索引段数据相应的目标密钥校验码;
步骤2,将步骤1中获得各索引段数据的目标密钥校验码存放到相应的目标密 钥校验码文件中;
步骤3,将步骤2所得到的目标密钥校验码文件从PC机上通过传输装置(USB或
者串口)传输到嵌入式系统中,并以文件的形式保存。
步骤4,在嵌入式系统中,对各相同段的数据通过密钥算法生成校验码,与目 标密钥校验码进行比较,并进行结果处理。
所述的步骤(1)中的具体处理过程先读取一段数据,用密钥算法处理器计 算得出当前这段数据的目标密钥校验码,然后再把目标密钥校验码存放到相应的 密钥校验码文件内;重复上述处理过程,直到要进行校验的原始数据全部处理完 毕。由此得到相应的目标密钥校验码及其中放入上述目标密钥校验码的相应密钥 校验码文件。
所述的步骤(3)是将密钥校验码文件一次性从PC机上通过传输装置(usb)传输到嵌入式系统中并装载到系统内存中,形成目标密钥校验码一维表。 所述的步骤4的具体处理过程
在嵌入式系统的原始数据中读一段与PC机上数据段索引位置一致的数据;
嵌入式系统对该相同段的数据通过密钥算法生成校验码,通过顺序读取或者 索引读取的方式,读取第一条目标密钥校验码,与当前嵌入式系统生成的密钥校 验码进行比较;
如果比较结果匹配,继续处理下一段需要比较的数据,再生成相应校验码, 与下一条目标密钥校验码进行比较;如果比较结果不匹配,退出数据校验程序进 行下一轮数据校验或者退出校验工作。
与现有技术相比,采用本发明所述的方法有以下优点-
1、 大大节省了数据的存储空间,从而降低使用存储器的成本;
2、 加快了数据比较的速度,提高了数据校验的工作效率;
3、 相对于传统且繁琐的数据校验方法,大大降低了在操作过程中的工作复杂 程度;
4、 由于成熟密钥算法的高散列性,可以确保校验结果的正确性并保证验证结 果的唯一性。
图1为本发明的总体流程示意图2为本发明PC端预处理的流程示意图3为本发明嵌入式系统端验证处理的流程示意图。
具体实施例方式
如图1、图2及图3所示,本发明一种用于嵌入式系统的大规模数据验证方法, 具体包括如下步骤
(1) 在PC机上,按顺序分段读取需要验证的原始数据文件,把读取的数据送 入密钥算法处理器(如MD5,SHA1等HASH算法);使用密钥算法处理器计算得 出当前一段数据的目标密钥校验码,然后再把目标校验码存放到相应的密钥校验 码文件内,并重复该处理过程,直到要进行校验的原始数据全部处理完毕,由此 得到相应的密钥校验码及其中放入上述密钥校验码的相应密钥校验码文件。
(2) 将所得到的目标密钥校验码文件一次性从PC机上通过传输装置(USB通用
串行总线或者串口)传输到嵌入式系统以文件形式保存起来。以上步骤是为以后的数据校验做准备。采用在PC端进行预处理是为了更大地 减少嵌入式系统的工作量和存储空间,由于数据的校验工作是在嵌入式系统里面 完成,所以必须把一大部分耗时的工作先在PC机上完成;另外,因为PC机在处理 上述工作的时候并不会影响目标系统的正常工作,所以采用对大量数据的PC端预 处理和嵌入式系统的数据校验相结合的方法能够大大提高工作效率。
由于生成的目标密钥校验码文件不是很大,比如100,000份数据,那么来自PC 机的目标密钥校验码所占的存储空间是100,000 * 16 Bytes = 1,600,000 Bytes =1.5 MB,所以在一般的嵌入式系统中,可以一次性把密钥校验码文件装载到内存里, 由此,形成一个虚拟的密钥一维表,以便于以后进行比较的时候读取。
(3) 在比较之前,先把先前下载到嵌入式系统中的校码码文件一次性加载到 系统内存中;并形成一个一维表。
(4) 接着在嵌入式系统中读取一段与PC机上数据段索引位置一致的原始数 据,然后在嵌入式系统中对该段数据通过密钥算法(如MD5,SHA1等HASH算法) 生成密钥校验码,最后与密钥一维表中索引位置相同的目标密钥校验码进行比较。 比较完成之后可进行结果处理(如统计比较结果等操作)。
当嵌入式系统根据原始数据以相同索引段的数据通过密钥算法生成该段数据 的密钥校验码时,通过顺序读取或者通过索引的方式,读取密钥一维表中的第一 条目标密钥校验码,与当前嵌入式系统生成的密钥校验码进行比较,当二者不相 等时,退出数据校验程序;或者继续处理下一批需要比较的数据,生成相应密钥 校验码,与密钥一维表中的下一条相对应索引位置的数据进行比较。
通过前期的PC机端预处理和后期在嵌入式系统中的结果比较相结合的实现方 式,可以看出如果需要比较1,000,000份数据,那么来自PC机的目标密钥校验码所 占的存储空间是l,000,000 * 16 Bytes = 16,000,000 Bytes = 15MB,而如果使用最原 始的比较方法的话,如比较H263 CIF格式解码后的YUV数据,15MB的空间只够放 不足80帧的YUV数据。所以以本发明来实现数据验证,15MB的空间可以存放 l,OOO,OOO份数据,而以传统的验证方法进行操作,15MB的空间只能存放80份数据。 所以使用本发明中的技术方案可以使得在相同的硬件条件下实现较高的工作效 率。本发明尤其适用于多媒体压缩数据解码后数据校验的验证比较工作。
通过本发明很明显节省了大量的存储空间并大大提高了工作效率,从而达到 在存储空间非常有限的条件下实现对大规模数据进行验证的目的。
权利要求
1、一种用于嵌入式系统的大规模数据验证方法,其特征在于包括以下步骤步骤1,在PC机上将需要验证的原始数据按要求分段处理,然后用密钥算法处理器得到各索引段数据相应的目标密钥校验码;步骤2,将步骤1中获得各段数据的目标密钥校验码存放到相应的目标密钥校验码文件中;步骤3,将步骤2所得到的目标密钥校验码文件从PC机上通过传输装置传输到嵌入式系统内;步骤4,在嵌入式系统中,对各相同段的数据通过密钥算法生成密钥校验码,与目标密钥校验码进行比较,并进行结果处理。
2、 根据权利要求l所述的大规模数据验证方法,其特征在于所述的步骤(1)中的具体处理过程先读取一段数据,用密钥算法处理器计算得出当前这段数据的目标密钥校验码,然后再把目标密钥校验码存放到相应的密钥校验码文件内;重复上述处理过程,直到要进行校验的原始数据全部处理完毕。
3、 根据权利要求l所述的大规模数据验证方法,其特征在于所述的步骤(3)是将密钥校验码文件一次性从PC机上通过传输装置传输装载到嵌入式系统内存中,并形成目标密钥校验码一维表。
4、 根据权利要求1所述的大规模数据验证方法,其特征在于所述的步骤4的具体处理过程 '在嵌入式系统的原始数据中读一段与PC机上数据段索引位置一致的数据;嵌入式系统对该相同段的数据通过密钥算法生成密钥校验码,通过顺序读取或者索引读取的方式,读取相应索引位置一致的目标密钥校验码,与当前嵌入式系统生成的密钥校验码进行比较;如果比较结果匹配,继续处理下一段需要比较的数据,再生成相应校验码,与下一条目标密钥校验码进行比较;如果比较结果不匹配,退出数据校验程序进行下一轮数据校验或者退出校验工作。
全文摘要
本发明公开了一种用于嵌入式系统的大规模数据验证方法,包括步骤1,在PC机上将需要验证的原始数据用密钥算法处理器分段处理,获得各段数据相应的目标密钥校验码;步骤2,将步骤1中获得各段数据的目标密钥校验码存放到相应的目标密钥校验码文件中;步骤3,将步骤2所得到的目标密钥校验码文件从PC机上通过传输装置传输到嵌入式系统内;步骤4,在嵌入式系统中,对各相同段的数据通过密钥算法生成校验码,与目标密钥校验码进行比较,并进行结果处理。本发明大大节省了数据的存储空间,从而降低使用存储器的成本,提高了数据校验的工作效率并确保校验结果的正确性。
文档编号G06F11/00GK101458638SQ20071003243
公开日2009年6月17日 申请日期2007年12月13日 优先权日2007年12月13日
发明者冯云庆, 浩 张, 彭登科, 胡胜发, 丹 苏 申请人:安凯(广州)软件技术有限公司