CN113922946B - 基于sm3的数据加密方法、系统、设备及介质 - Google Patents

基于sm3的数据加密方法、系统、设备及介质 Download PDF

Info

Publication number
CN113922946B
CN113922946B CN202111037841.6A CN202111037841A CN113922946B CN 113922946 B CN113922946 B CN 113922946B CN 202111037841 A CN202111037841 A CN 202111037841A CN 113922946 B CN113922946 B CN 113922946B
Authority
CN
China
Prior art keywords
sequence
iteration
data
binary
iterative
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
Application number
CN202111037841.6A
Other languages
English (en)
Other versions
CN113922946A (zh
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.)
Hunan Yaosheng Communication Technology Co ltd
Original Assignee
Hunan Yaosheng Communication Technology 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 Hunan Yaosheng Communication Technology Co ltd filed Critical Hunan Yaosheng Communication Technology Co ltd
Priority to CN202111037841.6A priority Critical patent/CN113922946B/zh
Publication of CN113922946A publication Critical patent/CN113922946A/zh
Application granted granted Critical
Publication of CN113922946B publication Critical patent/CN113922946B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC

Abstract

本发明公开了一种基于SM3的数据加密方法、系统、设备及介质,本申请基于SM3算法对待加密数据进行加密,针对SM3加密数据的迭代过程中的每一个迭代序列,利用基于加权概率模型单向散列函数将每一个迭代序列编码成对应的长度为L的散列值,根据编码后的迭代序列进行迭代过程,直至完成对数据的加密过程;其中编码过程是自定义每一个迭代序列对应的散列值的比特长度,利用散列值的比特长度求取加权概率模型的权系数r值,最后利用加权编码公式和求取的权系数r值对每一个迭代序列进行编码。本申请可为每一个迭代序列自定义散列值长度,还可根据攻击强度对依次迭代的迭代序列的散列值的比特长度进行自适应调整,从而提高对数据加密的安全性。

Description

