数据杂凑处理方法、数据验证方法及电子设备技术

技术编号:37859015 阅读:15 留言:0更新日期:2023-06-15 20:49
本申请提供了一种数据杂凑处理方法、数据验证方法及电子设备。该方法通过对待处理数据进行分段处理,得到指定数量的数据段以及各数据段对应的消息字。针对每一数据段,基于该数据段的消息字对目标寄存器数值进行多轮压缩运算。在每轮压缩运算流程中通过对第一寄存器数值和消息扩展字进行数据压缩得到本轮对应的第二寄存器数据。并根据各数据段最后一轮得到的第二寄存器数值确定杂凑值。上述压缩运算过程中通过每隔指定轮数对存于寄存器中的扩展字序列进行内容更新使每轮参与运算的消息扩展字均存在寄存器中。相比于传统压缩运算流程,无需预先计算出全部参与运算的扩展字并存于堆栈,避免扩展字可能被窃取的问题。避免扩展字可能被窃取的问题。避免扩展字可能被窃取的问题。

【技术实现步骤摘要】
数据杂凑处理方法、数据验证方法及电子设备


[0001]本申请涉及信息安全
,具体涉及一种数据杂凑处理方法、数据验证方法及电子设备。

技术介绍

[0002]密码杂凑算法SM3是一种典型的杂凑算法,其通过对待处理数据进行杂凑运算得到其对应的杂凑值,继而基于杂凑值对该待处理数据进行如数字签名、真伪鉴别、完整性保护等后续处理。该算法被广泛应用于云存储、边缘计算、网上银行交易系统、企业数据安全存储等众多场景中。
[0003]SM3算法的整体流程主要将待处理数据填充至512比特的整数倍后,填充后的数据以512比特进行分组。针对每组数据以每32比特进行拆分得到每组对应的16个消息字。接下来通过消息扩展算法对16个消息字进行扩展,得到132个消息扩展字。并基于这132个消息扩展字和算法规定的寄存器初值进行64轮迭代压缩运算得到待处理数据的杂凑值。
[0004]由于SM3算法常用于完整性校验函数底层支持杂凑函数,因此上述消息扩展字中存有用于安全校验的密钥信息。传统的SM3算法在64轮压缩运算流程需预先计算出132个消息扩展字,通过将消息扩展字存放在堆栈中以在每轮从堆栈中取出该轮对应的消息扩展字进行运算。这就导致了消息扩展字存在被窃取的可能,继而导致泄露密钥的问题。

技术实现思路

