数据加密认证方法与流程

专利2026-09-04  2


本发明属于信息安全,特别涉及一种数据加密认证方法。


背景技术:

1、近年来,随着互联网的发展,网络用户逐渐增加,新型网络应用层出不穷,网络规模不断扩大,网络数据量变得越来越庞大。与此同时,在数据传输中的网络攻击问题也越来越严峻。信息泄露攻击、完整性破坏攻击,拒绝服务攻击等等,网络攻击工具变得智能化、自动化,网络攻击方式变得多样化、更加隐蔽化,网络攻击活动持续性增强。为了提高数据传输的安全性,越来越多的网络应用对数据进行加密。此外,通信双方还通过消息完整性验证来保证数据的完整性和正确性。

2、在互联网上,分组密码的使用比序列密码更广泛。分组密码有多种工作模式(即ecb、cbc、cfb、ofb、ctr、xts)。这些工作模式中,cbc、cfb、ofb三种模式解决了ecb模式中相同明文生成相同密文的缺陷,ctr在此基础上提供了多分组并行加密特性,但是这些模式都不能提供密文消息完整性校验功能,因此gcm模式被提出。

3、gcm(galois/counter mode,伽罗瓦计算模式),g是指gmac,c是指ctr(counter,计数器模式)。它在ctr加密的基础上增加gmac的特性,解决了ctr不能对加密消息进行完整性校验的问题。然而,gcm模式也存在一些问题,分组密码的密钥必须保密,否者攻击者一旦获取密钥,便可解密数据,从而造成数据泄露、盗用、篡改等问题。gcm模式的iv通常使用96bit的固定长度,较小的iv长度导致认证标签很容易被伪造。这也导致消息完整性验证安全性弱。此外,小的数据组块导致gcm模式不适用于大量的数据加密。由于ghash的运算方式,在网络加密传输的环境下消息认证部分往往会拖慢加解密的运算速度,成为系统性能的瓶颈。


技术实现思路

1、为了克服上述现有技术的缺点,本发明的目的在于提供一种数据加密认证方法,以解决在数据传输中出现的上述安全性问题,提高消息完整性验证的安全性。

2、为了实现上述目的,本发明采用的技术方案是:

3、一种数据加密认证方法,其特征在于,包括如下步骤:

4、步骤1,生成随机数iv和密钥key;所述随机数iv作为初始变量;

5、步骤2,将数据分割为多个明文数据组,并利用所述随机数iv和密钥key对多个明文数据组并行加密;

6、步骤3,将密钥key、随机数iv以及步骤2生成的密文输入hmac算法,生成用于消息认证的mac值,利用该mac值验证数据的真实性和完整性。

7、在一个实施例中,所述随机数iv、密钥key和分组后的数据均为相同的固定长度,所述步骤1还对密钥key进行如下处理:

8、判断密钥长度是否符合所述固定长度,如果密钥长度小于所述固定长度,则使用0对密钥key进行扩展,如果密钥长度大于所述固定长度,则将密钥长度截取为所述固定长度。

9、在一个实施例中,所述固定长度为128bit。

10、在一个实施例中,所述步骤2,使用分组密码算法sm4进行加密。

11、在一个实施例中,所述步骤2,对多个明文数据组并行加密的过程如下:

12、s1:将明文数据p划分为多个明文数据组p1、p2、…、pi、…、pn,分组长度为固定长度;pi表示第i个明文数据组,pn表示第n个也即最后一个明文数据组;

13、s2:生成累加计数器c1、c2、…、ci、…、cn,ci表示第i个累加计数器,cn表示第n个累加计数器;

14、s3:将所述初始变量和ci进行连接得到iv-ci,用密钥key加密iv-ci,将加密后的iv-ci和pi进行异或运算得到密文ci,取i∈[1,n],得到密文c1,c2,...,ci,...,cn;

15、s4:将得到的密文c1,c2,...,ci,...,cn拼接在一起。

16、在一个实施例中,对于所述第n个明文数据组pn,如果其长度小于所述固定长度,则截取加密后的iv-cn的长度为pn的长度,不进行填充。

17、在一个实施例中,所述步骤2,每次数据加密的初始变量是不同的,即每次加密时都会生成一个不同的值作为计数器的初始值。

18、在一个实施例中,所述步骤3,将密钥key、随机数iv以及步骤2生成的密文输入hmac算法,生成用于消息认证的mac值,过程如下:

