一种基于分组密码的加密方法、解密方法以及产品技术

技术编号:39327451 阅读:78 留言:0更新日期:2023-11-12 16:04
本申请提供一种基于分组密码的加密方法、解密方法以及产品,属于信息安全的技术领域。所述加密方法包括:基于密钥分别对多个明文分组进行加密,得到多个密文分组;确定当前数据传输过程的防重放因子;根据多个密文分组与防重放因子生成认证码;将多个密文分组进行拆分与重组生成多个重组密文分组,将多个重组密文分组、防重放因子以及认证码发送至数据接收端,认证码用于与数据接收端根据接收到的多个密文分组与防重放因子生成的验证码进行比较,以识别数据是否被篡改。本申请旨在提高传输的数据的安全性。数据的安全性。数据的安全性。

【技术实现步骤摘要】
一种基于分组密码的加密方法、解密方法以及产品


[0001]本申请实施例涉及信息安全的
,具体而言,涉及一种基于分组密码的加密方法、解密方法以及产品。

技术介绍

[0002]随着信息化的迅猛发展,信息安全方面的技术也得到了重视,如为了提高设备之间传输的数据安全性,应用密码算法对明文进行加密/解密,按照对明文的处理方式的不同,对称加密算法可以分为分组密码和序列密码两种,分组密码的数学模型是将明文消息编码表示后的数字(简称明文数字)序列,划分成长度为n的组,每组分别在密钥的控制下变换成等长的输出数字序列。
[0003]分组密码典型的算法包括3DES(Triple Data Encryption Standard,三重数据加密标准)、AES(Advanced Encryption Standard,高级加密标准)以及SM4(国密局颁布的分组对称密钥算法)等,其中3DES的分组长度是64比特,即每次只能加密/解密64bit的明文,并生成64bit的密文/明文;AES和SM4算法的分组长度都是128bit,因此每次可以加密/解密128bit的明文/密文,并生成128bit的密文/明文。
[0004]因为分组密码算法只能加密固定长度的分组,但实际应用中需要加密的明文长度可能会超过分组密码的分组长度,这时就需要对分组密码算法进行迭代,以便将一段很长的明文全部加密,迭代的方法就是分组密码的模式,一般分组密码的模式包括ECB(Electronic CodeBook mode,分组密码算法的电子密码本模式)、CBC(Cipher Block Chaining mode,分组密码算法的密码分组链接模式)以及CFB(Cipher FeedBack mode,分组密码算法的密文反馈模式)等模式。
[0005]但是分组密码的模式通常存在被重放攻击的问题,重放攻击又称为重播、回放攻击,是指攻击者通过发送已经被目标系统接收过的正确数据,来达到欺骗系统的目的,示例地,盗取之前数据传输过程中的部分密文,对当前数据传输过程中的部分密文进行替代,进而使得当前数据传输过程的数据被篡改,导致传输的数据的安全性降低。

技术实现思路

