本发明属于信息安全,特别是涉及基于双向安全密钥交换的通讯加密方法、系统及存储介质。
背景技术:
1、实时聊天通讯是社交软件的基础需求,传统的微信、qq等社交软件并不包括端对端加密功能,即聊天信息其实一直完全暴露在软件服务器的监控之下,增加了个人数据隐私泄露的风险。2020年以来,《数据安全法》等法律的出台,标志着我国政府对于个人数据隐私保护的重视程度上升到新的高度。而消息加密作为最为常见的隐私保护手段,在实时聊天的隐私保护领域扮演者重要角色。当前telegram、whatapp等国际流行的即时通讯软件均提供了端对端加密功能,内置协议一般为x3dh密钥交换协议,其使用x25519/x248椭圆曲线,利用椭圆曲线离散对数问题的困难性,配合数字签名,实现了抗中间人攻击的密钥交换,并用于加密聊天。但是其存在以下不足:
2、(1)无法提供抗量子安全性。因为x3dh密钥交换协议的安全性基于椭圆曲线离散对数问题,可以被shor量子算法在多项式时间内有效求解,即量子算法在量子计算机上能够有效运行时,x3dh密钥交换协议的安全性将不复存在。
3、(2)具体的椭圆曲线仍然有着存在安全弱点的可能。尽管x25519/x248椭圆曲线已经应用于网络安全领域,但其属于具体参数的椭圆曲线,无法提供平均情况下安全性的保证,即理论上仍然存在发现其参数特殊性导致椭圆曲线存在安全弱点的可能。
4、为了解决现有x3dh密钥交换协议不具备抗量子安全性与平均情况安全性的问题,提出一种基于双向安全密钥交换的通讯加密方法、系统及存储介质。
技术实现思路
1、本发明实施例提出一种基于双向安全密钥交换的通讯加密方法、系统及存储介质,以至少解决相关技术中不具备抗量子安全性与平均情况安全性的问题。
2、根据本发明的一个实施例,提出一种基于双向安全密钥交换的通讯加密方法,包括:
3、通讯双方利用dke基础密钥交换体制生成固定公钥与固定私钥、预公钥与预私钥;
4、利用固定私钥得到预私钥的dilithium签名并以此生成密钥参数集合;
5、通讯方获取对方的密钥参数集合后使用对方的固定公钥验证预私钥的dilithium签名;
6、若签名验证通过,则通讯方生成自身的临时公钥;
7、根据自身的固定公钥、临时公钥及对方的固定公钥、预公钥执行dke基础密钥交换;
8、采用kdf函数对基础密钥交换后的结果进行处理生成共享私钥;
9、利用共享私钥对通讯内容执行aes-256加密或解密得到密文或明文并将密文或明文与自身的固定公钥和临时公钥发送给对方;
10、完成首次通讯后的预设时间段内通讯双方根据哈希函数计算每次通讯的密钥并以此进行后续的加密通讯。
11、在一个示例性实施例中,所述通讯双方利用dke基础密钥交换体制生成固定公钥与固定私钥、预公钥与预私钥,包括步骤:
12、根据系数为模q的多项式集合构建剩余类环rq;
13、根据随机均匀生成的环rq的多项式a和离散高斯分布生成私钥及对应的固定公钥
14、根据离散高斯分布生成预私钥及对应的预公钥
15、在一个示例性实施例中,所述利用固定私钥得到预公钥的dilithium签名并以此生成密钥参数集合,包括步骤:
16、反复随机选取无穷范数小于γ1多项式向量y并以2γ2为界计算a·y的高位比特w1与低位比特w0;其中γ1和γ2是预设参数;
17、计算球面哈希c并根据哈希值和固定私钥计算向量z;
18、重复上述步骤,直到向量z的无穷范数小于γ1-β且w0-2c·sb的无穷范数小于γ2-β时,输出签名s=(z,c);其中β是预设参数;
19、根据固定公钥fkb、预公钥prekb、签名s生成密钥参数集合pb。
20、在一个示例性实施例中,所述通讯方获取对方的密钥参数集合后使用对方的固定公钥验证预公钥的dilithium签名,包括步骤:
21、通讯方从服务器获取对方的密钥参数集合pb;
22、根据公钥和dilithium签名计算验证向量w1’;
23、当且仅当向量z的无穷范数小于γ1-β且c=h(prekb||w1’)时,预公钥的dilithium签名验证通过。
24、在一个示例性实施例中,所述通讯方生成自身的临时公钥,包括步骤:
25、根据离散高斯分布生成私钥
26、根据临时私钥生成对应的临时公钥
27、在一个示例性实施例中,所述根据自身的固定公钥、临时公钥及对方的固定公钥、预公钥执行dke基础密钥交换,包括步骤:
28、确认dke基础密钥交换参数,包括模数q和维数n;
29、采用dke基础密钥交换协议根据自身的固定公钥和对方的预公钥计算第一交换比特串d1=dke(fka,prekb);
30、采用dke基础密钥交换协议根据自身的临时公钥和对方的固定公钥计算第二交换比特串d2=dke(tka,fkb);
31、采用dke基础密钥交换协议根据自身的临时公钥和对方的预公钥计算第三交换比特串d3=dke(tka,prekb)。
32、在一个示例性实施例中,所述采用kdf函数对基础密钥交换后的结果进行处理生成共享私钥是通讯方基于sha-256的hmac作为kdf函数生成共享私钥sk=kdf(d1||d2||d3)。
33、在一个示例性实施例中,所述利用共享私钥对通讯内容执行aes-256加密或解密得到密文或明文并将密文或明文与自身的固定公钥和临时公钥发送给对方,包括步骤:
34、通讯方用共享私钥sk对首条通讯信息m执行aes-256加密,得到密文c=enc(sk,m);
35、通讯方将参数集合pa:(fka,tka,c)发送给对方;
36、对方调用dke基础密钥交换协议和kdf函数生成相同的共享私钥sk并用共享私钥sk对加密的通讯信息c执行aes-256解密,得到通讯信息原文m=dec(sk,c);
37、完成密钥交换及首次加密通讯。
38、在一个示例性实施例中,所述完成首次通讯后的预设时间段内通讯双方根据哈希函数计算每次通讯的密钥并以此进行后续的加密通讯,包括步骤:
39、在完成首次通讯后的预设时间段内,双方利用哈希函数sha-256和计数器模式计算第i次通讯的通讯密钥ski=sha-256(sk||i);
40、双方使用通讯密钥ski以及aes-256对称密码算法完成第i次加密通讯;
41、若双方通讯超出预设时间段,则双方重新执行密钥交换后生成新的共享密钥进行加密通讯。
42、根据本发明的另一个实施例,提供了一种计算机可读存储介质,其存储用于电子数据交换的计算机程序,其中,所述计算机程序执行上述方法。
43、根据本发明的另一个实施例,提供了一种基于双向安全密钥交换的通讯加密系统,包括:
44、处理器;
45、存储器;
46、以及
47、一个或多个程序,其中所述一个或多个程序被存储在存储器中,并且被配置成由所述处理器执行,所述程序使计算机执行上述方法。
48、本发明的基于双向安全密钥交换的通讯加密方法、系统及存储介质具有的优点是:
49、(1)本发明基于dke基础密钥交换和dilithium数字签名,并将加密通讯过程整合进去,形成整体的加密通讯协议均来源于格上问题的困难性,相比传统的聊天加密技术,可以具备抗量子的安全特性。
50、(2)结合三次dke基础密钥交换和dilithium数字签名进行首次通讯加密,相比传统的聊天加密技术方案,可以有效提高加密协议的平均情况安全性。
51、(3)在通信双方执行首次密钥交换过程后,在一定期限内后续每次加密通讯均保持双向安全,相比传统的聊天加密方案,可以有效提高通讯加密的安全性和加密效率。
52、(4)由于hash函数sha-256的抗碰撞特性,即便获取了第i次通讯密钥ski,也无法恢复出原始的共享密钥sk,进而无法计算其他的通讯密钥,相比传统的通讯加密技术方案,可以有效保证连续多次通讯会话的安全性。
1.一种基于双向安全密钥交换的通讯加密方法,其特征在于,包括:
2.根据权利要求1所述的基于双向安全密钥交换的通讯加密方法,其特征在于,所述通讯双方利用dke基础密钥交换体制生成固定公钥与固定私钥、预公钥与预私钥,包括步骤:
3.根据权利要求2所述的基于双向安全密钥交换的通讯加密方法,其特征在于,所述利用固定私钥得到预公钥的dilithium签名并以此生成密钥参数集合,包括步骤:
4.根据权利要求3所述的基于双向安全密钥交换的通讯加密方法,其特征在于,所述通讯方获取对方的密钥参数集合后使用对方的固定公钥验证预公钥的dilithium签名,包括步骤:
5.根据权利要求4所述的基于双向安全密钥交换的通讯加密方法,其特征在于,所述通讯方生成自身的临时公钥,包括步骤:
6.根据权利要求5所述的基于双向安全密钥交换的通讯加密方法,其特征在于,所述根据自身的固定公钥、临时公钥及对方的固定公钥、预公钥执行dke基础密钥交换,包括步骤:
7.根据权利要求6所述的基于双向安全密钥交换的通讯加密方法,其特征在于,所述采用kdf函数对基础密钥交换后的结果进行处理生成共享私钥是通讯方基于sha-256的hmac作为kdf函数生成共享私钥sk=kdf(d1||d2||d3);
8.根据权利要求7所述的基于双向安全密钥交换的通讯加密方法,其特征在于,所述完成首次通讯后的预设时间段内通讯双方根据哈希函数计算每次通讯的密钥并以此进行后续的加密通讯,包括步骤:
9.一种计算机可读存储介质,其存储用于电子数据交换的计算机程序,其中,所述计算机程序使计算机执行如权利要求1-8任一项所述的方法。
10.一种基于双向安全密钥交换的通讯加密系统,其特征在于包括: