CN116305192B - 数据文件的处理方法、装置、电子设备及存储介质 - Google Patents
数据文件的处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116305192B CN116305192B CN202310107071.0A CN202310107071A CN116305192B CN 116305192 B CN116305192 B CN 116305192B CN 202310107071 A CN202310107071 A CN 202310107071A CN 116305192 B CN116305192 B CN 116305192B
- Authority
- CN
- China
- Prior art keywords
- data
- digital
- data blocks
- algorithm
- blocks
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 11
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 101
- 238000012545 processing Methods 0.000 claims abstract description 96
- 238000000034 method Methods 0.000 claims abstract description 56
- 238000000638 solvent extraction Methods 0.000 claims abstract description 9
- 238000004364 calculation method Methods 0.000 claims description 37
- 230000008569 process Effects 0.000 abstract description 17
- 230000006870 function Effects 0.000 description 13
- 238000004590 computer program Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 241001649190 Campsis Species 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据文件的处理方法,包括:将输入的第一层数据进行分块得到多个数据块;对所述多个数据块进行分组得到多个分组数据块;采用第一预设并行处理算法和/或第二预设算法对所述多个分组数据块进行处理计算各自对应的第一层数据的数字摘要;根据所述第一层数据的数字摘要计算第二层数据的代表数据信息并输出。本申请采用数据分层思想,通过并行处理算法与普通算法结合的方式,分别处理基层对齐部分数据和收尾部分数据,大大提升了处理速度。
Description
技术领域
本申请涉及信息安全技术领域,具体地,涉及一种数据文件的处理方法、装置、电子设备及存储介质。
背景技术
随着信息化和计算机技术的发展,人们在享受信息化带来的众多好处的同时,也面临着网络安全问题的挑战;为解决网络安全问题,各种安全机制、策略和工具被研究和应用;数字摘要算法是密码学中最基本的模块之一,可广泛应用于密码协议、数字签名、消息鉴别等场景中。我国的SM3算法就是一种典型的密码数字摘要算法,用于计算数据的数字摘要(也叫杂凑值),目前已被广泛运用在网上银行、电信运营商、电子商务、企业等众多应用领域。
SM3算法计算数据的数字摘要是采取链式分块计算法,即必须先计算输入数据的前一个分块(512比特)的迭代压缩值,然后将此迭代压缩值与后一个分块(512比特)一起进行迭代压缩得到更新后的迭代压缩值,如此反复直至处理完所有分块;其中,SM3算法计算消息text的数字摘要md,通常表示为md=SM3(text)。
消息鉴别码HMAC(Keyed-Hashing for Message Authentication)是使用数字摘要函数计算消息鉴别码的一种方式,其输入是密钥K和需要进行完整性保护的消息text,经计算得到消息鉴别码mac;消息鉴别码可以确认己方收到的消息是否就是发送者的本意,也就是说,使用消息鉴别码可以判断消息是否被篡改,以及是否有人伪装成发送者发送该消息;其中,HMAC的计算方式为mac=H(K⊕opad,H(K⊕ipad,text)),H为数字摘要函数,opad和ipad为特定的填充常量,⊕表示异或运算;其中,opad:为0x5C重复B次,ipad为重复B次,B为使用的数字摘要函数的内部数据区块的字节长度。
当在云计算、云盘数据上传等场景中,通常需要对大块数据计算起数字摘要或完整性检验码。
例如:对4GB的视频文件采用SM3算法计算其数字摘要,现有的技术是将整个文件数据作为输入值送入SM3算法计算数字摘要;SM3等数字摘要算法的链式分块计算法使得当数据比较大时,如数据为GB级,其计算数字摘要的时间就会很长;目前软件计算SM3数字摘要的速度约为109比特每秒,仅计算一个4GB文件的数字摘要就需要耗时34.36秒。
例如:对4GB的视频文件采用HMAC-SM3算法计算其完整性校验码,现有的技术是将整个文件数据作为输入值,与设定的密钥一起送入HMAC-SM3算法计算消息鉴别码;HMAC-SM3的底层数字摘要算法SM3的链式分块计算法使得当数据比较大时,其计算数字摘要的时间就会很长;同理,目前软件计算SM3数字摘要的速度约为109比特每秒,因此,仅仅计算一个4GB文件的完整性校验码就需要耗时34秒左右。
综上所述,现有技术具有如下不足:
第一,SM3算法计算数字摘要使用的采取链式分块计算法,使得计算大块数据的数字摘要时必须逐个分块进行计算,无法并行处理;当数据比较大时,其计算数字摘要的时间就会很长。
第二,CPU的多核并行优势又得不到发挥,仅一个CPU执行运算,其余CPU核心全部闲置。
此外,由于HMAC-SM3计算消息鉴别码时也要使用SM3计算数字摘要,特别是其中的第一次计算数字摘要SM3(K⊕ipad,text),因此,面对大数据块时也不得不遭遇上述SM3算法计算大数据块的性能问题。
在背景技术中公开的上述信息仅用于加强对本申请的背景的理解,因此其可能包含没有形成为本领域普通技术人员所知晓的现有技术的信息。
发明内容
为了解决现有技术存在的处理性能不高的问题,本发明例提供了一种数据文件的处理方法、装置、电子设备及存储介质。
根据本申请实施例的第一个方面,提供了一种数据文件的处理方法,包括:
将输入的第一层数据进行分块得到多个数据块;
对所述多个数据块进行分组得到多个分组数据块;
采用第一预设并行处理算法和/或第二预设算法对所述多个分组数据块进行处理计算各自对应的第一层数据的数字摘要;
根据所述第一层数据的数字摘要计算第二层数据的代表数据信息并输出。
优选的,所述采用预设第一并行处理算法和/或第二预设算法对所述多个分组数据块进行处理计算各自对应的第一层数据的数字摘要,具体包括:
采用第一预设并行处理算法对所述多个分组数据块中对齐部分并行处理计算各自对应的第一层数据的数字摘要;
采用第二预设算法对所述多个分组数据块中收尾部分处理计算该收尾部分对应的第一层数据的数字摘要。
优选的,所述将输入的第一层数据进行分块得到多个数据块;具体包括:
将输入的第一层数据text按分块大小m进行划分,向上取整后形成s个数据块;其中,分块后的第一层数据text表示为:text=D0||D1||…||Ds-1,||表示数据的串联。
优选的,所述对所述多个数据块进行分组得到多个分组数据块;具体包括:
按t个数据块为一组的方式对s个数据块进行分组,向下取整后形成u个分组;其中,u个分组外的v个数据块为收尾数据块;v表示为:v=s–ut。
优先的,所述采用预设并行处理算法对所述多个分组数据块中对齐部分并行处理计算各自对应的第一层数据的数字摘要;具体包括:
将数据块D0,D1,…,Ds-1按t个分块为一组的方式进行分组,对这个向下取整分组,采用预设并行处理算法PH(t)并行计算t个分组数据块各自对应的数字摘要,即
(Yti+0,Yti+1,...,Yti+t-1)=PH(t)(Dti+0,Dti+1,…,Dti+t-1),i=0,1,…,u-1
PH(t)表示采用并行处理方法计算t个相同长度数据的数字摘要计算方法;其中:
数据块Dti+j对应的第一层数据的数字摘要的计算表达式为:Yti+j=H(Dti+j);
Dti+j表示第i个分组中的第j个数据块,j=0,1,…,t-1,H为预设数字摘要算法。
优选的,所述采用第二预设算法对所述多个分组数据块中收尾部分处理计算该收尾部分对应的第一层数字摘要;具体包括:
对于v个收尾数据块,如果v>0,通过预设数字摘要算法H对v个数据块进行计算,得到v个数据块对应的第一层数字摘要。
优选的,所述采用第二预设算法对所述多个分组数据块中收尾部分处理计算该收尾部分对应的第一层数字摘要;具体包括:
对于v个收尾数据块,如果v>0且最末一个分组Ds-1是完整分组,采用预设并行处理算法PH(t)并行计算数字摘要;即
(Ytu+0,Y tu+1,...,Y tu+t-1)=PH(t)(Dtu+0,Dtu+1,…,Dtu+t-1),
其中,Dtu+j表示超出u个分组外的第j个数据块,j=0,1,…,t-1;
t–v个数据块Dtu+v至Dtu+t-1是超过分块个数s的数据块,设置为全0或其他任意数据;
取(Ytu+0,Y tu+1,...,Y tu+t-1)中前v个数字摘要Ytu+0,Y tu+1,...,Y tu+v-1,丢弃后面的t–v个数字摘要。
优选的,对于v个收尾数据块,如果v>0且最末一个分组Ds-1是不完整分组,
当v=1时,通过预设数字摘要算法H对数据块进行计算数字摘要;
当v>1时,采用预设并行处理算法PH(t)并行计算v-1个数字摘要,通过预设数字摘要算法H对最后一个数据块进行计算数字摘要。
优选的,在所述将输入的第一层数据进行分块得到多个数据块之前,还包括:
参数设置检查,判断分块得到的数据块大小m是否大于第二预设算法的输出长度;
如否,则返回提示信息“分块设置过小”或错误信息。
优选的,所述第一层数据为基层数据,所述第二次数据为顶层数据,所述代表数据信息为数字摘要或消息鉴别码。
根据本申请实施例的第二个方面,提供了一种数据文件的处理装置,包括:
分块模块,用于将输入的第一层数据进行分块得到多个数据块;
分组模块,用于对所述多个数据块进行分组得到多个分组数据块;
数据处理模块,采用第一预设并行处理算法和/或第二预设算法对所述多个分组数据块进行处理计算各自对应的第一层数据的数字摘要;
输出模块,根据所述第一层数据的数字摘要计算第二层数据的代表数据信息并输出。
根据本申请实施例的第三个方面,提供了一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述可执行指令时,实现如上所述的数据文件的处理方法。
根据本申请实施例的第四个方面,提供了一种存储介质,其特征在于,存储有可执行指令,所述可执行指令被执行时,用于实现如上所述的数据文件的处理方法。
本申请实施例的方案,具有以下技术效果:
本申请的数据文件的处理方法采用数据分层思想,通过并行处理算法与普通算法结合的方式,分别处理基层对齐部分数据和收尾部分数据,大大提升了处理速度性能。能够充分利用CPU数据处理特性,有效的提高计算处理效率,实用性极强。特别对于数字摘要或消息鉴别码等代表数据信息的复杂过程计算,提升了计算速度。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例一的数据文件的处理方法的流程示意图;
图2为本申请实施例二的数据文件的处理方法的流程示意图;
图3为本申请实施例三的数据文件的处理装置的流程示意图;
图4为本申请实施例四的数据文件的处理装置的流程示意图;
图5为本申请实施例五的数据文件的处理装置的流程示意图。
具体实施方式
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本申请的核心方案是:针对例如数字摘要或消息鉴别码等代表数据信息的复杂过程计算,将输入的第一层数据进行分块得到多个数据块;对所述多个数据块进行分组得到多个分组数据块;采用第一预设并行处理算法和/或第二预设算法对所述多个分组数据块进行处理计算各自对应的第一层数据的数字摘要;根据所述第一层数据的数字摘要计算第二层数据的代表数据信息并输出。即对基层数据先分块,再分组,然后根据分组情况选择并行处理算法和普通处理算法,对于对齐部分采用并行处理算法计算,对于收尾部分普通处理算法计算,从而使得大部分计算过程是“并行”处理的,充分利用了CPU数据处理特性,有效的提高计算处理效率。克服了现有技术中,必须逐个分块进行计算,无法并行处理,仅一个CPU执行运算,其余CPU核心全部闲置的问题。
以下对本申请所涉及的参数进行说明如下:
text,为输入数据,表示数字摘要的消息,长度为n字节;
m:为分块大小,单位为字节;
H:为数字摘要函数,可预先设定,如可以是SM3算法、SHA256算法等,计算消息text的数字摘要d记为d=H(text);
PH(t):为一种采用并行处理方法计算t个(t≥1)相同长度数据的计算方法。预先设定的数字摘要算法H(如SM3算法)的一种可同时并行计算t个(t≥1)相同长度数据text1,text2,…,textt的计算方法,记为(d1,d2,...,dt)=PH(t)(text1,text2,…,textt),其中di=H(texti),i=1,2,3,…,t。
本申请中,PH(t)可以是基于SIMD技术(Single Instruction Multiple Data,单指令流多数据流,是一种采用一个控制器来控制多个处理器,对一组数据,又称数据向量,可同时对其中的每一个分别执行相同的操作从而实现空间上的并行性的技术)并行计算t个相同长度数据的HASH数字摘要算法的实现方法;也可以是基于多线程或多进程并行计算t个相同长度数据的HASH数字摘要算法的实现方法,还可以是这两者方式的结合实现以t个相同长度数据的HASH数字摘要算法的实现方法。
实施例一
如图1所示,本实施例的一种数据文件的处理方法,包括:
S1,将输入的第一层数据进行分块得到多个数据块;
S2,对所述多个数据块进行分组得到多个分组数据块;
S3,采用第一预设并行处理算法和/或第二预设算法对所述多个分组数据块进行处理计算各自对应的第一层数据的数字摘要;本步骤中,主要根据分块、分组的结果具体确定是采用并行处理算法、普通算法还是需要结合处理。如果分组、分块正好都是整数符合并行处理算法的要求,则只需要并行处理算法;如果不是正好,那对于剩余的收尾部分还需要普通算法进行计算。例如并行算法为PH(t),普通算法为H。
S4,根据所述第一层数据的数字摘要计算第二层数据的代表数据信息并输出。
所述第一层数据为基层数据,所述第二次数据为顶层数据,所述代表数据信息为数字摘要或消息鉴别码。本步骤中在计算顶层数据的数字摘要或消息鉴别码时,因为具体信息不同而不同,即根据基层数据的数字摘要可以计算顶层数据的数字摘要,也可以根据基层数据的数字摘要可以计算顶层数据的消息鉴别码,具体算法不同,输出不同。计算数字摘要采用数字摘要算法函数,计算消息鉴别码采用消息鉴别码算法函数。
本实施例中采用塔式计算方法,Z=TowerHash(text,m),计算大数据块的SM3数字摘要和消息鉴别码等代表数据信息,当然也可以是其他相关数据信息,即数据文件的类型不具体限定,根据处理的数据文件类型不同,具体数据信息存在差异,但是方法流程是通用的。本实施例不仅可以实现数据的并行处理,还能进一步提升SM3数字摘要和消息鉴别码等的整体实现性能。
其中,基层数据和顶层数据也是数据分层的一种,也可以是其他的数据区分方式。
其中,
采用第一预设并行处理算法对所述多个分组数据块中对齐部分并行处理计算各自对应的第一层数据的数字摘要;
采用第二预设算法对所述多个分组数据块中收尾部分处理计算该收尾部分对应的第一层数据的数字摘要。
其中,多个分组数据块中对齐部分并行处理计算,即这部分的分块分组是符合并行算法为PH(t)的计算要求的。多个分组数据块中收尾部分处理计算,这部分是分块分组后剩下的数据块,无法使用或无法直接使用并行算法计算,此时可以采用普通算法H进行计算即可。
实施例二
如图2所示,本实施例中以一个具体的分块分组、并行计算过程进行详细说明,帮助理解。本申请实施例的数据文件的处理方法,包括:
将输入数据text按分块大小m进行划分,向上取整后形成s个数据块;其中,分块后的输入数据text表示为:text=D0||D1||…||Ds-1,符号||表示数据的串联;
设:输入数据text的长度为n个字节,每个数据块的分块大小为m;
则,其中,/>表示向上取整;
分块后,D0,D1,…,Ds-2为完整分块,即长度为m字节,当n mod m≠0时,最后一个数据块Ds-1的长度为Ls-1=n mod m字节,小于m个字节;否则,n mod m=0,最后一个数据块Ds-1的长度为Ls-1=m字节。
按t个数据块为一组的方式对s个数据块进行分组,向下取整后形成u个分组;
其中,u个分组内的数据块为对齐数据块;u个分组外的v个数据块为收尾数据块;v表示为:v=s–ut;
分块分组完成后,根据分块分组情况,确定是采用并行处理算法、普通算法还是需要结合处理。主要在于判断v的值。
对于对齐部分,对分组内的t个数据块进行并行计算的表达式为:
(Yti+0,Yti+1,...,Yti+t-1)=PH(t)(Dti+0,Dti+1,…,Dti+t-1),i=0,1,…,u-1
PH(t)表示采用并行处理方法计算t个相同长度数据的数字摘要值计算方法;其中:
数据块Dti+j对应的基层数字摘要的计算表达式为:Yti+j=H(Dti+j);
Dti+j表示第i个分组中的第j个数据块,j=0,1,…,t-1,H表示数字摘要函数。
判断v的值,若,v=0,说明没有收尾数据块,并行计算已计算完毕;若,v>0,存在收尾数据块,还需要继续计算。此时分两种情况进行:
第一种,对收尾数据块不再进行判断,直接采用普通算法H进行计算。这种虽然比较简单,但是不是最高效的。简称简化模式。
第二种,对收尾数据块继续进行判断,是否完整分组以及v的具体值进一步划分,可以通过补充无效数据块等方式,数据块设置为全0或其他任意数据,使得能采用并行处理算法PH(t)的尽量进行并行处理,这样虽然过程相对更复杂,但是计算更高效。简称高效模式。
对于第二种情况,又划分为多种情况,具体为:
对于v个收尾数据块,如果v>0且最末一个分组Ds-1是完整分组,采用预设并行处理算法PH(t)并行计算数字摘要;即
(Ytu+0,Y tu+1,...,Y tu+t-1)=PH(t)(Dtu+0,Dtu+1,…,Dtu+t-1),
其中,Dtu+j表示超出u个分组外的第j个数据块,j=0,1,…,t-1;
t–v个数据块Dtu+v至Dtu+t-1是超过分块个数s的数据块,设置为全0或其他任意数据;这里的后t–v+1个数据块Dtu+v-1至Dtu+t-1仅为形式上的记号,为无用的数据,可设置为全0的分块数据或其它任意数据。
取(Ytu+0,Y tu+1,...,Y tu+t-1)中前v个数字摘要Ytu+0,Y tu+1,...,Y tu+v-1,丢弃后面的t–v个数字摘要。
对于v个收尾数据块,如果v>0且最末一个分组Ds-1是不完整分组,
当v=1时,通过预设数字摘要算法H对数据块进行计算数字摘要;
当v>1时,采用预设并行处理算法PH(t)并行计算v-1个数字摘要,通过预设数字摘要算法H对最后一个数据块进行计算数字摘要。
通过这种方式,可以最大限度的实现并行处理,对于看起来形式上不满足的分组数据块,通过虚拟补充数据块的形式使得形式上满足,然后进行并行处理,通过取舍有用的数字摘要即可。
计算出各个分组数据块的基层数据的数字摘要后,根据实际需求,采用数字摘要算法H计算顶层数据的数字摘要或采用消息鉴别码函数计算顶层数据的消息鉴别码。
其中,顶层数据的数字摘要公式如下:
Z=H(Y0||Y1||...||Ys-1)
其中,顶层数据的消息鉴别码公式如下:
Z=HMAC(K,Y0||Y1||...||Ys-1)
=H(K⊕opad,H(K⊕ipad,Y0||Y1||...||Ys-1))
最后输出需要的数字摘要或消息鉴别码。
如果用于计算其他的数据信息,根据相关公式函数计算即可。
在数据分块之前还可以包括:
检查分块大小m的取值,若,m≤数字摘要算法的输出长度,则,表示分块大小设置过小,执行返回错误值操作,以使工作人员调整m的取值。
本实施例中,所述分块大小m的取值可为:m大于或等于数字摘要算法H输出长度的2倍,具体实施时,可根据预先设定的PH(t)算法的计算性能和待处理数据大小综合选择。
参考图2,以下为简化步骤供理解:
检查参数,判断参数检测是否通过;如果否,参数设置错误。
如果是,将输入的基层数据分块;
对基层数据对齐部分并行计算数字摘要;
对基层数据的收尾数据块计算数字摘要;
计算顶层数据的数字摘要或消息鉴别码;
输出数字摘要或消息鉴别码。
本实施例中,将输入数据划分为S个数据块,并按t个数据块为一组的方式对s个数据块进行分组,向下取整后形成u个分组;对u个分组的数据块采用并行技术进行数字摘要计算,对u个分组外的v个数据块进行并行或普通摘要计算,得到所有的基层数字摘要;然后根据基层数字摘要,计算形成顶层数据的数字摘要或消息鉴别码等数据信息。本申请采用分层的思想,将输入数据进行分组,对每个分组内的数据进行并行数字摘要计算,能够充分利用CPU数据处理特性,有效的提高数字摘要计算处理效率,实用性极强。
实施例三
如图3所示,本实施例的数据文件的处理装置,包括:
分块模块11,用于将输入的第一层数据进行分块得到多个数据块;
分组模块12,用于对所述多个数据块进行分组得到多个分组数据块;
数据处理模块13,采用第一预设并行处理算法和/或第二预设算法对所述多个分组数据块进行处理计算各自对应的第一层数据的数字摘要;
输出模块14,根据所述第一层数据的数字摘要计算第二层数据的代表数据信息并输出。
实施例四
如图4,本实施例的数据文件的处理装置,与实施例三的区别在于,
所述数据处理模块具体13包括:
对齐数据处理子模块131,采用第一预设并行处理算法对所述多个分组数据块中对齐部分并行处理计算各自对应的第一层数据的数字摘要;
收尾数据处理子模块132,采用第二预设算法对所述多个分组数据块中收尾部分处理计算该收尾部分对应的第一层数据的数字摘要。
实施例五
如图5,本实施例的数据文件的处理装置,与实施例四的区别在于,
参数设置检查模块10,用于判断分块得到的数据块大小m是否大于第二预设算法的输出长度;
如否,则返回提示信息“分块设置过小”或错误信息。
实施例三、实施例四、实施例五的工作过程及技术效果,已经在实施例一、实施例二中详细描述,在此不再赘述。
可以看出,本申请可实施、可兼容和场景广泛,从低端的小型VPN至高端的服务器都能兼容,并表现出很高的性能提升。选取以下几个典型场景进行试验:
设定为工作站,如使用Intel13th处理器,此时选取:
H为SM3
PH(t)为AVX512指令并行实现的SM3,一个CPU核心可并行处理16块等长数据,同时使用24个线程并行执行AVX2指令实现的SM3计算,此时可以同时处理的等长数据个数t=16×24=384。
m:分块大小,设定为4096字节
收尾数据块采用高效模式。
以此方式执行大块数据的数字摘要的塔式计算方法Z=TowerHash(text,m)
以MB至GB级数据进行测试,此时执行效率约为传统实现方式的300倍以上。
设定为高性能服务器,如使用AMD霄龙处理器,此时选取:
H为SHA256
PH(t)为192线程,每个线程按普通实现方式实现的SHA256,此时可以同时处理的等长数据个数t=192。
m:分块大小,设定为1024字节
收尾数据块采用高效模式。
以此方式执行大块数据的数字摘要的塔式计算方法Z=TowerHash(text,m)
以MB至GB级数据进行测试,此时执行效率约为传统实现方式的150倍以上。
设定为低功耗场景,如VPN安全产品,如使用Atom处理器,此时选取:
H为SM3。
PH(t)为1线程,每个线程按SSE指令并行实现SM3,可并行处理4块等长数据,此时可以同时处理的等长数据个数t=4。
m:分块大小,设定为128字节
收尾数据块采用简化模式。
以此方式执行大块数据的数字摘要的塔式计算方法Z=TowerHash(text,m)
根据场景设定,以KB至MB级数据进行测试,此时执行效率约为传统实现方式的3倍左右。
经试验证明,与传统方式相比:
本申请在低配置的低功耗场景,如VPN安全产品,可以得到3倍左右的执行效率的提升;在使用高配置的工作站/服务器等对执行效率要求高的应用场景,性能可提升100倍以上,能够显著改善数字摘要和消息鉴别码的执行效率。
综上,本申请采用分层思想,结合可并行性执行计算过程,分别处理基层对齐部分数据和收尾部分数据,再计算顶层的数据信息,充分利用CPU特点,加速了大块数据的执行效率,特别适合云计算、海量数据计算数字摘要或消息鉴别码等场景。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (7)
1.一种数据文件的处理方法,包括:
将输入的第一层数据进行分块得到多个数据块;
对所述多个数据块进行分组得到多个分组数据块;
采用第一预设并行处理算法和/或第二预设算法对所述多个分组数据块进行处理计算所述多个分组数据块各自对应的第一层数据的数字摘要;
根据所述第一层数据的数字摘要计算第二层数据的代表数据信息并输出;
所述采用第一预设并行处理算法和/或第二预设算法对所述多个分组数据块进行处理计算各自对应的第一层数据的数字摘要,具体包括:
采用第一预设并行处理算法对所述多个分组数据块中对齐部分并行处理,计算所述多个分组数据块各自对应的第一层数据的数字摘要;
采用第二预设算法对所述多个分组数据块中收尾部分处理,计算该收尾部分对应的第一层数据的数字摘要;
所述将输入的第一层数据进行分块得到多个数据块;具体包括:
将输入的第一层数据text按分块大小m进行划分,向上取整后形成s个数据块;其中,分块后的第一层数据text表示为:text=D0||D1||…||Ds-1,||表示数据的串联;
所述对所述多个数据块进行分组得到多个分组数据块;具体包括:
按t个数据块为一组的方式对s个数据块进行分组,向下取整后形成u个分组;其中,u个分组外的v个数据块为收尾数据块;v表示为:v=s–ut;
所述采用第一预设并行处理算法对所述多个分组数据块中对齐部分并行处理计算各自对应的第一层数据的数字摘要;具体包括:
将数据块D0,D1,…,Ds-1按t个分块为一组的方式进行分组,对这个向下取整分组,采用预设并行处理算法PH(t)并行计算t个分组数据块各自对应的数字摘要,即
(Yti+0,Yti+1,...,Yti+t-1)=PH(t)(Dti+0,Dti+1,...,Dti+t-1),i=0,1,...,u-1
PH(t)表示采用并行处理方法计算t个相同长度数据的数字摘要计算方法;其中:
数据块Dti+j对应的第一层数据的数字摘要的计算表达式为:Yti+j=H(Dti+j);
Dti+j表示第i个分组中的第j个数据块,j=0,1,...,t-1,H为预设数字摘要算法;
所述第一层数据为基层数据,所述第二层数据为顶层数据,所述代表数据信息为数字摘要或消息鉴别码。
2.根据权利要求1所述的数据文件的处理方法,其特征在于,所述采用第二预设算法对所述多个分组数据块中收尾部分处理计算该收尾部分对应的第一层数字摘要;具体包括:
对于v个收尾数据块,如果v>0,通过预设数字摘要算法H对v个数据块进行计算,得到v个数据块对应的第一层数字摘要。
3.根据权利要求1所述的数据文件的处理方法,其特征在于,所述采用第二预设算法对所述多个分组数据块中收尾部分处理计算该收尾部分对应的第一层数字摘要;具体包括:
对于v个收尾数据块,如果v>0且最末一个分组Ds-1是完整分组,采用预设并行处理算法PH(t)并行计算数字摘要;即
(Ytu+0,Ytu+1,...,Ytu+t-1)=PH(t)(Dtu+0,Dtu+1,…,Dtu+t-1),
其中,Dtu+j表示超出u个分组外的第j个数据块,j=0,1,...,t-1;
t–v个数据块Dtu+v至Dtu+t-1是超过分块个数s的数据块,设置为全0或其他任意数据;
取(Ytu+0,Ytu+1,...,Ytu+t-1)中前v个数字摘要Ytu+0,Ytu+1,...,Ytu+v-1,丢弃后面的t–v个数字摘要。
4.根据权利要求3所述的数据文件的处理方法,其特征在于,对于v个收尾数据块,如果v>0且最末一个分组Ds-1是不完整分组,
当v=1时,通过预设数字摘要算法H对数据块进行计算数字摘要;
当v>1时,采用预设并行处理算法PH(t)并行计算v-1个数字摘要,通过预设数字摘要算法H对最后一个数据块进行计算数字摘要。
5.根据权利要求1所述的数据文件的处理方法,其特征在于,在所述将输入的第一层数据进行分块得到多个数据块之前,还包括:
参数设置检查,判断分块得到的数据块大小m是否大于第二预设算法的输出长度;
如否,则返回提示信息“分块设置过小”或错误信息。
6.一种电子设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述可执行指令时,实现如权利要求1至5任一项所述的数据文件的处理方法。
7.一种存储介质,其特征在于,存储有可执行指令,所述可执行指令被执行时,用于实现如权利要求1至5任一项所述的数据文件的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310107071.0A CN116305192B (zh) | 2023-02-07 | 2023-02-07 | 数据文件的处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310107071.0A CN116305192B (zh) | 2023-02-07 | 2023-02-07 | 数据文件的处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116305192A CN116305192A (zh) | 2023-06-23 |
CN116305192B true CN116305192B (zh) | 2023-11-14 |
Family
ID=86780612
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310107071.0A Active CN116305192B (zh) | 2023-02-07 | 2023-02-07 | 数据文件的处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116305192B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7443321B1 (en) * | 2007-02-13 | 2008-10-28 | Packeteer, Inc. | Compression of stream data using a hierarchically-indexed database |
JP2011150428A (ja) * | 2010-01-19 | 2011-08-04 | Nippon Hoso Kyokai <Nhk> | ファイル処理装置及びプログラム |
WO2012083262A2 (en) * | 2010-12-16 | 2012-06-21 | Microsoft Corporation | Extensible pipeline for data deduplication |
CN107122490A (zh) * | 2017-05-18 | 2017-09-01 | 郑州云海信息技术有限公司 | 一种分组查询中聚合函数的数据处理方法及*** |
WO2020233082A1 (zh) * | 2019-05-22 | 2020-11-26 | 深圳壹账通智能科技有限公司 | 数据文件上传方法、***、存储介质和服务器 |
CN113794552A (zh) * | 2021-09-14 | 2021-12-14 | 山东省计算中心(国家超级计算济南中心) | 一种基于simd的sm3并行数据加密运算方法及*** |
WO2023005083A1 (zh) * | 2021-07-26 | 2023-02-02 | 苏州浪潮智能科技有限公司 | 一种安全散列算法的实现方法、***、介质及设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060020594A1 (en) * | 2004-07-21 | 2006-01-26 | Microsoft Corporation | Hierarchical drift detection of data sets |
US20160380770A1 (en) * | 2015-06-23 | 2016-12-29 | Trifone Whitmer | System and Method for Hash-Based Data Stream Authentication |
-
2023
- 2023-02-07 CN CN202310107071.0A patent/CN116305192B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7443321B1 (en) * | 2007-02-13 | 2008-10-28 | Packeteer, Inc. | Compression of stream data using a hierarchically-indexed database |
JP2011150428A (ja) * | 2010-01-19 | 2011-08-04 | Nippon Hoso Kyokai <Nhk> | ファイル処理装置及びプログラム |
WO2012083262A2 (en) * | 2010-12-16 | 2012-06-21 | Microsoft Corporation | Extensible pipeline for data deduplication |
CN107122490A (zh) * | 2017-05-18 | 2017-09-01 | 郑州云海信息技术有限公司 | 一种分组查询中聚合函数的数据处理方法及*** |
WO2020233082A1 (zh) * | 2019-05-22 | 2020-11-26 | 深圳壹账通智能科技有限公司 | 数据文件上传方法、***、存储介质和服务器 |
WO2023005083A1 (zh) * | 2021-07-26 | 2023-02-02 | 苏州浪潮智能科技有限公司 | 一种安全散列算法的实现方法、***、介质及设备 |
CN113794552A (zh) * | 2021-09-14 | 2021-12-14 | 山东省计算中心(国家超级计算济南中心) | 一种基于simd的sm3并行数据加密运算方法及*** |
Non-Patent Citations (2)
Title |
---|
基于MapReduce的智能电网云计算并行优化研究;孙帆;李晓光;张勇;许广虎;谢海疆;;计算机与数字工程(04);全文 * |
基于多层MD5消息摘要的文件完整性实时检测技术;方燕飞;王俊;何王全;;计算机应用与软件(01);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116305192A (zh) | 2023-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111064579A (zh) | 基于区块链的安全多方计算方法、***、及存储介质 | |
US9219602B2 (en) | Method and system for securely computing a base point in direct anonymous attestation | |
US9948462B2 (en) | Hypersphere-based multivariable public key signature/verification system and method | |
CN112446052B (zh) | 一种适用于涉密信息***的聚合签名方法及*** | |
US11997196B2 (en) | Robust input verification for secure multi-party computation (MPC) with clients | |
US20210152331A1 (en) | Protecting polynomial hash functions from external monitoring attacks | |
US20160149708A1 (en) | Electronic signature system | |
CN116305192B (zh) | 数据文件的处理方法、装置、电子设备及存储介质 | |
CN113158253A (zh) | 一种隐私求并集方法及装置 | |
CN115473632B (zh) | 一种改进的多层可链接环签名生成方法及装置 | |
CN112487464A (zh) | 一种基于区块链的加密数据分享方法及装置 | |
CN114647824B (zh) | 一种神经网络主动保护方法、***、存储介质及计算设备 | |
WO2023019841A1 (zh) | 数据审计方法及装置 | |
CN107947944B (zh) | 一种基于格的增量签名方法 | |
CN112541197B (zh) | 一种结果验证方法及装置 | |
KR20150112315A (ko) | 묶음 검증 방법 및 장치 | |
CN112887097A (zh) | 基于sm2椭圆曲线的签名方法、相关装置、及存储介质 | |
CN117692150B (zh) | 一种签名生成、签名验证方法及计算机设备 | |
CN115168902A (zh) | 一种分组可验证的链式隐私保护联邦学习方法及装置 | |
CN116363395B (zh) | 基于秘密分享的可验证图片相似度识别方法和装置 | |
CN115277144B (zh) | 一种链路聚合数据传输方法、***、装置及存储介质 | |
CN115473634B (zh) | 一种改进的可链接环签名生成方法及装置 | |
CN112054894B (zh) | 一种基于sm2的批量验证方法及*** | |
US10547447B2 (en) | Collaborative computation of HMAC | |
CN116633534A (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 |