[0006]本申请实施例提供一种基于分组密码的加密方法、解密方法以及产品,旨在提高传输的数据的安全性。
[0007]第一方面,本申请实施例提供一种基于分组密码的加密方法,应用于数据发送端,所述方法包括:获取待加密明文的多个明文分组,并基于密钥分别对所述多个明文分组进行加密,得到多个密文分组;确定当前数据传输过程的防重放因子,其中,相邻两次数据传输过程的防重放因子不同;根据所述多个密文分组与所述防重放因子生成认证码;
将所述多个密文分组按照预设规则进行拆分与重组,生成多个重组密文分组,其中,所述预设规则是数据发送端与数据接收端预先确定的;将所述多个重组密文分组、所述防重放因子以及所述认证码发送至数据接收端,其中,所述认证码用于与所述数据接收端生成的验证码进行比较,以识别数据是否被篡改,所述验证码是数据接收端根据所述多个重组密文分组确定的所述多个密文分组与所述防重放因子生成的。
[0008]可选地,基于密钥分别对所述多个明文分组进行加密,得到多个密文分组,包括:应用ECB模式,基于密钥对所述多个明文分组中的每个明文分组进行加密,生成所述每个明文分组各自对应的密文分组。
[0009]可选地,基于密钥分别对所述多个明文分组进行加密,得到多个密文分组,包括:应用CBC模式,基于密钥和初始向量生成第一个明文分组对应的第一密文分组;对于后续的任一明文分组,基于密钥和上一个明文分组对应的密文分组,生成该明文分组对应的密文分组,直至生成最后一个明文分组对应的密文分组。
[0010]可选地,确定当前数据传输过程的防重放因子,包括:按照预设的变换规则,对上一次数据传输过程对应的防重放因子进行数值变换,生成当前数据传输过程对应的防重放因子。
[0011]可选地,按照预设的变换规则,对上一次数据传输过程对应的防重放因子进行数值变换,生成当前数据传输过程对应的防重放因子,包括:获取上一次数据传输过程对应的防重放因子;对所述上一次数据传输过程对应的防重放因子的数值与标定数值进行求和,得到当前数据传输过程对应的防重放因子。
[0012]可选地,确定当前数据传输过程的防重放因子,包括:获取当前时间戳,将所述当前时间戳作为当前数据传输过程对应的防重放因子。
[0013]可选地,确定当前数据传输过程的防重放因子,包括:生成随机数作为当前数据传输过程对应的防重放因子。
[0014]可选地,确定当前数据传输过程的防重放因子,包括:在预先建立的防重放因子列表中获取当前数据传输过程的防重放因子,其中,所述防重放因子列表中包括标定时间段内的所有数据传输过程各自对应的防重放因子。
[0015]可选地,确定当前数据传输过程的防重放因子,包括:获取所述数据发送端在当前数据传输过程中的环境温度,根据所述环境温度生成所述当前数据传输过程的防重放因子。
[0016]可选地,确定当前数据传输过程的防重放因子,包括:获取所述数据发送端在当前数据传输过程中的环境噪声,根据所述环境噪声生成所述当前数据传输过程的防重放因子。
[0017]可选地,根据所述多个密文分组与所述防重放因子,生成认证码,包括:对所述多个密文分组与所述防重放因子进行哈希计算,将哈希计算的结果作为所述认证码。
[0018]可选地,根据所述多个密文分组与所述防重放因子,生成认证码,包括:对所述多个密文分组、所述防重放因子以及所述密钥进行哈希计算,将哈希计算
的结果作为所述认证码。
[0019]可选地,根据所述多个密文分组与所述防重放因子,生成认证码,包括:将所述多个密文分组作为CBC模式的输入,将所述防重放因子作为CBC模式的初始向量;基于所述密钥,通过CBC模式的迭代加密运算后,得到多个伪密文分组,将最后一个伪密文分组作为所述认证码。
[0020]可选地,确定当前数据传输过程的防重放因子,包括:对所述多个密文分组中每个密文分组进行拆分;根据拆分后的多个密文分组构建预设形式的阶梯矩阵;将所述阶梯矩阵作为当前数据传输过程的防重放因子;当将所述阶梯矩阵作为当前数据传输过程的防重放因子之后,所述方法还包括:按照数据发送端和数据接收端预设的矩阵重组规则,根据所述阶梯矩阵生成重组后的多个密文分组;将作为所述防重放因子的阶梯矩阵和所述重组后的多个密文分组发送至数据接收端。
[0021]可选地,获取待加密明文的多个明文分组之前,所述方法还包括:根据所述数据发送端的私钥对所述密钥进行数字签名;利用所述数据接收端的公钥对数字签名后的密钥进行加密运算,生成加密后的密钥;将所述加密后的密钥发送至所述数据接收端。
[0022]第二方面,本申请实施例提供一种基于分组密码的解密方法,应用于数据接收端,所述方法包括:获取数据发送端发送的多个重组密文分组、防重放因子以及认证码;按照预设规则,根据所述多个重组密文分本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于分组密码的加密方法,其特征在于,应用于数据发送端,所述方法包括:获取待加密明文的多个明文分组,并基于密钥分别对所述多个明文分组进行加密,得到多个密文分组;确定当前数据传输过程的防重放因子,其中,相邻两次数据传输过程的防重放因子不同;根据所述多个密文分组与所述防重放因子生成认证码;将所述多个密文分组按照预设规则进行拆分与重组,生成多个重组密文分组,其中,所述预设规则是数据发送端与数据接收端预先确定的;将所述多个重组密文分组、所述防重放因子以及所述认证码发送至数据接收端,其中,所述认证码用于与所述数据接收端生成的验证码进行比较,以识别数据是否被篡改,所述验证码是数据接收端根据所述多个重组密文分组确定的所述多个密文分组与所述防重放因子生成的。2.根据权利要求1所述的方法,其特征在于,基于密钥分别对所述多个明文分组进行加密,得到多个密文分组,包括:应用ECB模式,基于密钥对所述多个明文分组中的每个明文分组进行加密,生成所述每个明文分组各自对应的密文分组。3.根据权利要求1所述的方法,其特征在于,基于密钥分别对所述多个明文分组进行加密,得到多个密文分组,包括:应用CBC模式,基于密钥和初始向量生成第一个明文分组对应的第一密文分组;对于后续的任一明文分组,基于密钥和上一个明文分组对应的密文分组,生成该明文分组对应的密文分组,直至生成最后一个明文分组对应的密文分组。4.根据权利要求1所述的方法,其特征在于,确定当前数据传输过程的防重放因子,包括:按照预设的变换规则,对上一次数据传输过程对应的防重放因子进行数值变换,生成当前数据传输过程对应的防重放因子。5.根据权利要求4所述的方法,其特征在于,按照预设的变换规则,对上一次数据传输过程对应的防重放因子进行数值变换,生成当前数据传输过程对应的防重放因子,包括:获取上一次数据传输过程对应的防重放因子;对所述上一次数据传输过程对应的防重放因子的数值与标定数值进行求和,得到当前数据传输过程对应的防重放因子。6.根据权利要求1所述的方法,其特征在于,确定当前数据传输过程的防重放因子,包括:获取当前时间戳,将所述当前时间戳作为当前数据传输过程对应的防重放因子。7.根据权利要求1所述的方法,其特征在于,确定当前数据传输过程的防重放因子,包括:生成随机数作为当前数据传输过程对应的防重放因子。8.根据权利要求1所述的方法,其特征在于,确定当前数据传输过程的防重放因子,包括:在预先建立的防重放因子列表中获取当前数据传输过程的防重放因子,其中,所述防
重放因子列表中包括标定时间段内的所有数据传输过程各自对应的防重放因子。9.根据权利要求1所述的方法,其特征在于,确定当前数据传输过程的防重放因子,包括:获取所述数据发送端在当前数据传输过程中的环境温度,根据所述环境温度生成所述当前数据传输过程的防重放因子。10.根据权利要求1所述的方法,其特征在于,确定当前数据传输过程的防重放因子,包括:获取所述数据发送端在当前数据传输过程中的环境噪声,根据所述环境噪声生成所述当前数据传输过程的防重放因子。11.根据权利要求1

