CN116186747A - 自适应哈希加密方法、非易失性可读存储介质及电子设备 - Google Patents

自适应哈希加密方法、非易失性可读存储介质及电子设备 Download PDF

Info

Publication number
CN116186747A
CN116186747A CN202310464817.3A CN202310464817A CN116186747A CN 116186747 A CN116186747 A CN 116186747A CN 202310464817 A CN202310464817 A CN 202310464817A CN 116186747 A CN116186747 A CN 116186747A
Authority
CN
China
Prior art keywords
data
dimensional
matrix
segment
target
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.)
Pending
Application number
CN202310464817.3A
Other languages
English (en)
Inventor
吴刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dark Chain Technology Shenzhen Co ltd
Original Assignee
Dark Chain Technology Shenzhen Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Dark Chain Technology Shenzhen Co ltd filed Critical Dark Chain Technology Shenzhen Co ltd
Priority to CN202310464817.3A priority Critical patent/CN116186747A/zh
Publication of CN116186747A publication Critical patent/CN116186747A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Algebra (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及数据加密技术领域,公开了一种自适应哈希加密方法、非易失性可读存储介质及电子设备。自适应哈希加密方法包括:获取源数据,确定源数据的数据量信息,根据数据量信息确定目标加密模式,根据目标加密模式对源数据执行散列化操作,得到哈希加密数据。本实施例能够自适应源数据的大小,根据源数据的数据量信息灵活地选择目标加密模式以加密源数据,如此能够提高加密效率。

Description

自适应哈希加密方法、非易失性可读存储介质及电子设备
技术领域
本发明涉及数据加密技术领域,具体涉及一种自适应哈希加密方法、非易失性可读存储介质及电子设备。
背景技术
安全散列算法(Secure Hash Algorithm,SHA算法)广泛应用于数字签名等数据加密业务中,当源数据输入SHA算法模块时,SHA算法模块按照既定的加密模式处理源数据,从而能够输出固定长度的消息摘要,以验证源数据的完整性,其中,加密模式为顺序化算法架构。
发明人在实现本发明的过程中,发现:若按照既定的加密模式处理较小的源数据,由于所有加密方法的处理时间都已经足够短,此种做法不会带来明显的效率提升,但是由于总操作数较低,容易出现随机度不足的问题。若按照既定的加密模式处理较大的源数据,顺序化算法架构的处理时效与数据量成正比,其处理较大源数据的加密时效会越来越低,因此,现有作法采用既定加密模式的方式并不能灵活有效地配置加密操作资源,导致加密效率并不高。
发明内容
本发明实施例的一个目的旨在提供一种自适应哈希加密方法、非易失性可读存储介质及电子设备,旨在解决现有技术的加密效率不高的技术问题。
在第一方面,本发明实施例提供一种自适应哈希加密方法,包括:
获取源数据;
确定所述源数据的数据量信息;
根据所述数据量信息确定目标加密模式;
根据所述目标加密模式对所述源数据执行散列化操作,得到哈希加密数据。
在第二方面,本发明实施例提供一种非易失性可读存储介质,所述非易失性可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使电子设备执行上述的自适应哈希加密方法。
在第三方面,本发明实施例提供一种电子设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的自适应哈希加密方法。
在本发明实施例提供的自适应哈希加密方法中,获取源数据,确定源数据的数据量信息,根据数据量信息确定目标加密模式,根据目标加密模式对源数据执行散列化操作,得到哈希加密数据。本实施例能够自适应源数据的大小,根据源数据的数据量信息灵活地选择目标加密模式以加密源数据,如此能够提高加密效率。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1为本发明实施例提供的一种自适应哈希加密方法的流程示意图;
图2为本发明实施例提供的按照序行加密模式对多个三维数据矩阵执行散列化操作的示意图;
图3为本发明实施例提供的按照段并行算法架构对多个三维数据矩阵执行散列化操作的示意图;
图4为本发明实施例提供的按照段并行轮间序架构对多个三维数据矩阵执行散列化操作的示意图;
图5为本发明实施例提供的按照段并行轮内序架构对多个三维数据矩阵执行散列化操作的示意图;
图6为本发明实施例提供的一种电子设备的电路结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,如果不冲突,本发明实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。再者,本发明所采用的“第一”、“第二”、“第三”等字样并不对数据和执行次序进行限定,仅是对功能和作用基本相同的相同项或相似项进行区分。
本发明实施例提供一种自适应哈希加密方法。请参阅图1,自适应哈希加密方法包括以下步骤:
S11:获取源数据。
本步骤中,源数据为需要执行哈希加密操作的数据。源数据以二进制形式进行表达,其中,源数据的位数不固定,比如源数据的位数为300位或1024位或者1555000000位,具体长度不限。
S12:确定源数据的数据量信息。
本步骤中,数据量信息为用于表示源数据大小的信息,其中,数据量信息可为源数据的长度或者段数,段数为源数据被划分成至少一个数据段的数量。
在一些实施例中,确定源数据的数据量信息包括:将源数据转换成二进制结果,计算二进制结果的位数,得到数据量信息。
在一些实施例中,确定源数据的数据量信息包括:将源数据划分成至少一个数据段,计算数据段的数量,得到数据量信息。
S13:根据数据量信息确定目标加密模式。
本步骤中,加密模式为用于对源数据进行哈希加密的算法架构,目标加密模式为至少两个加密模式中的一个加密模式,其中,不同加密模式对同一源数据进行加密的加密速度是不同的,本实施例能够根据数据量信息,自适应地选择相应加密模式作为目标加密模式。
S14:根据目标加密模式对源数据执行散列化操作,得到哈希加密数据。
本步骤中,散列化操作用于对源数据进行散列化,哈希加密数据为目标加密模式输出的指定位数的数据,其中,指定位数可由设计者根据业务需求自定义。在一些实施例中,指定位数为2的N次方,其中,N为正整数。在一些实施例中,N为8,因此,指定位数为256位。
如前所述,本实施例能够自适应源数据的大小,根据源数据的数据量信息灵活地选择目标加密模式以加密源数据,如此能够提高加密效率。
在一些实施例中,根据目标加密模式对源数据执行散列化操作,得到哈希加密数据包括以下步骤:
S141:根据源数据生成多个三维数据矩阵。
S142:根据目标加密模式对多个三维数据矩阵执行散列化操作,得到最终三维矩阵。
S143:将最终三维矩阵压缩出指定位数的哈希加密数据。
在S141中,数据段为按照指定位数从源数据中截取的多个数值组成的数据集合,任两个数据点的位数都是相等的,其中,指定位数可由设计者根据业务需求自定义。在一些实施例中,指定位数为2的N次方,其中,N为正整数。在一些实施例中,N为8,因此,指定位数为256位。在一些实施例中,N为9,因此,指定位数为512位。
可以理解的是,由于SHA算法属于块处理算法,且目前通用处理器的位数为64位,通用处理器可以寻址和支持264(18百万TB)大小的内存,因此,本实施例可以按照64的整倍数作为指定位数以分割源数据,如前所述,256或512都为64的倍数。
在一些实施例中,根据源数据生成多个三维数据矩阵包括:将源数据划分成多个等长的数据段,生成与每个数据段对应的三维数据矩阵。
在一些实施例中,将源数据分成多个等长的数据段包括以下步骤:按照指定位数将源数据依序分成多个数据段,当最后数据段的总位数小于或等于指定位数时,对最后数据段执行补齐操作,使得补齐后的最后数据段的位数为指定位数。最后数据段为在多个数据段中排列最后的数据段,补齐操作为在最后数据点后补充数值的操作。
在一些实施例中,对最后数据段执行补齐操作,使得补齐后的最后数据段的位数为指定位数包括:在最后数据段后增加补齐字段,使得补齐后的最后数据段的位数为指定位数。
在S142中,最终三维矩阵为基于目标加密模式将各数据段的三维数据矩阵进行散列化压缩得到的三维矩阵。
在S143中,在一些实施例中,若设定的指定位数等于最终三维矩阵的矩阵大小,则将最终三维矩阵压缩出指定位数的哈希加密数据包括:将最终三维矩阵的数值作为哈希加密数据。
在一些实施例中,若设定的指定位数小于最终三维矩阵的矩阵大小,则将最终三维矩阵压缩出指定位数的哈希加密数据包括:从最终三维矩阵中选择指定区域的数值作为哈希加密数据,其中,指定区域包含的数值的数量等于指定位数。举例而言,指定区域为最终三维矩阵的前半部分,当指定位数为256,最终三维矩阵的矩阵大小8*8*64,则本实施例选择最终三维矩阵的前面256个数值作为哈希加密数据。再举例而言,指定区域为最终三维矩阵的后半部分,则本实施例选择最终三维矩阵的最后256个数值作为哈希加密数据。再举例而言,指定区域为最终三维矩阵的中间部分,则本实施例选择处于最终三维矩阵的中间部分的256个数值作为哈希加密数据。由于最终三维矩阵是经过散列化操作的数据,本实施例能够整合多个三维数据矩阵以得到最终三维矩阵,再从最终三维矩阵提取出指定位数的哈希加密数据,从而能够达到多重加密的效果。
在一些实施例中,数据量信息与目标加密模式的加密速度呈正相关关系。
在一些实施例中,根据数据量信息确定目标加密模式包括:若数据量信息小于第一预设数量阈值,则选择序行加密模式为目标加密模式,若数据量信息大于第一预设数量阈值,则选择并行加密模式为目标加密模式,其中,并行加密模式的加密速度大于行加密模式的加密速度。
第一预设数量阈值由用户根据经验自定义,比如在数据量信息为源数据的长度的前提下,当每个数据段的长度为512时,第一预设数量阈值可为4096,当每个数据段的长度为4096时,第一预设数量阈值可为214。在数据量信息为源数据的段数的前提下,当每个数据段的长度为512时,第一预设数量阈值可为8,当每个数据段的长度为4096时,第一预设数量阈值可为4。
序行加密模式为依序对每个数据段的三维数据矩阵进行散列化操作的算法架构。若目标加密模式为序行加密模式,则根据目标加密模式对多个三维数据矩阵执行散列化操作,得到最终三维矩阵包括以下步骤:
S1421:依序对每个第一目标数据段的三维数据矩阵执行第一预设循环次数的散列化操作。
S1425:当对最后数据段的三维数据矩阵执行完第一预设循环次数的散列化操作后,得到最终三维矩阵。
在S1421中,第一目标数据段为按照数据段排列顺序在多个数据段选择的数据段,其中,数据段排列顺序为段序由低到高的顺序,段序为相应数据段在各个数据段中的顺序。本实施例先对数据段
Figure SMS_1
的三维数据矩阵执行第一预设循环次数的散列化操作,于是本实施例选择数据段/>
Figure SMS_2
作为第一目标数据段。当处理完数据段/>
Figure SMS_3
的三维数据矩阵后,本实施例接着选择数据段/>
Figure SMS_4
作为第一目标数据段。当处理完数据段/>
Figure SMS_5
的三维数据矩阵后,本实施例接着选择数据段/>
Figure SMS_6
作为第一目标数据段,以此类推。
第一预设循环次数可由设计者根据业务需求自定义,在一些实施例中,第一预设循环次数为16次或24次或32次。
举例而言,若第一预设循环次数为32次,本实施例能够对数据段
Figure SMS_7
的三维数据矩阵/>
Figure SMS_8
执行32轮散列化操作,得到经过32轮散列化操作的三维数据矩阵/>
Figure SMS_9
,后续经过32轮散列化操作的三维数据矩阵/>
Figure SMS_10
再与数据段/>
Figure SMS_11
的三维数据矩阵/>
Figure SMS_12
进行融合,得到第一融合三维矩阵,然后再对该第一融合三维矩阵执行32轮散列化操作,以此类推。
在第1次散列化操作中,对于数据段
Figure SMS_14
的三维数据矩阵/>
Figure SMS_17
,本实施例对三维数据矩阵/>
Figure SMS_18
执行第1次散列化操作,得到第1次散列化后的三维数据矩阵/>
Figure SMS_19
。第1次散列化后的三维数据矩阵/>
Figure SMS_20
作为第2次散列化操作的输入,在第2次散列化操作中,本实施例对三维数据矩阵/>
Figure SMS_21
执行第2次散列化操作,得到第2次散列化后的三维数据矩阵/>
Figure SMS_22
,以此类推,一直执行32次,得到第32次散列化后的三维数据矩阵/>
Figure SMS_13
,最后将第32次散列化后的三维数据矩阵/>
Figure SMS_15
作为数据段/>
Figure SMS_16
的散列化三维矩阵。
在S1425中,由于目标加密模式为序行加密模式,当最后数据段输入序行加密模式时,序行加密模式也已完成排列在最后数据段之前的各个数据段的散列化处理,因此,当最后数据段的三维数据矩阵输入目标加密模式,并且目标加密模式对最后数据段的三维数据矩阵执行完第一预设循环次数的散列化操作后,便可得到最终三维矩阵。
在一些实施例中,依序对每个第一目标数据段的三维数据矩阵执行第一预设循环次数的散列化操作包括以下步骤:
S14211:将第一目标数据段的三维数据矩阵及上一个数据段的散列化三维矩阵进行融合,得到第一融合三维矩阵。
S14212:对第一融合三维矩阵执行第一预设循环次数的散列化操作,得到第一目标数据段的散列化三维矩阵,其中,第一目标数据段的散列化三维矩阵可作为位于第一目标数据段后面的数据段的输入。
在S14211中,散列化三维矩阵为对数据段
Figure SMS_23
的第一融合三维矩阵执行第一预设循环次数的散列化操作得到的三维矩阵,其中,数据段/>
Figure SMS_24
的第一融合三维矩阵由融合数据段/>
Figure SMS_25
的散列化三维矩阵与数据段/>
Figure SMS_26
的三维数据矩阵得到的三维矩阵,散列化三维矩阵的矩阵大小与三维数据矩阵的矩阵大小一致。上一个数据段为排列在第一目标数据段前面的数据段,若第一目标数据段为数据段/>
Figure SMS_27
,则上一个数据段为数据段/>
Figure SMS_28
将第一目标数据段的三维数据矩阵及上一个数据段的散列化三维矩阵进行融合包括:将第一目标数据段的三维数据矩阵及上一个数据段的散列化三维矩阵进行异或处理,得到第一融合三维矩阵。当第一目标数据段为首个数据段
Figure SMS_29
时,数据段/>
Figure SMS_30
对应的上一个数据段的散列化三维矩阵为预置三维矩阵,通常预置三维矩阵为空矩阵,其数值都为0。
在S14212中,对第一融合三维矩阵执行第一预设循环次数的散列化操作包括:调用至少一个目标加密插件对第一融合三维矩阵执行第一预设循环次数的散列化操作,得到第一目标数据段的散列化三维矩阵。
举例而言,调用第一加密插件对第一融合三维矩阵执行32轮的散列化操作,得到第一目标数据段的散列化三维矩阵。或者,调用第一加密插件及第二加密插件对第一融合三维矩阵执行32轮的散列化操作,得到第一目标数据段的散列化三维矩阵。或者,调用第一加密插件、第二加密插件及第三加密插件对第一融合三维矩阵执行32轮的散列化操作,得到第一目标数据段的散列化三维矩阵。
为了详细阐述序行加密模式对多个三维数据矩阵执行散列化操作的过程,本实施例结合图2对此作出说明,具体如下:
当源数据的数据长度小于4096时,本实施例选择序行加密模式作为目标加密模式。序行加密模式能够根据多个数据段输出256位的哈希加密数据,每个数据段的长度为512,每个数据段对应的三维数据矩阵的矩阵大小为83,第一预设循环次数r32为32,每轮散列化操作依序调用第一加密插件、第二加密插件及第三加密插件。
请参阅图2,本实施例将源数据分成多个数据段,分别为数据段P0、数据段P1……,数据段Pn-1,然后再并行地生成上述各个数据段对应的三维数据矩阵。数据段P0为首个数据段,数据段P0对应的上一个数据段的散列化三维矩阵为空矩阵,数据段Pn-1为最后数据段。
当数据段P0为第一目标数据段时,本实施例将数据段P0的三维数据矩阵K0与空矩阵进行异或,得到数据段P0的第一融合三维矩阵R0,然后再依序调用上述3个加密插件对第一融合三维矩阵R0执行32轮的散列化操作,得到数据段P0的散列化三维矩阵SL0
当数据段P1为第一目标数据段时,数据段P1的上一个数据段为数据段P0,上一个数据段的散列化三维矩阵为数据段P0的散列化三维矩阵SL0。本实施例将数据段P1的三维数据矩阵K1与散列化三维矩阵SL0进行异或,得到数据段P1的第一融合三维矩阵R1,然后再依序调用上述3个加密插件对第一融合三维矩阵R1执行32轮的散列化操作,得到数据段P1的散列化三维矩阵SL1,以此类推。
当数据段Pn-1为第一目标数据段时,本实施例将数据段Pn-1的三维数据矩阵Kn-1与散列化三维矩阵SLn-1进行异或,得到数据段Pn-1的第一融合三维矩阵Rn-1,然后再依序调用上述3个加密插件对第一融合三维矩阵Rn-1执行32轮的散列化操作,得到数据段Pn-1的散列化三维矩阵SLn-1。由于数据段Pn-1为最后数据段,因此,数据段Pn-1的散列化三维矩阵SLn-1为最终三维矩阵。
在一些实施例中,并行加密模式包括段并行算法架构及段并行轮变换算法架构,选择并行加密模式为目标加密模式包括:若数据量信息大于第一预设数量阈值且小于第二预设数量阈值,则选择段并行算法架构为目标加密模式,若数据量信息大于第二预设数量阈值,则选择段并行轮变换算法架构为目标加密模式,其中,段并行轮变换算法架构的加密速度大于段并行算法架构的加密速度。
第二预设数量阈值由用户根据经验自定义,比如在数据量信息为源数据的长度的前提下,当每个数据段的长度为512时,第二预设数量阈值可为224,当每个数据段的长度为4096时,第二预设数量阈值可为224。在数据量信息为源数据的段数的前提下,当每个数据段的长度为512时,第二预设数量阈值可为215,当每个数据段的长度为4096时,第二预设数量阈值可为212
段并行算法架构为并行对每个数据段的三维数据矩阵进行散列化操作的算法架构。段并行轮变换算法架构为并行对每个并行组进行散列化操作的算法架构,其中,并行组包括多个三维数据矩阵。
若目标加密模式为段并行算法架构,根据目标加密模式对多个三维数据矩阵执行散列化操作,得到最终三维矩阵包括以下步骤:
S1422:并行对每个数据段的三维数据矩阵执行第二预设循环次数的散列化操作,得到每个数据段的散列化三维矩阵。
S1426:融合各数据段的散列化三维矩阵,得到候选三维数据矩阵。
S1440:对候选三维数据矩阵执行第二预设循环次数的散列化操作,得到最终三维矩阵。
在S1422中,第二预设循环次数可由设计者根据业务需求自定义,在一些实施例中,第二预设循环次数为16次或24次或32次。若第二预设循环次数为16次,本实施例能够并行地对每个数据段
Figure SMS_31
的三维数据矩阵执行16轮散列化操作,得到经过16轮散列化操作的各个三维数据矩阵。
并行对每个数据段的三维数据矩阵执行第二预设循环次数的散列化操作包括:并行调用至少一个目标加密插件对每个数据段的三维数据矩阵执行第二预设循环次数的散列化操作。
举例而言,调用第一加密插件对每个数据段的三维数据矩阵执行16轮的散列化操作,得到每个数据段的散列化三维矩阵。或者,调用第一加密插件及第二加密插件对每个数据段的三维数据矩阵执行16轮的散列化操作,得到每个数据段的散列化三维矩阵。或者,调用第一加密插件、第二加密插件及第三加密插件对每个数据段的三维数据矩阵执行16轮的散列化操作,得到每个数据段的散列化三维矩阵。
在S1426中,如前所述,本实施例能够将经过16轮散列化操作的各个三维数据矩阵进行融合,得到候选三维数据矩阵。
在S1440中,对候选三维数据矩阵执行第二预设循环次数的散列化操作包括:调用至少一个目标加密插件对候选三维数据矩阵执行第二预设循环次数的散列化操作。
为了详细阐述段并行算法架构对多个三维数据矩阵执行散列化操作的过程,本实施例结合图3对此作出说明,具体如下:
当源数据的数据长度大于212但小于224时,本实施例选择段并行算法架构作为目标加密模式。段并行算法架构能够根据多个数据段输出256位的哈希加密数据,每个数据段的长度为512,每个数据段对应的三维数据矩阵的矩阵大小为83,第二预设循环次数r16为16,每轮散列化操作依序调用第一加密插件、第二加密插件及第三加密插件。
请参阅图3,本实施例将源数据分成多个数据段,分别为数据段P0、数据段P1……,数据段Pn-1,然后再并行地生成上述各个数据段对应的三维数据矩阵。
本实施例并行对数据段P0、数据段P1……,数据段Pn-1各自对应的三维数据矩阵执行16轮的散列化操作,分别得到数据段P0、数据段P1……,数据段Pn-1各自对应的散列化三维矩阵,然后再将数据段P0、数据段P1……,数据段Pn-1各自对应的散列化三维矩阵进行融合,得到候选三维数据矩阵。最后再对该候选三维数据矩阵执行16轮的散列化操作,得到最终三维矩阵。
段并行算法架构相对序行加密模式的区别点至少为:段并行算法架构能够并行地对每个数据段的三维数据矩阵进行相应循环次数的散列化操作,序行加密模式需要以上一个数据段的散列化三维矩阵作为其中一个输入,将该输入与当前数据段的三维数据矩阵进行融合和散列化处理,因此,段并行算法架构能够多线程并行化操作,序行加密模式是顺序化操作,因此,段并行算法架构的加密速度相对地比序行加密模式的加密速度快。若令图2所示的序行加密模式的加密速度为1,图3所示的段并行算法架构的加密速度为2n。
在一些实施例中,段并行轮变换算法架构包括段并行轮间序架构及段并行轮内序架构,选择段并行轮变换算法架构为目标加密模式包括以下步骤:若数据量信息大于第二预设数量阈值且小于第三预设数量阈值,则选择段并行轮间序架构为目标加密模式,若数据量信息大于第三预设数量阈值,则选择段并行轮内序架构为目标加密模式,段并行轮内序架构的加密速度大于段并行轮间序架构的加密速度。
第三预设数量阈值由用户根据经验自定义,比如在数据量信息为源数据的长度的前提下,当每个数据段的长度为512时,第三预设数量阈值可为236,当每个数据段的长度为4096时,第三预设数量阈值可为236。在数据量信息为源数据的段数的前提下,当每个数据段的长度为512时,第三预设数量阈值可为227,当每个数据段的长度为4096时,第三预设数量阈值可为224
段并行轮间序架构为并行对每个并行组进行散列化操作且不吸收其它数据段加入每轮散列化操作中的算法架构。段并行轮内序架构为并行对每个并行组进行散列化操作且吸收其它数据段加入每轮散列化操作中的算法架构。
若目标加密模式为段并行轮间序架构,则根据目标加密模式对多个三维数据矩阵执行散列化操作,得到最终三维矩阵包括以下步骤:
S1423:根据第一预设分组系数,将多个三维数据矩阵分成多个第一并行组,每个第一并行组包括数量与第一预设分组系数一致的多个三维数据矩阵。
S1427:按照序行加密模式并行对每个第一并行组的多个三维数据矩阵执行散列化操作,得到第一待定三维矩阵。
S1441:将各第一并行组的第一待定三维矩阵进行融合,得到第二待定三维矩阵。
S1445:对第二待定三维矩阵执行第三预设循环次数的散列化操作,得到最终三维矩阵。
在S1423中,第一预设分组系数由设计者根据业务需求自定义,比如第一预设分组系数h为16,每个第一并行组包括依序排列的16个数据段的三维数据矩阵。举例而言,本实施例将源数据分成多个数据段,分别为数据段P0、数据段P1……,数据段Pn-1,然后再并行地生成上述各个数据段对应的三维数据矩阵。
若第一预设分组系数h=16,则第一并行组BXF0由数据段P0的三维数据矩阵至数据段P15的三维数据矩阵组成。第一并行组BXF1由数据段P16的三维数据矩阵至数据段P31的三维数据矩阵组成。以此类推。
一第一并行组对应一线程,每个线程可以按照序行加密模式对每个第一并行组的多个三维数据矩阵执行散列化操作,因此,线程数量至少为:i=j/h,i为线程数量,j为三维数据矩阵的总数量。当j不能整除h时,可按照进一法确定i。
在S1427中,按照序行加密模式并行对每个第一并行组的多个三维数据矩阵执行散列化操作,得到第一待定三维矩阵包括:依序对每个第二目标数据段的三维数据矩阵执行第四预设循环次数的散列化操作,第二目标数据段为按照数据段排列顺序在第一并行组选择的数据段,当对第一并行组内的最后数据段的三维数据矩阵执行完第四预设循环次数的散列化操作后,得到第一待定三维矩阵。
在一些实施例中,第四预设循环次数小于第三预设循环次数。
依序对每个第二目标数据段的三维数据矩阵执行第四预设循环次数的散列化操作包括:将第二目标数据段的三维数据矩阵及前一个数据段的散列化三维矩阵进行融合,得到第一杂交三维矩阵,其中,所述前一个数据段为排列在第二目标数据段前面的数据段,对所述第一杂交三维矩阵执行第四预设循环次数的散列化操作,得到所述第二目标数据段的散列化三维矩阵,其中,所述第二目标数据段的散列化三维矩阵可作为位于所述第二目标数据段后面的数据段的输入。
第四预设循环次数可由设计者根据业务需求自定义,在一些实施例中,第四预设循环次数为1或2或16或24等。
在S1441中,经过步骤S1427的处理后,每个第一并行组都可得到第一待定三维矩阵,本实施例再将各第一并行组的第一待定三维矩阵进行融合,得到第二待定三维矩阵。
在S1445中,第三预设循环次数可由设计者根据业务需求自定义,在一些实施例中,第三预设循环次数为16次或24次或32次。如前所述,本实施例对第二待定三维矩阵执行16轮的散列化操作,得到最终三维矩阵。
为了详细阐述段并行轮间序架构对多个三维数据矩阵执行散列化操作的过程,本实施例结合图4对此作出说明,具体如下:
当源数据的数据长度大于224但小于236时,本实施例选择段并行轮间序架构作为目标加密模式。段并行轮间序架构能够根据多个数据段输出256位的哈希加密数据,每个数据段的长度为512,每个数据段对应的三维数据矩阵的矩阵大小为83,第一预设分组系数为16,第三预设循环次数r16为16,第四预设循环次数为1,每轮散列化操作依序调用第一加密插件、第二加密插件及第三加密插件。
请参阅图4,本实施例将源数据分成多个数据段,然后再并行地生成上述各个数据段对应的三维数据矩阵。由于第一预设分组系数为16,因此,本实施例依序将每16个数据段的三维数据矩阵划分成一个第一并行组,第i个第一并行组的第j个数据段记为
Figure SMS_32
举例而言,如图4所示,第0个第一并行组40包括数据段
Figure SMS_34
,数据段/>
Figure SMS_36
,……,数据段/>
Figure SMS_37
。第1个第一并行组41包括数据段/>
Figure SMS_38
,数据段/>
Figure SMS_39
,……,数据段/>
Figure SMS_40
。第n-1个第一并行组42包括数据段/>
Figure SMS_41
,数据段/>
Figure SMS_33
,……,数据段/>
Figure SMS_35
。以此类推。
本实施例按照序行加密模式并行对第0个第一并行组40、第1个第一并行组41、第n-1个第一并行组42等执行散列化操作,得到每个第一并行组的第一待定三维矩阵。
以第0个第一并行组40的散列化操作过程为例,具体如下:
当数据段
Figure SMS_43
为第二目标数据段时,本实施例将数据段/>
Figure SMS_44
的三维数据矩阵/>
Figure SMS_45
与空矩阵进行异或,得到数据段/>
Figure SMS_46
的第一杂交三维矩阵/>
Figure SMS_47
,然后再依序调用上述3个加密插件对第一杂交三维矩阵/>
Figure SMS_48
执行1轮的散列化操作,得到数据段/>
Figure SMS_49
的散列化三维矩阵/>
Figure SMS_42
当数据段
Figure SMS_51
为第二目标数据段时,数据段/>
Figure SMS_52
的前一个数据段为数据段/>
Figure SMS_54
,前一个数据段的散列化三维矩阵为数据段/>
Figure SMS_56
的散列化三维矩阵/>
Figure SMS_58
。本实施例将数据段/>
Figure SMS_60
的三维数据矩阵/>
Figure SMS_62
与散列化三维矩阵/>
Figure SMS_50
进行异或,得到数据段/>
Figure SMS_53
的第一杂交三维矩阵/>
Figure SMS_55
,然后再依序调用上述3个加密插件对第一杂交三维矩阵/>
Figure SMS_57
执行1轮的散列化操作,得到数据段
Figure SMS_59
的散列化三维矩阵/>
Figure SMS_61
,以此类推。/>
当数据段
Figure SMS_64
为第二目标数据段时,本实施例将数据段/>
Figure SMS_65
的三维数据矩阵/>
Figure SMS_68
与散列化三维矩阵/>
Figure SMS_70
进行异或,得到数据段/>
Figure SMS_72
的第一杂交三维矩阵/>
Figure SMS_73
,然后再依序调用上述3个加密插件对第一杂交三维矩阵/>
Figure SMS_75
执行1轮的散列化操作,得到数据段/>
Figure SMS_63
的散列化三维矩阵/>
Figure SMS_66
。由于数据段/>
Figure SMS_67
为最后数据段,因此,数据段/>
Figure SMS_69
的散列化三维矩阵/>
Figure SMS_71
为第0个第一并行组40的第一待定三维矩阵/>
Figure SMS_74
如前所述,当得到第0个第一并行组的第一待定三维矩阵
Figure SMS_76
至第i个第一并行组的第一待定三维矩阵/>
Figure SMS_77
,本实施例将第一待定三维矩阵/>
Figure SMS_78
、第一待定三维矩阵/>
Figure SMS_79
、第一待定三维矩阵/>
Figure SMS_80
、……、第一待定三维矩阵/>
Figure SMS_81
进行异或处理,得到如图4所示的第二待定三维矩阵43。本实施例再对第二待定三维矩阵43执行16轮散列化操作,得到最终三维矩阵44。
段并行轮间序架构相对段并行算法架构的区别点至少为:多个第一并行组不仅能够并行执行散列化操作,而且每个第一并行组能够吸收数量与第一预设分组系数一致的多个三维数据矩阵按照序行加密模式执行散列化操作。在第一并行组中,每个数据段的三维数据矩阵执行散列化操作的次数可减少,比如在图4所示的段并行轮间序架构中,第四预设循环次数为1,此种方式能够提高加密速度。并且第一并行组执行散列化操作的次数依然是第一预设分组系数,如图4所示,第一预设分组系数为16次,亦即第一并行组执行散列化操作的次数依然是16,并不会降低数据的熵增混乱度,后续还会对第二待定三维矩阵执行第三预设循环次数的散列化操作,使得最终三维矩阵的熵增混乱度并不会降低,但是段并行轮间序架构的加密速度却得以提升。若令图2所示的序行加密模式的加密速度为1,图3所示的段并行算法架构的加密速度为2n,则图4所示的段并行轮间序架构的加密速度为32n。
在一些实施例中,若目标加密模式为段并行轮内序架构,则根据目标加密模式对多个三维数据矩阵执行散列化操作,得到最终三维矩阵包括以下步骤:
S1424:根据第二预设分组系数,将多个三维数据矩阵分成多个第二并行组,每个第二并行组包括数量与第二预设分组系数一致的多个三维数据矩阵。
S1428:按照序行加密模式并行对每个第二并行组的多个三维数据矩阵执行散列化操作,得到第三待定三维矩阵,其中,每轮散列化操作包括吸收目标数量的三维数据矩阵参与散列化操作。
S1442:将各第二并行组的第三待定三维矩阵进行融合,得到第四待定三维矩阵。
S1446:对第四待定三维矩阵执行第六预设循环次数的散列化操作,得到最终三维矩阵。
在S1424中,第二预设分组系数由设计者根据业务需求自定义,比如第二预设分组系数h为48,每个第二并行组包括依序排列的48个数据段的三维数据矩阵。举例而言,本实施例将源数据分成多个数据段,分别为数据段P0、数据段P1……,数据段Pn-1,然后再并行地生成上述各个数据段对应的三维数据矩阵。若第二预设分组系数h=48,则第二并行组BXS0由数据段P0的三维数据矩阵至数据段P47的三维数据矩阵组成。第二并行组BXS1由数据段P48的三维数据矩阵至数据段P95的三维数据矩阵组成。以此类推。
一第二并行组对应一线程,每个线程可以按照序行加密模式对每个第二并行组的多个三维数据矩阵执行散列化操作,因此,线程数量至少为:i=j/3h。
在S1428中,由于本实施例可以在每轮散列化操作中吸收目标数量的三维数据矩阵参与每轮散列化操作,并且每轮散列化操作是采用散列化算法进行的,散列化算法通常由多个散列化步骤组成,因此,本实施例可以在相应步骤位置上吸收其它三维数据矩阵,吸收其它三维数据矩阵的数量为目标数量,目标数量可由设计者根据散列化算法进行确定,散列化算法为能够实现散列化操作的算法。在一些实施例中,若散列化算法包括2个加密插件,则目标数量可为1个。若散列化算法包括3个加密插件,则目标数量可为2个。若散列化算法包括4个加密插件,则目标数量可为3个,以此类推。
在S1442中,经过步骤S1428的处理后,每个第二并行组都可得到第三待定三维矩阵,本实施例再将各第二并行组的第三待定三维矩阵进行融合,得到第四待定三维矩阵。
在S1445中,第五预设循环次数可由设计者根据业务需求自定义,在一些实施例中,第五预设循环次数为16次或24次或32次等。如前所述,本实施例对第四待定三维矩阵执行16轮的散列化操作,得到最终三维矩阵。
在一些实施例中,按照序行加密模式并行对每个第二并行组的多个三维数据矩阵执行散列化操作,得到第三待定三维矩阵包括以下步骤:
S14281:依序对每个第三目标数据段的三维数据矩阵执行第六预设循环次数的散列化操作,第三目标数据段为按照数据段排列顺序在第二并行组选择的数据段。
S14282:在每轮散列化操作中,吸收目标数量的尾随数据段的三维数据矩阵与第三目标数据段的三维数据矩阵进行散列化操作,尾随数据段为排列在第三目标数据段之后的数据段。
S14283:当对第二并行组内的最后数据段的三维数据矩阵执行完散列化操作后,得到第三待定三维矩阵。
在S14281中,第六预设循环次数可由设计者根据业务需求自定义,在一些实施例中,第六预设循环次数为1次或2次或16次等。每个第二并行组中的第三目标数据段的数量与第五循环次数一致。
在S14282中,每轮散列化操作包括调用相应数量的目标加密插件,吸收目标数量的尾随数据段的三维数据矩阵与第三目标数据段的三维数据矩阵进行散列化操作包括:在每轮散列化操作中,将第三目标数据段的三维数据矩阵及参考数据段的散列化三维矩阵进行融合,得到第二融合三维矩阵,参考数据段为排列在第三目标数据段前面的目标数据段,第二融合三维矩阵及至少一个尾随数据段的三维数据矩阵可形成矩阵集合,按照序行加密模式依序调用目标加密插件对矩阵集合内的每个三维矩阵进行散列化操作,得到第三目标数据段的散列化三维矩阵,第三目标数据段的散列化三维矩阵可作为排列在第三目标数据段后面的数据段的输入。
为了详细阐述段并行轮内序架构对多个三维数据矩阵执行散列化操作的过程,本实施例结合图5对此作出说明,具体如下:
当源数据的数据长度大于236时,本实施例选择段并行轮内序架构作为目标加密模式。段并行轮内序架构能够根据多个数据段输出256位的哈希加密数据,每个数据段的长度为512,每个数据段对应的三维数据矩阵的矩阵大小为83,第二预设分组系数为48,第五预设循环次数r16为16,第六预设循环次数为1,每轮散列化操作依序调用第一加密插件、第二加密插件及第三加密插件,目标数量为2。
请参阅图5,本实施例将源数据分成多个数据段,分别为数据段
Figure SMS_83
,数据段/>
Figure SMS_85
,数据段/>
Figure SMS_87
,……,数据段/>
Figure SMS_89
,数据段/>
Figure SMS_92
,数据段/>
Figure SMS_95
,……,数据段/>
Figure SMS_97
,数据段/>
Figure SMS_98
,数据段/>
Figure SMS_99
,……,数据段/>
Figure SMS_100
,数据段/>
Figure SMS_101
,数据段/>
Figure SMS_102
,……,数据段/>
Figure SMS_103
,数据段/>
Figure SMS_104
,数据段/>
Figure SMS_105
,……,数据段/>
Figure SMS_82
,数据段/>
Figure SMS_84
,数据段/>
Figure SMS_86
,……,数据段/>
Figure SMS_88
,数据段/>
Figure SMS_90
,数据段/>
Figure SMS_91
,……,数据段/>
Figure SMS_93
,数据段/>
Figure SMS_94
,数据段/>
Figure SMS_96
本实施例并行地生成上述各个数据段对应的三维数据矩阵。由于第二预设分组系数为48,因此,本实施例依序将每48个数据段的三维数据矩阵划分成一个第二并行组。
举例而言,本实施例将数据段
Figure SMS_106
,数据段/>
Figure SMS_107
,数据段/>
Figure SMS_108
,……,数据段/>
Figure SMS_109
,数据段/>
Figure SMS_110
,数据段/>
Figure SMS_111
打包成第0个第二并行组50。
举例而言,本实施例将数据段
Figure SMS_112
,数据段/>
Figure SMS_113
,数据段/>
Figure SMS_114
,……,数据段/>
Figure SMS_115
,数据段/>
Figure SMS_116
,数据段/>
Figure SMS_117
打包成第1个第二并行组51。
举例而言,本实施例将数据段
Figure SMS_118
,数据段/>
Figure SMS_119
,数据段/>
Figure SMS_120
,……,数据段/>
Figure SMS_121
,数据段/>
Figure SMS_122
,数据段/>
Figure SMS_123
打包成第n-1个第二并行组52。
第i个第二并行组的第j个第三目标数据段记为
Figure SMS_125
,排列在第j个第三目标数据段/>
Figure SMS_127
的后面两个数据段/>
Figure SMS_128
、数据段/>
Figure SMS_129
都为尾随数据段。并且,第i个第二并行组的第j-1个第三目标数据段/>
Figure SMS_130
为排列在第i个第二并行组的第j个第三目标数据段/>
Figure SMS_131
前面的目标数据段,因此,第i个第二并行组的第j-1个第三目标数据段/>
Figure SMS_132
为第j个第三目标数据段/>
Figure SMS_124
的参考数据段。数据段/>
Figure SMS_126
为第i个第二并行组的最后数据段。其中,第二并行组的首个目标数据段对应的参考数据段的散列化三维矩阵为空矩阵。
以第0个第二并行组50的散列化操作过程为例,具体如下:
当数据段
Figure SMS_134
为第三目标数据段时,本实施例将数据段/>
Figure SMS_135
的三维数据矩阵
Figure SMS_136
与空矩阵进行异或,得到数据段/>
Figure SMS_137
的第二融合三维矩阵/>
Figure SMS_138
,其中,第二融合三维矩阵/>
Figure SMS_139
、数据段/>
Figure SMS_140
的三维数据矩阵及数据段/>
Figure SMS_133
的三维数据矩阵可形成矩阵集合。
由于第六预设循环次数为1,因此,本实施例对数据段
Figure SMS_141
的矩阵集合执行1轮散列化操作,具体的:
本实施例按照序行加密模式,先调用第一加密插件对第二融合三维矩阵
Figure SMS_143
执行散列化操作,得到第一散列化后的第二融合三维矩阵/>
Figure SMS_144
。接着,再将第一散列化后的第二融合三维矩阵/>
Figure SMS_147
与数据段/>
Figure SMS_149
的三维数据矩阵进行融合,得到第一次融合的第二融合三维矩阵/>
Figure SMS_150
,然后再调用第二加密插件对第一次融合的第二融合三维矩阵/>
Figure SMS_152
执行散列化操作,得到第二散列化后的第二融合三维矩阵/>
Figure SMS_154
。最后,再将第二散列化后的第二融合三维矩阵/>
Figure SMS_142
与数据段/>
Figure SMS_145
的三维数据矩阵进行融合,得到第二次融合的第二融合三维矩阵/>
Figure SMS_146
,然后再调用第三加密插件对第二次融合的第二融合三维矩阵/>
Figure SMS_148
执行散列化操作,得到第三散列化后的第二融合三维矩阵/>
Figure SMS_151
,其中,第三散列化后的第二融合三维矩阵/>
Figure SMS_153
作为数据段/>
Figure SMS_155
的散列化三维矩阵。
当数据段
Figure SMS_157
为第三目标数据段时,参考数据段为/>
Figure SMS_160
。本实施例将数据段/>
Figure SMS_162
的三维数据矩阵/>
Figure SMS_163
与数据段/>
Figure SMS_164
的散列化三维矩阵进行异或,得到数据段/>
Figure SMS_165
的第二融合三维矩阵/>
Figure SMS_166
,其中,第二融合三维矩阵/>
Figure SMS_156
、数据段/>
Figure SMS_158
的三维数据矩阵及数据段/>
Figure SMS_159
的三维数据矩阵可形成矩阵集合。本实施例对数据段/>
Figure SMS_161
的矩阵集合执行1轮散列化操作,操作过程如前所述,在此不赘述。
当数据段
Figure SMS_168
为第三目标数据段时,参考数据段为/>
Figure SMS_170
。本实施例将数据段/>
Figure SMS_172
的三维数据矩阵/>
Figure SMS_174
与数据段/>
Figure SMS_175
的散列化三维矩阵进行异或,得到数据段/>
Figure SMS_176
的第二融合三维矩阵/>
Figure SMS_177
,其中,第二融合三维矩阵/>
Figure SMS_167
、数据段/>
Figure SMS_169
的三维数据矩阵及数据段
Figure SMS_171
的三维数据矩阵可形成矩阵集合。本实施例对数据段/>
Figure SMS_173
的矩阵集合执行1轮散列化操作,具体的:
本实施例按照序行加密模式,先调用第一加密插件对第二融合三维矩阵
Figure SMS_179
执行散列化操作,得到第一散列化后的第二融合三维矩阵/>
Figure SMS_180
。接着,再将第一散列化后的第二融合三维矩阵/>
Figure SMS_182
与数据段/>
Figure SMS_184
的三维数据矩阵进行融合,得到第一次融合的第二融合三维矩阵/>
Figure SMS_187
,然后再调用第二加密插件对第一次融合的第二融合三维矩阵/>
Figure SMS_188
执行散列化操作,得到第二散列化后的第二融合三维矩阵/>
Figure SMS_190
。最后,再将第二散列化后的第二融合三维矩阵/>
Figure SMS_178
与数据段/>
Figure SMS_181
的三维数据矩阵进行融合,得到第二次融合的第二融合三维矩阵
Figure SMS_183
,然后再调用第三加密插件对第二次融合的第二融合三维矩阵/>
Figure SMS_185
执行散列化操作,得到第三散列化后的第二融合三维矩阵/>
Figure SMS_186
,其中,由于数据段/>
Figure SMS_189
为第0个第二并行组的最后数据段,因此,第三散列化后的第二融合三维矩阵/>
Figure SMS_191
作为第三待定三维矩阵。
段并行轮内序架构相对段并行轮间序架构的区别点至少为:段并行轮内序架构能够控制每个第二并行组内的各个三维数据矩阵按照序行加密模式执行散列化操作,并且,在每轮散列化操作中都能够吸引目标数量的三维数据矩阵参与散列化操作,如此相当于将每轮散列化算法中拆成多个加密插件,每个加密插件都能够在段并行轮间序架构的基础上吸引更多数据段的三维数据矩阵加入其中,如此能够提升加密速度。并且,第二并行组执行散列化操作的次数依然是第二预设分组系数,如图4所示,第二预设分组系数为16次,亦即第二并行组执行散列化操作的次数依然是16,并不会降低数据的熵增混乱度,后续还会对第四待定三维矩阵执行第五预设循环次数的散列化操作,使得最终三维矩阵的熵增混乱度并不会降低,但是段并行轮内序架构的加密速度却得以再次提升。若令图2所示的序行加密模式的加密速度为1,图3所示的段并行算法架构的加密速度为2n,图4所示的段并行轮间序架构的加密速度为32n,则图5所示的段并行轮间序架构的加密速度为96n。
需要说明的是,在上述各个实施方式中,上述各步骤之间并不必然存在一定的先后顺序,本领域普通技术人员,根据本发明实施方式的描述可以理解,不同实施方式中,上述各步骤可以有不同的执行顺序,亦即,可以并行执行,亦可以交换执行等等。
请参阅图6,图6是本发明实施例提供的一种电子设备的电路结构示意图。如图6所示,电子设备60包括一个或多个处理器61以及存储器62。其中,图6中以一个处理器61为例。
处理器61和存储器62可以通过总线或者其他方式连接,图6中以通过总线连接为例。
存储器62作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的自适应哈希加密方法对应的程序指令/模块。处理器61通过运行存储在存储器62中的非易失性软件程序、指令以及模块,从而实现上述方法实施例提供的自适应哈希加密方法的功能。
存储器62可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器62可选包括相对于处理器61远程设置的存储器,这些远程存储器可以通过网络连接至处理器61。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述程序指令/模块存储在所述存储器62中,当被所述一个或者多个处理器61执行时,执行上述任意方法实施例中的自适应哈希加密方法。
本发明实施例还提供了一种非易失性计算机存储介质,所述非易失性计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如图6中的一个处理器61,可使得上述一个或多个处理器可执行上述任意方法实施例中的自适应哈希加密方法。
本发明实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被电子设备执行时,使所述电子设备执行任一项所述的自适应哈希加密方法。
以上所描述的装置或设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (15)

1.一种自适应哈希加密方法,其特征在于,包括:
获取源数据;
确定所述源数据的数据量信息;
根据所述数据量信息确定目标加密模式;
根据所述目标加密模式对所述源数据执行散列化操作,得到哈希加密数据。
2.根据权利要求1所述的方法,其特征在于,所述根据所述数据量信息确定目标加密模式包括:
若所述数据量信息小于第一预设数量阈值,则选择序行加密模式为目标加密模式;
若所述数据量信息大于第一预设数量阈值,则选择并行加密模式为目标加密模式,其中,所述并行加密模式的加密速度大于所述行加密模式的加密速度。
3.根据权利要求2所述的方法,其特征在于,所述并行加密模式包括段并行算法架构及段并行轮变换算法架构,所述选择并行加密模式为目标加密模式包括:
若所述数据量信息大于第一预设数量阈值且小于第二预设数量阈值,则选择段并行算法架构为目标加密模式;
若所述数据量信息大于第二预设数量阈值,则选择段并行轮变换算法架构为目标加密模式,其中,所述段并行轮变换算法架构的加密速度大于所述段并行算法架构的加密速度。
4.根据权利要求3所述的方法,其特征在于,所述段并行轮变换算法架构包括段并行轮间序架构及段并行轮内序架构,所述选择段并行轮变换算法架构为目标加密模式包括:
若所述数据量信息大于第二预设数量阈值且小于第三预设数量阈值,则选择段并行轮间序架构为目标加密模式;
若所述数据量信息大于第三预设数量阈值,则选择段并行轮内序架构为目标加密模式,其中,所述段并行轮内序架构的加密速度大于所述段并行轮间序架构的加密速度。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述根据所述目标加密模式对所述源数据执行散列化操作,得到哈希加密数据包括:
根据所述源数据生成多个三维数据矩阵;
根据所述目标加密模式对多个所述三维数据矩阵执行散列化操作,得到最终三维矩阵;
将所述最终三维矩阵压缩出指定位数的哈希加密数据。
6.根据权利要求5所述的方法,其特征在于,若所述目标加密模式为序行加密模式,则所述根据所述目标加密模式对多个所述三维数据矩阵执行散列化操作,得到最终三维矩阵包括:
依序对每个第一目标数据段的三维数据矩阵执行第一预设循环次数的散列化操作,所述第一目标数据段为按照数据段排列顺序在多个数据段选择的数据段;
当对最后数据段的三维数据矩阵执行完第一预设循环次数的散列化操作后,得到最终三维矩阵。
7.根据权利要求6所述的方法,其特征在于,依序对每个所述第一目标数据段的三维数据矩阵执行第一预设循环次数的散列化操作包括:
将所述第一目标数据段的三维数据矩阵及上一个数据段的散列化三维矩阵进行融合,得到第一融合三维矩阵,其中,所述上一个数据段为排列在所述第一目标数据段前面的数据段;
对所述第一融合三维矩阵执行第一预设循环次数的散列化操作,得到所述第一目标数据段的散列化三维矩阵,其中,所述第一目标数据段的散列化三维矩阵可作为位于所述第一目标数据段后面的数据段的输入。
8.根据权利要求5所述的方法,其特征在于,若所述目标加密模式为段并行算法架构,则所述根据所述目标加密模式对多个所述三维数据矩阵执行散列化操作,得到最终三维矩阵包括:
并行对每个所述数据段的三维数据矩阵执行第二预设循环次数的散列化操作,得到每个所述数据段的散列化三维矩阵;
融合各所述数据段的散列化三维矩阵,得到候选三维数据矩阵;
对所述候选三维数据矩阵执行第二预设循环次数的散列化操作,得到最终三维矩阵。
9.根据权利要求5所述的方法,其特征在于,若所述目标加密模式为段并行轮间序架构,则所述根据所述目标加密模式对多个所述三维数据矩阵执行散列化操作,得到最终三维矩阵包括:
根据第一预设分组系数,将多个所述三维数据矩阵分成多个第一并行组,每个所述第一并行组包括数量与所述第一预设分组系数一致的多个三维数据矩阵;
按照序行加密模式并行对每个所述第一并行组的多个三维数据矩阵执行散列化操作,得到第一待定三维矩阵;
将各所述第一并行组的第一待定三维矩阵进行融合,得到第二待定三维矩阵;
对所述第二待定三维矩阵执行第三预设循环次数的散列化操作,得到最终三维矩阵。
10.根据权利要求9所述的方法,其特征在于,所述按照序行加密模式并行对每个所述第一并行组的多个三维数据矩阵执行散列化操作,得到第一待定三维矩阵包括:
依序对每个第二目标数据段的三维数据矩阵执行第四预设循环次数的散列化操作,所述第二目标数据段为按照数据段排列顺序在所述第一并行组选择的数据段;
当对所述第一并行组内的最后数据段的三维数据矩阵执行完第四预设循环次数的散列化操作后,得到第一待定三维矩阵。
11.根据权利要求5所述的方法,其特征在于,若所述目标加密模式为段并行轮内序架构,则所述根据所述目标加密模式对多个所述三维数据矩阵执行散列化操作,得到最终三维矩阵包括:
根据第二预设分组系数,将多个所述三维数据矩阵分成多个第二并行组,每个所述第二并行组包括数量与所述第二预设分组系数一致的多个三维数据矩阵;
按照序行加密模式并行对每个所述第二并行组的多个三维数据矩阵执行散列化操作,得到第三待定三维矩阵,其中,每轮散列化操作包括吸收目标数量的三维数据矩阵参与散列化操作;
将各所述第二并行组的第三待定三维矩阵进行融合,得到第四待定三维矩阵;
对所述第四待定三维矩阵执行第五预设循环次数的散列化操作,得到最终三维矩阵。
12.根据权利要求11所述的方法,其特征在于,所述按照序行加密模式并行对每个所述第二并行组的多个三维数据矩阵执行散列化操作,得到第三待定三维矩阵包括:
依序对每个第三目标数据段的三维数据矩阵执行第六预设循环次数的散列化操作,所述第三目标数据段为按照数据段排列顺序在所述第二并行组选择的数据段;
在每轮散列化操作中,吸收目标数量的尾随数据段的三维数据矩阵与所述第三目标数据段的三维数据矩阵进行散列化操作,所述尾随数据段为排列在所述第三目标数据段之后的数据段;
当对所述第二并行组内的最后数据段的三维数据矩阵执行完散列化操作后,得到第三待定三维矩阵。
13.根据权利要求12所述的方法,其特征在于,每轮散列化操作包括调用相应数量的目标加密插件,吸收目标数量的尾随数据段的三维数据矩阵与所述第三目标数据段的三维数据矩阵进行散列化操作包括:
在每轮散列化操作中,将所述第三目标数据段的三维数据矩阵及参考数据段的散列化三维矩阵进行融合,得到第二融合三维矩阵,所述参考数据段为排列在第三目标数据段前面的目标数据段,所述第二融合三维矩阵及至少一个所述尾随数据段的三维数据矩阵可形成矩阵集合;
按照序行加密模式依序调用目标加密插件对所述矩阵集合内的每个三维矩阵进行散列化操作,得到所述第三目标数据段的散列化三维矩阵,其中,所述第三目标数据段的散列化三维矩阵可作为排列在所述第三目标数据段后面的数据段的输入。
14.一种非易失性可读存储介质,其特征在于,所述非易失性可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使电子设备执行如权利要求1至13任一项所述的自适应哈希加密方法。
15.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至13任一项所述的自适应哈希加密方法。
CN202310464817.3A 2023-04-27 2023-04-27 自适应哈希加密方法、非易失性可读存储介质及电子设备 Pending CN116186747A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310464817.3A CN116186747A (zh) 2023-04-27 2023-04-27 自适应哈希加密方法、非易失性可读存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310464817.3A CN116186747A (zh) 2023-04-27 2023-04-27 自适应哈希加密方法、非易失性可读存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN116186747A true CN116186747A (zh) 2023-05-30

Family

ID=86450926

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310464817.3A Pending CN116186747A (zh) 2023-04-27 2023-04-27 自适应哈希加密方法、非易失性可读存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN116186747A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116881472A (zh) * 2023-07-14 2023-10-13 郑州华商科技有限公司 基于图数据库技术的资金穿透与人物关系分析方法
CN117332453A (zh) * 2023-11-30 2024-01-02 山东街景智能制造科技股份有限公司 一种用于产品数据库的安全管理系统

Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6373289A (ja) * 1986-09-17 1988-04-02 株式会社日立製作所 暗号装置
JP2004138722A (ja) * 2002-10-16 2004-05-13 Toshiba Corp 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム、および復号プログラム
CN101520966A (zh) * 2008-02-27 2009-09-02 英特尔公司 并行运算模式中优化高级加密标准加解密的方法和装置
CN101594227A (zh) * 2008-05-30 2009-12-02 华为技术有限公司 数据加密和解密的方法、装置及通信系统
US20100153747A1 (en) * 2008-12-12 2010-06-17 Micron Technology, Inc. Parallel encryption/decryption
US20100303229A1 (en) * 2009-05-27 2010-12-02 Unruh Gregory Modified counter mode encryption
WO2011155039A1 (ja) * 2010-06-10 2011-12-15 三菱電機株式会社 メッセージ認証コード演算装置、メッセージ認証コード演算方法およびメッセージ認証コード演算プログラム
US20150098563A1 (en) * 2013-10-09 2015-04-09 Sean M. Gulley Generating Multiple Secure Hashes from a Single Data Buffer
CN105376051A (zh) * 2014-08-29 2016-03-02 宇龙计算机通信科技(深圳)有限公司 一种加密方法、装置及终端
CN107204997A (zh) * 2017-08-02 2017-09-26 郑州云海信息技术有限公司 管理云存储数据的方法和装置
US20180254888A1 (en) * 2015-12-04 2018-09-06 Hewlett Packard Enterprise Development Lp Combining hashes of data blocks
CN109600217A (zh) * 2019-01-18 2019-04-09 江苏实达迪美数据处理有限公司 在并行操作模式中优化sm4加密和解密的方法及处理器
US20200177370A1 (en) * 2018-11-30 2020-06-04 International Business Machines Corporation Batched execution of encryption operations
CN113014604A (zh) * 2021-04-12 2021-06-22 北京字节跳动网络技术有限公司 一种数据处理方法、装置、设备及介质、程序产品
CN113794552A (zh) * 2021-09-14 2021-12-14 山东省计算中心(国家超级计算济南中心) 一种基于simd的sm3并行数据加密运算方法及系统
CN113836543A (zh) * 2020-06-08 2021-12-24 华为技术有限公司 数据加密或解密的方法、装置和系统
CN115664640A (zh) * 2022-12-23 2023-01-31 苏州浪潮智能科技有限公司 Sha-3算法的硬件实现方法、系统、存储介质及设备
US20230102374A1 (en) * 2020-06-08 2023-03-30 Huawei Technologies Co., Ltd. Data Encryption Or Decryption Method, Apparatus, And System

Patent Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6373289A (ja) * 1986-09-17 1988-04-02 株式会社日立製作所 暗号装置
JP2004138722A (ja) * 2002-10-16 2004-05-13 Toshiba Corp 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム、および復号プログラム
CN101520966A (zh) * 2008-02-27 2009-09-02 英特尔公司 并行运算模式中优化高级加密标准加解密的方法和装置
CN101594227A (zh) * 2008-05-30 2009-12-02 华为技术有限公司 数据加密和解密的方法、装置及通信系统
US20100153747A1 (en) * 2008-12-12 2010-06-17 Micron Technology, Inc. Parallel encryption/decryption
US20100303229A1 (en) * 2009-05-27 2010-12-02 Unruh Gregory Modified counter mode encryption
WO2011155039A1 (ja) * 2010-06-10 2011-12-15 三菱電機株式会社 メッセージ認証コード演算装置、メッセージ認証コード演算方法およびメッセージ認証コード演算プログラム
US20150098563A1 (en) * 2013-10-09 2015-04-09 Sean M. Gulley Generating Multiple Secure Hashes from a Single Data Buffer
CN105376051A (zh) * 2014-08-29 2016-03-02 宇龙计算机通信科技(深圳)有限公司 一种加密方法、装置及终端
US20180254888A1 (en) * 2015-12-04 2018-09-06 Hewlett Packard Enterprise Development Lp Combining hashes of data blocks
CN107204997A (zh) * 2017-08-02 2017-09-26 郑州云海信息技术有限公司 管理云存储数据的方法和装置
US20200177370A1 (en) * 2018-11-30 2020-06-04 International Business Machines Corporation Batched execution of encryption operations
CN109600217A (zh) * 2019-01-18 2019-04-09 江苏实达迪美数据处理有限公司 在并行操作模式中优化sm4加密和解密的方法及处理器
CN113836543A (zh) * 2020-06-08 2021-12-24 华为技术有限公司 数据加密或解密的方法、装置和系统
US20230102374A1 (en) * 2020-06-08 2023-03-30 Huawei Technologies Co., Ltd. Data Encryption Or Decryption Method, Apparatus, And System
CN113014604A (zh) * 2021-04-12 2021-06-22 北京字节跳动网络技术有限公司 一种数据处理方法、装置、设备及介质、程序产品
CN113794552A (zh) * 2021-09-14 2021-12-14 山东省计算中心(国家超级计算济南中心) 一种基于simd的sm3并行数据加密运算方法及系统
CN115664640A (zh) * 2022-12-23 2023-01-31 苏州浪潮智能科技有限公司 Sha-3算法的硬件实现方法、系统、存储介质及设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张仕斌: "《卓越工程师计划 应用密码学》", pages: 186 - 190 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116881472A (zh) * 2023-07-14 2023-10-13 郑州华商科技有限公司 基于图数据库技术的资金穿透与人物关系分析方法
CN116881472B (zh) * 2023-07-14 2024-04-30 郑州华商科技有限公司 基于图数据库技术的资金穿透与人物关系分析方法
CN117332453A (zh) * 2023-11-30 2024-01-02 山东街景智能制造科技股份有限公司 一种用于产品数据库的安全管理系统
CN117332453B (zh) * 2023-11-30 2024-02-23 山东街景智能制造科技股份有限公司 一种用于产品数据库的安全管理系统

Similar Documents

Publication Publication Date Title
CN116186747A (zh) 自适应哈希加密方法、非易失性可读存储介质及电子设备
CN110222048B (zh) 序列生成方法、装置、计算机设备及存储介质
CN109426484B (zh) 一种数据排序装置、方法及芯片
CN105531713A (zh) 从单个数据缓冲器生成多个安全散列
CN114003962B (zh) 保护数据隐私的多方数据查询方法及装置
US20140093073A1 (en) Method and System for a Hardware-Efficient Universal Hash Function
EP1766854A1 (en) Apparatus and method for performing md5 digesting
CN102546089A (zh) 循环冗余校验crc码的实现方法及装置
CN112367158A (zh) 一种加速sm3算法的方法、处理器、芯片及电子设备
CN114095149B (zh) 信息加密方法、装置、设备及存储介质
CN112328565A (zh) 一种基于区块链的资源共享的方法及装置
CN116961958A (zh) 一种数据加密方法、装置、电子设备和存储介质
CN116633526B (zh) 一种数据处理方法、装置、设备及介质
De Oliveira et al. High performance of hash-based signature schemes
CN107391541B (zh) 一种实时数据合并方法和装置
CN110611568B (zh) 基于多种加解密算法的动态加解密方法、装置、及设备
CN116318660B (zh) 一种消息扩展与压缩方法及相关装置
CN115952517A (zh) 一种杂凑值计算方法及系统
CN110569021A (zh) 一种抗asic挖矿的工作量证明方法
CN115098040A (zh) 基于fpga的数据处理方法、装置、设备及存储介质
CN109150494A (zh) 移动端中构造加解密算法的方法、存储介质、设备及系统
CN116186746B (zh) 并行哈希加密方法、存储介质及电子设备
US11121861B2 (en) Method and device to produce a secure hash value
Sugier FPGA implementations of BLAKE3 compression function with intra-round pipelining
CN116204910B (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