本發(fā)明屬于信息安全,特別是涉及基于雙向安全密鑰交換的通訊加密方法、系統(tǒng)及存儲介質。
背景技術:
1、實時聊天通訊是社交軟件的基礎需求,傳統(tǒng)的微信、qq等社交軟件并不包括端對端加密功能,即聊天信息其實一直完全暴露在軟件服務器的監(jiān)控之下,增加了個人數(shù)據(jù)隱私泄露的風險。2020年以來,《數(shù)據(jù)安全法》等法律的出臺,標志著我國政府對于個人數(shù)據(jù)隱私保護的重視程度上升到新的高度。而消息加密作為最為常見的隱私保護手段,在實時聊天的隱私保護領域扮演者重要角色。當前telegram、whatapp等國際流行的即時通訊軟件均提供了端對端加密功能,內置協(xié)議一般為x3dh密鑰交換協(xié)議,其使用x25519/x248橢圓曲線,利用橢圓曲線離散對數(shù)問題的困難性,配合數(shù)字簽名,實現(xiàn)了抗中間人攻擊的密鑰交換,并用于加密聊天。但是其存在以下不足:
2、(1)無法提供抗量子安全性。因為x3dh密鑰交換協(xié)議的安全性基于橢圓曲線離散對數(shù)問題,可以被shor量子算法在多項式時間內有效求解,即量子算法在量子計算機上能夠有效運行時,x3dh密鑰交換協(xié)議的安全性將不復存在。
3、(2)具體的橢圓曲線仍然有著存在安全弱點的可能。盡管x25519/x248橢圓曲線已經應用于網(wǎng)絡安全領域,但其屬于具體參數(shù)的橢圓曲線,無法提供平均情況下安全性的保證,即理論上仍然存在發(fā)現(xiàn)其參數(shù)特殊性導致橢圓曲線存在安全弱點的可能。
4、為了解決現(xiàn)有x3dh密鑰交換協(xié)議不具備抗量子安全性與平均情況安全性的問題,提出一種基于雙向安全密鑰交換的通訊加密方法、系統(tǒng)及存儲介質。
技術實現(xiàn)思路
1、本發(fā)明實施例提出一種基于雙向安全密鑰交換的通訊加密方法、系統(tǒng)及存儲介質,以至少解決相關技術中不具備抗量子安全性與平均情況安全性的問題。
2、根據(jù)本發(fā)明的一個實施例,提出一種基于雙向安全密鑰交換的通訊加密方法,包括:
3、通訊雙方利用dke基礎密鑰交換體制生成固定公鑰與固定私鑰、預公鑰與預私鑰;
4、利用固定私鑰得到預私鑰的dilithium簽名并以此生成密鑰參數(shù)集合;
5、通訊方獲取對方的密鑰參數(shù)集合后使用對方的固定公鑰驗證預私鑰的dilithium簽名;
6、若簽名驗證通過,則通訊方生成自身的臨時公鑰;
7、根據(jù)自身的固定公鑰、臨時公鑰及對方的固定公鑰、預公鑰執(zhí)行dke基礎密鑰交換;
8、采用kdf函數(shù)對基礎密鑰交換后的結果進行處理生成共享私鑰;
9、利用共享私鑰對通訊內容執(zhí)行aes-256加密或解密得到密文或明文并將密文或明文與自身的固定公鑰和臨時公鑰發(fā)送給對方;
10、完成首次通訊后的預設時間段內通訊雙方根據(jù)哈希函數(shù)計算每次通訊的密鑰并以此進行后續(xù)的加密通訊。
11、在一個示例性實施例中,所述通訊雙方利用dke基礎密鑰交換體制生成固定公鑰與固定私鑰、預公鑰與預私鑰,包括步驟:
12、根據(jù)系數(shù)為模q的多項式集合構建剩余類環(huán)rq;
13、根據(jù)隨機均勻生成的環(huán)rq的多項式a和離散高斯分布生成私鑰及對應的固定公鑰
14、根據(jù)離散高斯分布生成預私鑰及對應的預公鑰
15、在一個示例性實施例中,所述利用固定私鑰得到預公鑰的dilithium簽名并以此生成密鑰參數(shù)集合,包括步驟:
16、反復隨機選取無窮范數(shù)小于γ1多項式向量y并以2γ2為界計算a·y的高位比特w1與低位比特w0;其中γ1和γ2是預設參數(shù);
17、計算球面哈希c并根據(jù)哈希值和固定私鑰計算向量z;
18、重復上述步驟,直到向量z的無窮范數(shù)小于γ1-β且w0-2c·sb的無窮范數(shù)小于γ2-β時,輸出簽名s=(z,c);其中β是預設參數(shù);
19、根據(jù)固定公鑰fkb、預公鑰prekb、簽名s生成密鑰參數(shù)集合pb。
20、在一個示例性實施例中,所述通訊方獲取對方的密鑰參數(shù)集合后使用對方的固定公鑰驗證預公鑰的dilithium簽名,包括步驟:
21、通訊方從服務器獲取對方的密鑰參數(shù)集合pb;
22、根據(jù)公鑰和dilithium簽名計算驗證向量w1’;
23、當且僅當向量z的無窮范數(shù)小于γ1-β且c=h(prekb||w1’)時,預公鑰的dilithium簽名驗證通過。
24、在一個示例性實施例中,所述通訊方生成自身的臨時公鑰,包括步驟:
25、根據(jù)離散高斯分布生成私鑰
26、根據(jù)臨時私鑰生成對應的臨時公鑰
27、在一個示例性實施例中,所述根據(jù)自身的固定公鑰、臨時公鑰及對方的固定公鑰、預公鑰執(zhí)行dke基礎密鑰交換,包括步驟:
28、確認dke基礎密鑰交換參數(shù),包括模數(shù)q和維數(shù)n;
29、采用dke基礎密鑰交換協(xié)議根據(jù)自身的固定公鑰和對方的預公鑰計算第一交換比特串d1=dke(fka,prekb);
30、采用dke基礎密鑰交換協(xié)議根據(jù)自身的臨時公鑰和對方的固定公鑰計算第二交換比特串d2=dke(tka,fkb);
31、采用dke基礎密鑰交換協(xié)議根據(jù)自身的臨時公鑰和對方的預公鑰計算第三交換比特串d3=dke(tka,prekb)。
32、在一個示例性實施例中,所述采用kdf函數(shù)對基礎密鑰交換后的結果進行處理生成共享私鑰是通訊方基于sha-256的hmac作為kdf函數(shù)生成共享私鑰sk=kdf(d1||d2||d3)。
33、在一個示例性實施例中,所述利用共享私鑰對通訊內容執(zhí)行aes-256加密或解密得到密文或明文并將密文或明文與自身的固定公鑰和臨時公鑰發(fā)送給對方,包括步驟:
34、通訊方用共享私鑰sk對首條通訊信息m執(zhí)行aes-256加密,得到密文c=enc(sk,m);
35、通訊方將參數(shù)集合pa:(fka,tka,c)發(fā)送給對方;
36、對方調用dke基礎密鑰交換協(xié)議和kdf函數(shù)生成相同的共享私鑰sk并用共享私鑰sk對加密的通訊信息c執(zhí)行aes-256解密,得到通訊信息原文m=dec(sk,c);
37、完成密鑰交換及首次加密通訊。
38、在一個示例性實施例中,所述完成首次通訊后的預設時間段內通訊雙方根據(jù)哈希函數(shù)計算每次通訊的密鑰并以此進行后續(xù)的加密通訊,包括步驟:
39、在完成首次通訊后的預設時間段內,雙方利用哈希函數(shù)sha-256和計數(shù)器模式計算第i次通訊的通訊密鑰ski=sha-256(sk||i);
40、雙方使用通訊密鑰ski以及aes-256對稱密碼算法完成第i次加密通訊;
41、若雙方通訊超出預設時間段,則雙方重新執(zhí)行密鑰交換后生成新的共享密鑰進行加密通訊。
42、根據(jù)本發(fā)明的另一個實施例,提供了一種計算機可讀存儲介質,其存儲用于電子數(shù)據(jù)交換的計算機程序,其中,所述計算機程序執(zhí)行上述方法。
43、根據(jù)本發(fā)明的另一個實施例,提供了一種基于雙向安全密鑰交換的通訊加密系統(tǒng),包括:
44、處理器;
45、存儲器;
46、以及
47、一個或多個程序,其中所述一個或多個程序被存儲在存儲器中,并且被配置成由所述處理器執(zhí)行,所述程序使計算機執(zhí)行上述方法。
48、本發(fā)明的基于雙向安全密鑰交換的通訊加密方法、系統(tǒng)及存儲介質具有的優(yōu)點是:
49、(1)本發(fā)明基于dke基礎密鑰交換和dilithium數(shù)字簽名,并將加密通訊過程整合進去,形成整體的加密通訊協(xié)議均來源于格上問題的困難性,相比傳統(tǒng)的聊天加密技術,可以具備抗量子的安全特性。
50、(2)結合三次dke基礎密鑰交換和dilithium數(shù)字簽名進行首次通訊加密,相比傳統(tǒng)的聊天加密技術方案,可以有效提高加密協(xié)議的平均情況安全性。
51、(3)在通信雙方執(zhí)行首次密鑰交換過程后,在一定期限內后續(xù)每次加密通訊均保持雙向安全,相比傳統(tǒng)的聊天加密方案,可以有效提高通訊加密的安全性和加密效率。
52、(4)由于hash函數(shù)sha-256的抗碰撞特性,即便獲取了第i次通訊密鑰ski,也無法恢復出原始的共享密鑰sk,進而無法計算其他的通訊密鑰,相比傳統(tǒng)的通訊加密技術方案,可以有效保證連續(xù)多次通訊會話的安全性。