[0005]本申请实施例提供一种数据杂凑处理方法、数据验证方法及电子设备。用于对SM3算法的迭代压缩运算流程进行优化,通过在压缩运算过程中对扩展字序列进行更新继而避免扩展字可能被窃取的问题。
[0006]为达到上述目的,本申请实施例的技术方案是这样实现的:
[0007]第一方面,本申请实施例提供了一种数据杂凑处理方法,所述方法包括:
[0008]基于密码杂凑算法SM3对待处理数据进行分段处理,得到指定数量的数据段以及各所述数据段对应的消息字;其中,每一数据段的数据长度相同,所述消息字是对所述数据段进行数字化处理得到的;
[0009]基于所述消息字对所述数据段的目标寄存器数值进行多轮第一压缩运算;每轮第一压缩运算过程中对第一寄存器数值和消息扩展字进行数据压缩,得到本轮对应的第二寄存器数值;其中,每轮的消息扩展字是从寄存器中存储的扩展字序列中选取的,所述扩展字序列是对所述消息字进行数据扩展得到的,所述多轮第一压缩运算过程中每隔指定轮数对所述扩展字序列进行内容更新,所述扩展字序列在更新前后的字数相同;
[0010]根据所述数据段在所述第一压缩运算过程中,最后一轮得到的第二寄存器数值确定所述待处理数据的杂凑值。
[0011]本申请实施例中,通过SM3算法对待处理数据进行分段处理,得到指定数量的数据段以及各数据段对应的消息字。针对每一数据段,基于该数据段的消息字对目标寄存器数
值进行多轮压缩运算。该目标寄存器数值是根据SM3算法规定的寄存器初值得到的,每轮压缩运算流程中通过对第一寄存器数值和消息扩展字进行数据压缩得到本轮对应的第二寄存器数据。并根据各数据段最后一轮得到的第二寄存器数值确定杂凑值。上述压缩运算过程中通过每隔指定轮数对存于寄存器中的扩展字序列进行内容更新,使每轮参与运算的消息扩展字存在寄存器中。相比于传统压缩运算流程,无需预先计算出全部参与运算的扩展字并存于堆栈,避免扩展字可能被窃取的问题。
[0012]在一些可能的实施例中,所述目标寄存器数值是根据所述SM3规定的寄存器初值确定的;首轮的第一寄存器数值为所述目标寄存器数值,非首轮的第一寄存器数值为前一轮的第二寄存器数值。
[0013]本申请实施例在多轮第一压缩运算过程中,每轮参与运算的第一寄存器数值是通过下述方式确定的:在首轮运算中,将目标寄存器数值作为该轮参与运算的第一寄存器数值。在非首轮运算中,将前一轮的第二寄存器数值作为该轮参与运算的第一寄存器数值。
[0014]由于每轮的第二寄存器数值是通过当前轮的第一寄存器数值和消息扩展字进行数据压缩得到的,故通过上述方式可确保每轮参与运算的寄存器数值均不相同,以提高数据杂凑的安全性。
[0015]在一些可能的实施例中,所述目标寄存器数值是通过下述方式获取的:
[0016]基于所述消息字对所述寄存器初值进行多轮第二压缩运算;每轮第二压缩运算过程中对第三寄存器数值和目标消息字进行数据压缩,得到本轮对应的第四寄存器数值;其中,首轮的第三寄存器数值为所述寄存器初值,非首轮的第三寄存器数值为前一轮的第四寄存器数值;每轮的目标消息字是从所述消息字中选取的,且每轮的目标消息字唯一;
[0017]将所述数据段在所述第二压缩运算过程中,最后一轮得到的第四寄存器数值作为所述目标寄存器数值。
[0018]本申请实施例的多轮第二压缩运算过程中,通过在每轮第二压缩运算中以前一轮得到的寄存器数值与本轮对应的目标消息字进行数据压缩,直至最后一轮结束时,将最后一轮得到的寄存器数值作为目标寄存器数值。由此得到的目标寄存器数值具备较高的数据安全性,便于后续数据杂凑运算。
[0019]在一些可能的实施例中,所述数据段对应的消息字为X0~X
15
,任一消息字的序号X
n
是根据所述消息字在所述数据段中的位置确定的,n∈[0,15]的整数。
[0020]在一些可能的实施例中,所述多轮第二压缩运算过程中,第i轮的目标消息字的序号为X
i
和X
i+4
,i∈[0,11]的整数。
[0021]本申请实施例中,每一数据段对应的消息字为16个,且各消息字按照在数据段中的位置设有对应的序号,这样通过设置每轮第二压缩运算与消息字序号的关系,可确保每轮参与第二压缩运算的目标消息字均唯一。
[0022]在一些可能的实施例中,所述扩展字序列中包含预设数量的消息扩展字,任一消息扩展字对应唯一序号,且所述序号是根据所述消息扩展字在所述扩展字序列中的位置确定的;
[0023]所述多轮第一压缩运算过程中,通过下述方式对扩展字序列进行内容更新:
[0024]获取参与更新的待处理字,基于预设分组规则对各待处理字进行分组;其中,首次参与更新的待处理字为所述数据段对应的消息字;非首次参与更新的待处理字为当前扩展
字序列中的全部消息扩展字;
[0025]针对每组待处理字进行向量拼接得到该组对应的拼接结果,对各所述拼接结果进行异或运算得到各所述拼接结果对应的目标字向量;
[0026]基于所述目标字向量确定更新的扩展字序列。
[0027]本申请实施例在多轮第一压缩运算过程中会定期获取待处理字,该待处理字的来源如下:首次参与更新的待处理字为该数据段对应的消息字,非首次参与更新的待处理字为当前扩展字序列中的消息扩展字。这样,通过预设分组规则对待处理字进行分组并进行向量拼接,可得到当前轮次对应的目标字向量。然后基于该目标字向量确定当前轮次对应的扩展字序列,由此可保证参与第一压缩运算的扩展字序列处于持续更新的状态,参与运算的数据不会重复。
[0028]在一些可能的实施例中,所述方法还本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据杂凑处理方法,其特征在于,所述方法包括:基于密码杂凑算法SM3对待处理数据进行分段处理,得到指定数量的数据段以及各所述数据段对应的消息字;其中,每一数据段的数据长度相同,所述消息字是对所述数据段进行数字化处理得到的;基于所述消息字对所述数据段的目标寄存器数值进行多轮第一压缩运算;每轮第一压缩运算过程中对第一寄存器数值和消息扩展字进行数据压缩,得到本轮对应的第二寄存器数值;其中,每轮的消息扩展字是从寄存器中存储的扩展字序列中选取的,所述扩展字序列是对所述消息字进行数据扩展得到的,所述多轮第一压缩运算过程中每隔指定轮数对所述扩展字序列进行内容更新,所述扩展字序列在更新前后的字数相同;根据所述数据段在所述第一压缩运算过程中,最后一轮得到的第二寄存器数值确定所述待处理数据的杂凑值。2.根据权利要求1所述的方法,其特征在于,所述目标寄存器数值是根据所述SM3规定的寄存器初值确定的;首轮的第一寄存器数值为所述目标寄存器数值,非首轮的第一寄存器数值为前一轮的第二寄存器数值。3.根据权利要求1所述的方法,其特征在于,所述目标寄存器数值是通过下述方式获取的:基于所述消息字对所述寄存器初值进行多轮第二压缩运算;每轮第二压缩运算过程中对第三寄存器数值和目标消息字进行数据压缩,得到本轮对应的第四寄存器数值;其中,首轮的第三寄存器数值为所述寄存器初值,非首轮的第三寄存器数值为前一轮的第四寄存器数值;每轮的目标消息字是从所述消息字中选取的,且每轮的目标消息字唯一;将所述数据段在所述第二压缩运算过程中,最后一轮得到的第四寄存器数值作为所述目标寄存器数值。4.根据权利要求1

3中任一所述的方法,其特征在于,所述数据段对应的消息字为X0~X
15
,任一消息字的序号X
n
是根据所述消息字在所述数据段中的位置确定的,n∈[0,15]的整数。5.根据权利要求4所述的方法,其特征在于,所述多轮第二压缩运算...

【专利技术属性】
技术研发人员:罗影张红杰傅勇安晓江蒋红宇
申请(专利权)人:成都海泰方圆科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1