基于SM3的数据加密方法、系统、设备及介质
技术领域
本发明涉及数据加密技术领域,特别涉及一种基于SM3的数据加密方法、系统、设备及介质。
背景技术
SM3是我国采用的一种密码散列函数标准,由国家密码管理局于2010年12月17日发布。相关标准为“GM/T 0004-2012《SM3密码杂凑算法》”。在商用密码体系中,SM3主要用于数字签名及验证、消息认证码生成及验证、随机数生成等,其算法公开。据国家密码管理局表示,其安全性及效率与SHA-256相当。但SM3算法因散列值长度不能根据攻击强度而进行自适应调整,加密数据的安全性还有待提高。
发明内容
本发明旨在至少解决现有技术中存在的技术问题。为此,本发明提出一种基于SM3的数据加密方法、系统、设备及介质,散列值长度可以自定义并且可以根据攻击强度自适应调整,能够提高加密数据的安全性。
本发明第一方面提供了一种基于SM3的数据加密方法,包括如下步骤:
步骤S100、获取待加密数据和所述待加密数据的迭代初始值V(0);
步骤S200、将所述待加密数据转换成二进制序列;
步骤S300、将所述二进制序列划分为k+1组二进制子序列;
步骤S400、基于所述迭代初始值V(0)以及所述k+1组二进制子序列,通过SM3方法进行迭代,并且在每次迭代过程中,对每一次迭代得到的迭代序列V(j)进行编码,利用编码后的所述迭代序列V(j)与对应的第j-1组二进制子序列进行迭代计算,直至迭代出第k+1次迭代后的杂凑值V(k+1),所述0<j<k+1;其中通过如下方式对每一次迭代得到的迭代序列V(j)进行编码:
步骤S401、设定散列值的比特长度为L,通过公式计算所述r值,其中,所述p(0)表示所述迭代序列V(j)中符号0的概率,所述p(1)表示所述迭代序列V(j)中符号1的概率,所述n表示所述迭代序列V(j)中符号的总数,所述L>256;
步骤S402、若所述迭代序列V(j)中第i个符号Xi=0,则Ri=Ri-1rp(0),Li=Li-1;若所述迭代序列V(j)中第i个符号Xi=1,则Ri=Ri-1rp(1),Li=Li-1+Ri-1rp(0);其中,所述Li、Ri、Li-1、Ri-1表示编码变量,所述Li的初始值L0=0,所述Ri的初始值R0=1;
步骤S403、i=i+1,若i<n,跳转至步骤S402;若i=n,进入步骤S404;
步骤S404、编码完所述迭代序列V(j)的最后一位符号后,得到编码后的所述迭代序列V(j)。
本发明第二方面提供了一种基于SM3的数据加密系统,包括:
数据获取单元,用于获取待加密数据和所述待加密数据的迭代初始值V(0);
数据转换单元,用于将所述待加密数据转换成二进制序列;
数据划分单元,用于将所述二进制序列划分为k+1组二进制子序列;
数据计算单元,用于基于所述迭代初始值V(0)以及所述k+1组二进制子序列,通过SM3方法进行迭代,并且在每次迭代过程中,对每一次迭代得到的迭代序列V(j)进行编码,利用编码后的所述迭代序列V(j)与对应的第j-1组二进制子序列进行迭代计算,直至迭代出第k+1次迭代后的杂凑值V(k+1),所述0<j<k+1;其中通过如下方式对每一次迭代得到的迭代序列V(j)进行编码:
步骤S301、设定散列值的比特长度为L,通过公式计算所述r值,其中,所述p(0)表示所述迭代序列V(j)中符号0的概率,所述p(1)表示所述迭代序列V(j)中符号1的概率,所述n表示所述迭代序列V(j)中符号的总数,所述L>256;
步骤S302、若所述迭代序列V(j)中第i个符号Xi=0,则Ri=Ri-1rp(0),Li=Li-1;若所述迭代序列V(j)中第i个符号Xi=1,则Ri=Ri-1rp(1),Li=Li-1+Ri-1rp(0);其中,所述Li、Ri、Li-1、Ri-1表示编码变量,所述Li的初始值L0=0,所述Ri的初始值R0=1;
步骤S303、i=i+1,若i<n,跳转至步骤S302;若i=n,进入步骤S304;
步骤S304、编码完所述迭代序列V(j)的最后一位符号后,得到编码后的所述迭代序列V(j)。
本发明第三方面提供了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现:如本申请上述一种基于SM3的数据加密方法。
本发明第四方面提供了一种计算机可读存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令用于执行:如本申请上述一种基于SM3的数据加密方法。
本发明第一方面提供的基于SM3的数据加密方法,本方法基于SM3算法对待加密数据进行加密,针对SM3加密数据的迭代过程中的每一个迭代序列,利用基于加权概率模型单向散列函数将每一个迭代序列编码成对应的长度为L的散列值,根据编码后的迭代序列进行迭代过程,直至完成对数据的加密过程;其中,编码的过程是首先自定义每一个迭代序列对应的散列值的比特长度,然后利用散列值的比特长度求取加权概率模型的权系数r值,最后利用加权编码公式和求取的权系数r值对每一个迭代序列进行编码。本方法解决了因传统SM3算法因散列值长度不能根据攻击强度而进行自适应调整的缺陷,可以为每一个迭代序列自定义散列值长度,而且还可根据攻击强度对依次迭代的迭代序列的散列值的比特长度进行自适应调整,从而提高对数据加密的安全性。
可以理解的是,上述第二方面至第四方面与相关技术相比存在的有益效果与上述第一方面与相关技术相比存在的有益效果相同,可以参见上述第一方面中的相关描述,在此不再赘述。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为SM3算法加密的分组过程示意图;
图2为SM3算法加密的迭代过程示意图;
图3为本发明一个实施例提供的一种基于SM3的数据加密系统的结构示意图;
图4为本发明一个实施例提供的一种基于SM3的数据加密方法的流程示意图;
图5为图4中步骤S400的具体编码过程示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
SM3是我国采用的一种密码散列函数标准,由国家密码管理局于2010年12月17日发布。相关标准为“GM/T 0004-2012《SM3密码杂凑算法》”。在商用密码体系中,SM3主要用于数字签名及验证、消息认证码生成及验证、随机数生成等,其算法公开。据国家密码管理局表示,其安全性及效率与SHA-256相当。如图1和图2所示,SM3算法的计算逻辑如下:
第一步、分组;将需要加密的数据转为二进制,然后分组为512*K+448(K为任意整数,不够用一个“1”和多个“0”补齐),再加上64位的文件长度信息构成512*(K+1)的分组。
第二步、迭代计算;设定一个参数(也是自定义散列长度)参与运算,初始值V(0)(在相关方案中,标准文档中叫做IV),迭代一次之后得到V(1),后面依次迭代得到V(1)、V(2)、V(3)……V(K)、V(K+1),V(K+1)也就是最终的杂凑值。
虽然SM3算法的安全性及效率与SHA-256相当,但使用SM3算法对数据加密时,由于SM3算法散列值长度不能根据攻击强度而进行自适应调整,因此对数据的加密安全性还有待优化。
为了解决上述技术缺陷,本申请基于SM3算法对待加密数据进行加密,针对SM3加密数据的迭代过程中的每一个迭代序列,利用基于加权概率模型单向散列函数将每一个迭代序列编码成对应的长度为L的散列值,根据编码后的迭代序列进行迭代过程,直至完成对数据的加密过程;其中,编码的过程是首先自定义每一个迭代序列对应的散列值的比特长度,然后利用散列值的比特长度求取加权概率模型的权系数r值,最后利用加权编码公式和求取的权系数r值对每一个迭代序列进行编码。本方法解决了因传统SM3算法因散列值长度不能根据攻击强度而进行自适应调整的缺陷,可以为每一个迭代序列自定义散列值长度,而且还可根据攻击强度对依次迭代的迭代序列的散列值的比特长度进行自适应调整,从而提高对数据加密的安全性。
本申请一个实施例提供的一种基于SM3的数据加密方法可以在电子设备中执行。终端/设备可以为移动电子设备,也可以为非移动电子设备。移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、超级移动个人计算机、上网本、个人数字助理等;非移动电子设备可以为个人计算机、电视机、柜员机或者自助机等;本申请实施方案不作具体限定。
电子设备可以包括处理器,外部存储器接口,内部存储器,通用串行总线(universal serial bus,USB)接口,充电管理模块,电源管理模块,电池,天线,移动通信模块,无线通信模块,音频模块,扬声器,受话器,麦克风,耳机接口,传感器模块,按键,马达,指示器,摄像头,显示屏,以及用户标识模块(Subscriber Identification Module,SIM)卡接口等。
下面结合附图,对本申请实施例作进一步阐述。
参照图3,是本申请一个实施例提供的用于执行一种基于SM3的数据加密方法的系统架构示意图,在图3的示例中,该系统架构主要包括但不限于数据获取单元100、数据转换单元200、数据划分单元300以及数据计算单元400,其中:
数据获取单元100用于获取待加密数据和所述待加密数据的迭代初始值V(0)。
数据转换单元200用于将所述待加密数据转换成二进制序列。
数据划分单元300用于将所述二进制序列划分为k+1组二进制子序列。
数据计算单元400用于基于所述迭代初始值V(0)以及所述k+1组二进制子序列,通过SM3方法进行迭代,并且在每次迭代过程中,对每一次迭代得到的迭代序列V(j)进行编码,利用编码后的所述迭代序列V(j)与对应的第j-1组二进制子序列进行迭代计算,直至迭代出第k+1次迭代后的杂凑值V(K+1),所述0<j<k+1;其中通过如下方式对每一次迭代得到的迭代序列V(j)进行编码:
步骤S301、设定散列值的比特长度为L,通过公式计算所述r值,其中,所述p(0)表示所述迭代序列V(j)中符号0的概率,所述p(1)表示所述迭代序列V(j)中符号1的概率,所述n表示所述迭代序列V(j)中符号的总数,所述L>256;
步骤S302、若所述迭代序列V(j)中第i个符号Xi=0,则Ri=Ri-1rp(0),Li=Li-1;若所述迭代序列V(j)中第i个符号Xi=1,则Ri=Ri-1rp(1),Li=Li-1+Ri-1rp(0);其中,所述Li、Ri、Li-1、Ri-1表示编码变量,所述Li的初始值L0=0,所述Ri的初始值R0=1;
步骤S303、i=i+1,若i<n,跳转至步骤S302;若i=n,进入步骤S304;
步骤S304、编码完所述迭代序列V(j)的最后一位符号后,得到编码后的所述迭代序列V(j)。
本申请实施例描述的系统架构以及应用场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着系统架构的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本领域技术人员可以理解的是,图3中示出的系统架构并不构成对本申请实施例的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
在图3所示的系统架构中,各个单元可以分别调用其储存的程序,用以执行一种基于SM3的数据加密方法。
基于上述系统架构,提出本申请实施例的基于SM3的数据加密方法的各个实施例。
在介绍本发明基于SM3的数据加密方法的实施例之前,先对本申请的技术原理进行介绍:
令信源序列X=(X1,X2,…,Xi,…,Xn)是有限个值或可数个可能值的离散序列,Xi∈A={0,1,2,…,k}。于是对于A中一切数值有概率空间:
由于随机过程必须转移到某个符号,所以在任意时刻有:
于是,任意符号Xi的分布函数为:
p(0)≤F(x)≤1,s∈A。
设离散随机变量X,X∈A={0,1,…,k},P{X=a}=p(a)(a∈A),加权概率质量函数为p(a)为的概率质量函数,0≤p(a)≤1,r为权系数,且:
F(a)=∑i≤ap(i) (2)
若F(a,r)满足F(a,r)=rF(a),则称F(a,r)为加权累积分布函数,简称加权分布函数。显然,所有符号的加权概率之和为
令离散信源序列X=(X1,X2,…,Xn),Xi∈A,且令F(Xi-1)=F(Xi)-p(Xi),序列X的加权分布函数记为F(X,r)。当n=1时:
F(X,r)=rF(X1-1)+rp(X1)
当n=2时:
F(X,r)=rF(X1-1)+r2F(X2-1)p(X1)+r2p(X1)p(X2)
当n=3时:
F(X,r)=rF(X1-1)+r2F(X2-1)p(X1)+r3F(X3-1)p(X1)p(X2)
+r3p(X1)p(X2)p(X3)
类推得:
将满足式(3)的加权分布函数的集合定义为加权概率模型,简称加权模型,记为{F(X,r)}。若Xi∈A={0,1},则称{F(X,r)}为二元加权模型。令:
Hn=F(X,r) (4)
Ln=Hn-Rn (6)
其中Xi∈A,n=1,2,…。当r=1时:
由式(4)至(6)可得Hn=F(X,1),即算术编码(区间编码)是基于r=1时加权分布函数的无损编码方法。
因Xi必须取A中的值,所以p(Xi)>0。显然式(4)至(6)为区间列,[Li,Hi)是信源序列X在时刻i(i=0,1,2,…,n)变量Xi对应的区间上下标,Ri=Hi-Li是区间的长度。根据式(4)至(6),设i=0时R0=H0=1,L0=0,于是i=1,2,…,n时用运算式为:
Li=Li-1+Ri-1F(Xi-1,r) (8)
Hi=Li+Ri
需要注意的是,上式(8)包括三个公式。
通过式(8)对信源序列X进行加权概率模型编码运算,Ln为实数,是加权概率模型编码结果。Ln通过进制转换得到二进制序列。
设离散无记忆信源序列X=(X1,X2,…,Xn)(Xi∈A,A={0,1,2,…,k}),当r=1时,由香农信息熵定义,X的熵为:
当r≠1时,定义具有概率的随机变量Xi的自信息量为:
I(Xi)=-logk+1p(Xi) (10)
设集合{Xi=a}(i=1,2,…,n,a∈A)中有ca个a。当r的值确定,信源序列X的总信息量为:
于是平均每个符号的信息量为:
令H(X,r)为:
在r的值确定时,通过加权概率模型编码后的二进制长度为nH(X,r)(bit)。最简单的信源序列为二进制序列,设二进制信源序列X的比特长度为n,X中符号0和符号1有概率p(0)和p(1),且经加权概率模型编码后得到长度为L(bit)的序列。当k=1时由式(11)可得:
-n log2 r+nH(X)=L (12)
其中H(X)序列X的信息熵,即H(X)=-p(0)log2 p(0)-p(1)log2 p(1),化简式(12)得:
根据无失真编码定理,H(X)是离散无记忆信源序列X的无失真编码极限,所以当H(X,r)≥H(X)时加权模型函数F(X,r)可无失真还原信源序列X。当H(X,r)<H(X)时,加权模型函数F(X,r)无法还原信源X,即当L<nH(X)时编码结果Ln无法还原信源X。
由式(12)和式(13)可得,当H(X)>L/n时,有r>1,H(X,r)<H(X),于是满足式(13)且r>1的加权模型函数F(X,r)均是单向散列函数(Hash(哈希)函数)。
任意二进制序列经加权概率模型哈希算法得出的散列值中符号0和符号1的概率均等。证明如下:
设二进制序列经加权概率模型哈希算法得出的散列值的比特长度为L,散列值的二进制序列记为Y,其信息熵为H(Y)=-p(0)log2 p(0)-p(1)log2 p(1)。根据上述原理,nH(X,r)=-n log2 r+nH(X)(n为二进制序列X的比特长度),所以LH(Y)=-n log2 r+nH(X)。当且仅当H(Y)=1时,式子(12)成立,即r满足式(5)。否则r不满足式(5)。又当且仅当p(0)=p(1)=0.5时,H(Y)=1,所以序列Y中符号0和符号1的概率均等。
由此,可得出的散列值中符号等概率。设散列值的比特长度为L,则取值空间范围为{0,1,…,2L-1}。令d=2L,根据哈希碰撞(或“生日攻击”)概率可得N次试验本申请的哈希碰撞概率为:
可见可达到哈希碰撞的理论极限。
参照图4和图5,本申请的一个实施例,提供了一种基于SM3的数据加密方法,本方法可以用于数字签名、文件校验以及数据传输校验,本方法包括如下步骤:
步骤S100、获取待加密数据和待加密数据的迭代初始值V(0)。
需要注意的是,这里对待加密数据和迭代初始值V(0)不进行限制。
步骤S200、将待加密数据转换成二进制序列。
步骤S300、将二进制序列划分为k+1组二进制子序列。
在本步骤S300中,具体是将二进制序列划分为第1组至第k组均包括512位符号的二进制子序列和第k+1组包括448位符号和64位长度信息的二进制子序列。同现有的SM3算法分组方式相同,此处不再细述。
步骤S400、基于迭代初始值V(0)以及k+1组二进制子序列,通过SM3方法进行迭代,并且在每次迭代过程中,对每一次迭代得到的迭代序列V(j)进行编码,利用编码后的迭代序列V(j)与对应的第j-1组二进制子序列进行迭代计算,直至迭代出第k+1次迭代后的杂凑值V(k+1),0<j<k+1;其中通过如下方式对每一次迭代得到的迭代序列V(j)进行编码:
步骤S401、设定散列值的比特长度为L,通过公式计算r值,其中,p(0)表示迭代序列V(j)中符号0的概率,p(1)表示迭代序列V(j)中符号1的概率,n表示迭代序列V(j)中符号的总数,L>256;
步骤S402、若迭代序列V(j)中第i个符号Xi=0,则Ri=Ri-1rp(0),Li=Li-1;若迭代序列V(j)中第i个符号Xi=1,则Ri=Ri-1rp(1),Li=Li-1+Ri-1rp(0);其中,Li、Ri、Li-1、Ri-1表示编码变量,Li的初始值L0=0,Ri的初始值R0=1;
步骤S403、i=i+1,若i<n,跳转至步骤S402;若i=n,进入步骤S404;
步骤S404、编码完迭代序列V(j)的最后一位符号后,得到编码后的迭代序列V(j)。
根据传统SM3加密方案,会将V(0)与第1组二进制子序列进行迭代计算,得到第1次迭代序列V(1),然后将V(1)与第2组二进制子序列进行迭代计算,依次类推,直至得到杂凑值,如图1、图2所示。在本实施例的步骤S400中,为迭代序列V(1)至V(k)中的每一个迭代序列进行编码,编码过程如步骤S401至步骤S404所示,需要注意的是,每一个迭代序列对应的自定义散列值长度,而且在对待加密数据进行编码加密的过程中,自定义散列值长度可以根据攻击强度进行自适应的调整。
基于SM3的数据加密方法,本方法基于SM3算法对待加密数据进行加密,针对SM3加密数据的迭代过程中的每一个迭代序列,利用基于加权概率模型单向散列函数将每一个迭代序列编码成对应的长度为L的散列值,根据编码后的迭代序列进行迭代过程,直至完成对数据的加密过程;其中,编码的过程是首先自定义每一个迭代序列对应的散列值的比特长度,然后利用散列值的比特长度求取加权概率模型的权系数r值,最后利用加权编码公式和求取的权系数r值对每一个迭代序列进行编码。本方法解决了因传统SM3算法因散列值长度不能根据攻击强度而进行自适应调整的缺陷,可以为每一个迭代序列自定义散列值长度,而且还可根据攻击强度对依次迭代的迭代序列的散列值的比特长度进行自适应调整,还可以达到哈希碰撞的理论极限,提高对数据加密的安全性。
本申请的一个实施例,提供了一种电子设备,该设备包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序。
处理器和存储器可以通过总线或者其他方式连接。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
需要说明的是,本实施例中的电子设备能够构成图3所示实施例中的系统架构的一部分,这些实施例均属于相同的发明构思,因此这些实施例具有相同的实现原理以及技术效果,此处不再详述。
实现上述实施例的基于SM3的数据加密方法所需的非暂态软件程序以及指令存储在存储器中,当被处理器执行时,执行上述实施例方法,例如,执行以上描述的图4中的方法步骤S100至S400和图5中的方法步骤S401至S404。
以上所描述的终端实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
此外,本申请实施例的一个实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个处理器或控制器执行,例如,被上述电子设备实施例中的一个处理器执行,可使得上述处理器执行上述实施例中的基于SM3的数据加密方法,例如,执行以上描述的图4中的方法步骤S100至S400以及图5中的方法步骤S401至S404。
又如,被上述设备连接器实施例中的一个处理器执行,可使得上述处理器执行上述实施例中的基于SM3的数据加密方法,例如,执行以上描述的图4中的方法步骤S100至S400以及图5中的方法步骤S401至S404。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储系统、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