10任一所述的方法,其特征在于,根据所述多个密文分组与所述防重放因子,生成认证码,包括:对所述多个密文分组与所述防重放因子进行哈希计算,将哈希计算的结果作为所述认证码。12.根据权利要求1

10任一所述的方法,其特征在于,根据所述多个密文分组与所述防重放因子,生成认证码,包括:对所述多个密文分组、所述防重放因子以及所述密钥进行哈希计算,将哈希计算的结果作为所述认证码。13.根据权利要求1

10任一所述的方法,其特征在于,根据所述多个密文分组与所述防重放因子,生成认证码,包括:将所述多个密文分组作为CBC模式的输入,将所述防重放因子作为CBC模式的初始向量;基于所述密钥,通过CBC模式的迭代加密运算后,得到多个伪密文分组,将最后一个伪密文分组作为所述认证码。14.根据权利要求1所述的方法,其特征在于,确定当前数据传输过程的防重放因子,包括:对所述多个密文分组中每个密文分组进行拆分;根据拆分后的多个密文分组构建预设形式的阶梯矩阵;将所述阶梯矩阵作为当前数据传输过程的防重放因子;当将所述阶梯矩阵作为当前数据传输过程的防重放因子之后,所述方法还包括:按照数据发送端和数据接收端预设的矩阵重组规则,根据所述阶梯矩阵生成重组后的多个密文分组;将作为所述防重放因子的阶梯矩阵和所述重组后的多个密文分组发送至数据接收端。15.根据权利要求1所述的方法,其特征在于,获取待加密明文的多个明文分组之前,所述方法还包括:根据所述数据发送端的私钥对所述密钥进行数字签名;利用所述数据接收端的公钥对数字签名后的密钥进行加密运算,生成加密后的密钥;将所述加密后的密钥发送至所述数据接收端。16.一种基于分组密码的解密方法,其特征在于,应用于数据接收端,所述方法包括:获取数据发送端发送的多个重组密文分组、防重放因子以及认证码;
按照预设规则,根据所述多个重组密文分组得到多个密文分组,其中,所述预设规则是数据发送端与数据接收端预先确定的;根据所述多个密文分组与所述防重放因子生成验证码,其中,所述验证码的生成过程与所述认证码的生成过程一致;比较所述验证码与接收到的所述认证码是否一致,以确定传输的数据是否被篡改;当所述验证码与接到的所述认证码一致时,表征传输的数据未被篡改,并利用密钥对所述多个密文分组进行解密。17.根据权利要求16所述的方法,其特征在于,所述方法还包括:获取数据发送端发送的重组后的多个密文分组和防重放因子,所述防重放因子为阶梯矩阵;按照数据发送端和数据接收端预设的矩阵重组规则,根据所述阶梯矩阵生成待检验的多个密文分组;当所述待检验的多个密文分组与接收到的所述重组后的多个密文分组一致时,表征传输的数据未被篡改,按照所述矩阵重组规则根据所述阶梯矩阵生成多个密文分组,并利用密钥对所述多个密文分组进行解密。18.根据权利要求16所述的方法,其特征在于,所述方法...

【专利技术属性】
技术研发人员:苏振宇
申请(专利权)人:苏州元脑智能科技有限公司
类型:发明
国别省市:

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

1