19、s1:通信双方通过预共享密钥key生成密钥key2,通信发起方先对消息进行加密;所述消息,为所述密文,或为所述随机数iv与所述密文组合得到的数据;

20、s2:通信发起方对密钥key2进行处理,如果密钥key2长于hash函数的分组长度,则利用hash函数计算出密钥key2的散列值,然后将该散列值作为新的hmac的密钥;如果密钥key2短于hash函数的分组长度,则在密钥key2末尾填充0,以补充到分组长度;

21、s3:通信发起方将处理后的密钥key2与ipad进行异或运算,生成一个和hash函数的分组长度相同,且和密钥key2相关的比特序列ipadkey;

22、s4:通信发起方将ipadkey与所述消息进行组合,即将ipadkey附加在消息的开头;

23、s5:通信发起方散列s4的结果,计算出散列值;

24、s6:通信发起方将处理后的密钥key2与opad进行异或运算,生成一个和hash函数的分组长度相同,且和密钥key2相关的比特序列opadkey;

25、s7:通信发起方将opadkey与s5的散列值进行组合,即将opadkey附加在s5的散列值的开头;

26、s8:通信发起方散列s7的结果,计算出最终的mac值mac-value1;

27、s9:通信发起方将所述消息和mac-value1拼接,发给通信接收方;

28、s10:通信接收方执行s2-s9计算mac值mac-value2,比对mac-value1和mac-value2是否相同,如果二者相同则证明消息未被篡改、重放。

29、在一个实施例中,当接收的数据未被篡改、重放,对消息执行并行的解密运算。

30、与传统加密模式(例如ecb、cbc、cfb、ofb、ctr、xts等)相比,本发明并行分组加解密可以并行处理多个明文块或密文块,提高了加解密效率。此外,比起gcm模式,本发明的随机数使用预设的固定长度(如128bit),可以提高消息认证码的伪造难度,提高消息完整性验证的安全性。并行分组加密和大的数据分组块提高了吞吐量,因此,本发明适用于大规模数据加解密。



技术特征:

1.一种数据加密认证方法,其特征在于,包括如下步骤:

2.根据权利要求1所述数据加密认证方法,其特征在于,所述随机数iv、密钥key和分组后的数据均为相同的固定长度,所述步骤1还对密钥key进行如下处理:

3.根据权利要求2所述数据加密认证方法,其特征在于,所述固定长度为128bit。

4.根据权利要求1所述数据加密认证方法,其特征在于,所述步骤2,使用分组密码算法sm4进行加密。

5.根据权利要求1所述数据加密认证方法,其特征在于,所述步骤2,对多个明文数据组并行加密的过程如下:

6.根据权利要求5所述数据加密认证方法,其特征在于,对于所述第n个明文数据组pn,如果其长度小于所述固定长度,则截取加密后的iv-cn的长度为pn的长度,不进行填充。

7.根据权利要求1所述数据加密认证方法,其特征在于,所述步骤2中,每次数据加密的初始变量是不同的,即每次加密时都会生成一个不同的值作为计数器的初始值。

8.根据权利要求1所述数据加密认证方法,其特征在于,所述步骤3,将密钥key、随机数iv以及步骤2生成的密文输入hmac算法,生成用于消息认证的mac值,过程如下:

9.根据权利要求1或8所述数据加密认证方法,其特征在于,当接收的数据未被篡改、重放,对消息执行并行的解密运算。


技术总结
本发明公开了一种数据加密认证方法,包括:步骤1,生成随机数IV和密钥key;所述随机数IV作为初始变量;步骤2,将数据分割为多个明文数据组,并利用所述随机数IV和密钥key对多个明文数据组并行加密;步骤3,将密钥key、随机数IV以及步骤2生成的密文输入HMAC算法,生成用于消息认证的MAC值,利用该MAC值验证数据的真实性和完整性。本发明利用随机数IV和密钥key对多个明文数据组并行加密,并利用HMAC算法生成MAC值,在保证效率的同时,提高了数据传输的安全性。

技术研发人员:何艳杰,陈昱成,李卫
受保护的技术使用者:西交网络空间安全研究院
技术研发日:
技术公布日:2024/6/26
转载请注明原文地址:https://doc.8miu.com/read-1833899.html

最新回复(0)