Claims (6)

1.一种基于SM3的数据加密方法,其特征在于,包括如下步骤:
步骤S100、获取待加密数据和所述待加密数据的迭代初始值V(0);
步骤S200、将所述待加密数据转换成二进制序列;
步骤S300、将所述二进制序列划分为k+1组二进制子序列;
步骤S400、基于所述迭代初始值V(0)以及所述k+1组二进制子序列,通过SM3方法进行迭代,并且在每次迭代过程中,对每一次迭代得到的迭代序列V(j)进行编码,利用编码后的所述迭代序列V(j)与对应的第j-1组二进制子序列进行迭代计算,直至迭代出第k+1次迭代后的杂凑值V(k+1),所述0<j<k+1;其中通过如下方式对每一次迭代得到的迭代序列V(j)进行编码:
步骤S401、设定散列值的比特长度为L,通过公式计算所述r值,其中,所述p(0)表示所述迭代序列V(j)中符号0的概率,所述p(1)表示所述迭代序列V(j)中符号1的概率,所述n表示所述迭代序列V(j)中符号的总数,所述L>256;
步骤S402、若所述迭代序列V(j)中第i个符号Xi=0,则Ri=Ri-1rp(0),Li=Li-1;若所述迭代序列V(j)中第i个符号Xi=1,则Ri=Ri-1rp(1),Li=Li-1+Ri-1rp(0);其中,所述Li、Ri、Li-1、Ri-1表示编码变量,所述Li的初始值L0=0,所述Ri的初始值R0=1;
步骤S403、i=i+1,若i<n,跳转至步骤S402;若i=n,进入步骤S404;
步骤S404、编码完所述迭代序列V(j)的最后一位符号后,得到编码后的所述迭代序列V(j)。
2.根据权利要求1所述的基于SM3的数据加密方法,其特征在于,所述将所述二进制序列划分为k+1组二进制子序列,包括:
将所述二进制序列划分为第1组至第k组均包括512位符号的二进制子序列和第k+1组包括448位符号和64位长度信息的二进制子序列。
3.一种基于SM3的数据加密系统,其特征在于,包括:
数据获取单元,用于获取待加密数据和所述待加密数据的迭代初始值V(0);
数据转换单元,用于将所述待加密数据转换成二进制序列;
数据划分单元,用于将所述二进制序列划分为k+1组二进制子序列;
数据计算单元,用于基于所述迭代初始值V(0)以及所述k+1组二进制子序列,通过SM3方法进行迭代,并且在每次迭代过程中,对每一次迭代得到的迭代序列V(j)进行编码,利用编码后的所述迭代序列V(j)与对应的第j-1组二进制子序列进行迭代计算,直至迭代出第k+1次迭代后的杂凑值V(k+1),所述0<j<k+1;其中通过如下方式对每一次迭代得到的迭代序列V(j)进行编码:
步骤S301、设定散列值的比特长度为L,通过公式计算所述r值,其中,所述p(0)表示所述迭代序列V(j)中符号0的概率,所述p(1)表示所述迭代序列V(j)中符号1的概率,所述n表示所述迭代序列V(j)中符号的总数,所述L>256;
步骤S302、若所述迭代序列V(j)中第i个符号Xi=0,则Ri=Ri-1rp(0),Li=Li-1;若所述迭代序列V(j)中第i个符号Xi=1,则Ri=Ri-1rp(1),Li=Li-1+Ri-1rp(0);其中,所述Li、Ri、Li-1、Ri-1表示编码变量,所述Li的初始值L0=0,所述Ri的初始值R0=1;
步骤S303、i=i+1,若i<n,跳转至步骤S302;若i=n,进入步骤S304;
步骤S304、编码完所述迭代序列V(j)的最后一位符号后,得到编码后的所述迭代序列V(j)。
4.根据权利要求3所述的基于SM3的数据加密系统,其特征在于,所述数据划分单元具体用于将所述二进制序列划分为第1组至第k组均包括512位符号的二进制子序列和第k+1组包括448位符号和64位长度信息的二进制子序列。
5.一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现:如权利要求1至2任一项所述的基于SM3的数据加密方法。
6.一种计算机可读存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令用于执行:如权利要求1至2任一项所述的基于SM3的数据加密方法。
CN202111037841.6A 2021-09-06 2021-09-06 基于sm3的数据加密方法、系统、设备及介质 Active CN113922946B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111037841.6A CN113922946B (zh) 2021-09-06 2021-09-06 基于sm3的数据加密方法、系统、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111037841.6A CN113922946B (zh) 2021-09-06 2021-09-06 基于sm3的数据加密方法、系统、设备及介质

Publications (2)

Publication Number Publication Date
CN113922946A CN113922946A (zh) 2022-01-11
CN113922946B true CN113922946B (zh) 2024-02-13

Family

ID=79234060

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111037841.6A Active CN113922946B (zh) 2021-09-06 2021-09-06 基于sm3的数据加密方法、系统、设备及介质

Country Status (1)

Country Link
CN (1) CN113922946B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102761414A (zh) * 2011-04-26 2012-10-31 航天信息股份有限公司 一种sm3密码杂凑算法及确定其中的变量字的方法
CN111478885A (zh) * 2020-03-16 2020-07-31 湖南遥昇通信技术有限公司 一种非对称加解密方法、设备及存储介质
CN112865961A (zh) * 2021-01-06 2021-05-28 湖南遥昇通信技术有限公司 一种基于加权概率模型的对称加密方法、系统和设备
CN112883386A (zh) * 2021-01-15 2021-06-01 湖南遥昇通信技术有限公司 一种数字指纹处理及签名处理方法、设备及存储介质
CN113297591A (zh) * 2021-05-07 2021-08-24 湖南遥昇通信技术有限公司 一种网页资源加密方法、设备及存储介质
CN113300830A (zh) * 2021-05-25 2021-08-24 湖南遥昇通信技术有限公司 基于加权概率模型的数据传输方法、设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11323247B2 (en) * 2017-10-27 2022-05-03 Quantropi Inc. Methods and systems for secure data communication

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102761414A (zh) * 2011-04-26 2012-10-31 航天信息股份有限公司 一种sm3密码杂凑算法及确定其中的变量字的方法
CN111478885A (zh) * 2020-03-16 2020-07-31 湖南遥昇通信技术有限公司 一种非对称加解密方法、设备及存储介质
CN112865961A (zh) * 2021-01-06 2021-05-28 湖南遥昇通信技术有限公司 一种基于加权概率模型的对称加密方法、系统和设备
CN112883386A (zh) * 2021-01-15 2021-06-01 湖南遥昇通信技术有限公司 一种数字指纹处理及签名处理方法、设备及存储介质
CN113297591A (zh) * 2021-05-07 2021-08-24 湖南遥昇通信技术有限公司 一种网页资源加密方法、设备及存储介质
CN113300830A (zh) * 2021-05-25 2021-08-24 湖南遥昇通信技术有限公司 基于加权概率模型的数据传输方法、设备及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
An Efficient and Low-Power Design of the SM3 Hash Algorithm for IoT;Xin Zheng et al.;Electronics 2019;全文 *
Improved Boomerang Attacks on SM3;Dong xia Bai et al.;ACISP 2013: Information Security and Privacy;第7959卷;全文 *
一种基于上下文的树形加权概率统计算法;白慧慧等;电声技术(第02期);全文 *

Also Published As

Publication number Publication date
CN113922946A (zh) 2022-01-11

Similar Documents

Publication Publication Date Title
CN113300830B (zh) 基于加权概率模型的数据传输方法、设备及存储介质
CN109450640B (zh) 基于sm2的两方签名方法及系统
US9787475B2 (en) Device, method, and program for message authentication tag generation
WO2017095671A1 (en) Adding privacy to standard credentials
CN103765809A (zh) 隐式认证的公钥
CN103733564A (zh) 利用隐式证书链的数字签名
WO2019231392A1 (zh) 一种密钥协商系统、方法及装置
CN111478885B (zh) 一种非对称加解密方法、设备及存储介质
CN116094731A (zh) 一种基于报文哈希链的签名认证方法及系统
CN101872338A (zh) 一种改进的sha-1哈希算法
CN116455580A (zh) 消息签名方法、装置、设备及可读存储介质
US20080320557A1 (en) Batch verification device, program and batch verification method
CN113922946B (zh) 基于sm3的数据加密方法、系统、设备及介质
CN112968771A (zh) 信道密钥一致性协商方法、装置、电子设备及存储介质
CN111600703B (zh) 基于sm2的签名方法、系统、电子设备及存储介质
CN113922947B (zh) 一种基于加权概率模型的自适应对称编码方法以及系统
CN107769911B (zh) 一种基于Sponge结构的轻量级哈希函数构造方法
CN113114455B (zh) 一种对称密钥生成方法、装置及其介质
CN114039718B (zh) 自适应加权概率模型的Hash编码方法以及系统
CN111147254B (zh) 两方协同的EdDSA数字签名生成方法和装置
CN111274613B (zh) 迭代式sm2数字签名生成方法、系统、介质和设备
KR102304831B1 (ko) 순열그룹 기반의 암호화 기술을 적용한 암호화시스템 및 방법
Khan et al. Secret key encryption model for Wireless Sensor Networks
CN116668024B (zh) 一种分布式密钥的生成方法、装置、电子设备和存储介质
CN108599912A (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