本說明書涉及計算機應(yīng)用,具體地說,涉及計算機應(yīng)用下的加密技術(shù),更具體地說,涉及一種密鑰管理方法及裝置。
背景技術(shù):
1、密鑰是保障加密算法安全性和有效性的核心要素,各類密鑰生成算法被廣泛應(yīng)用于各類密碼設(shè)備。但由于側(cè)信道攻擊方式的出現(xiàn)和利用,這些密碼設(shè)備面臨著來自側(cè)信道攻擊的嚴重威脅。
技術(shù)實現(xiàn)思路
1、本說明書實施例提供了一種密鑰管理方法及相關(guān)裝置,以提升密鑰的抗側(cè)信道攻擊的性能。
2、為實現(xiàn)上述技術(shù)目的,本說明書實施例提供了如下技術(shù)方案:
3、第一方面,本說明書的一個實施方式提供一種密鑰管理方法,包括:
4、響應(yīng)于攜帶有第一輸入數(shù)據(jù)的密鑰生成請求,執(zhí)行多輪迭代過程,以得到多組輪密鑰;所述第一輸入數(shù)據(jù)包括隨機數(shù)組、第一掩碼和隨機數(shù)數(shù)據(jù)表;
5、所述迭代過程包括:
6、基于第一非線性變換結(jié)果,得到第i組輪密鑰,i為大于或等于0的整數(shù);
7、所述第一非線性變換結(jié)果包括第一結(jié)果,所述第一結(jié)果由一組目標替換盒對第一目標參數(shù)進行第一非線性變換得到,所述第一目標參數(shù)包括:第一迭代參數(shù)、第二迭代參數(shù)和所述隨機數(shù)數(shù)據(jù)表;所述第一迭代參數(shù)基于初始迭代密鑰和所述隨機數(shù)組得到,所述第二迭代參數(shù)基于所述隨機數(shù)組和所述第一掩碼得到。
8、結(jié)合第一方面,在第一方面的一些實施方式中,所述第一非線性變換包括:基于所述第一迭代參數(shù)中的各元素值確定各所述目標替換盒的目標元素,所述目標替換盒的目標元素基于標準替換盒的第j個元素與所述隨機數(shù)數(shù)據(jù)表中的第x個元素得到,x基于j和所述第二迭代參數(shù)中的元素得到。
9、結(jié)合第一方面,在第一方面的一些實施方式中,所述目標替換盒的目標元素為所述目標替換盒中的第x個元素;
10、所述目標替換盒的目標元素等于所述標準替換盒的第j個元素與所述隨機數(shù)數(shù)據(jù)表中的第x個元素的異或結(jié)果;
11、x等于j和所述第二迭代參數(shù)中的元素的異或結(jié)果。
12、結(jié)合第一方面,在第一方面的一些實施方式中,所述第一非線性變換結(jié)果還包括第二結(jié)果,所述第二結(jié)果由所述隨機數(shù)數(shù)據(jù)表對所述第一迭代參數(shù)進行第二非線性變換得到。
13、結(jié)合第一方面,在第一方面的一些實施方式中,所述第二非線性變換包括:
14、基于所述第一迭代參數(shù)的元素值,確定所述隨機數(shù)數(shù)據(jù)表中的第n個元素作為所述第二結(jié)果。
15、結(jié)合第一方面,在第一方面的一些實施方式中,所述基于第一非線性變換結(jié)果,得到第i組輪密鑰包括:
16、將上輪迭代得到的輪密鑰與第一目標結(jié)果進行異或處理,以得到第i組輪密鑰;
17、所述第一目標結(jié)果包括所述第一結(jié)果的第一線性變換結(jié)果。
18、結(jié)合第一方面,在第一方面的一些實施方式中,還包括:
19、響應(yīng)于攜帶有第二輸入數(shù)據(jù)的加密請求,對待加密數(shù)據(jù)執(zhí)行加密過程;所述第二輸入數(shù)據(jù)包括第二掩碼和所述隨機數(shù)數(shù)據(jù)表;
20、所述加密過程包括:
21、基于第i個加密迭代結(jié)果和第二非線性變換結(jié)果進行多輪迭代,得到第i+n個加密迭代結(jié)果,第1組加密迭代結(jié)果基于所述待加密數(shù)據(jù)和所述第二掩碼得到,n為所述待加密數(shù)據(jù)的個數(shù);
22、基于最后一輪迭代得到的加密迭代結(jié)果與所述第二掩碼,得到最終加密結(jié)果;
23、所述第二非線性變換結(jié)果包括第三結(jié)果,所述第三結(jié)果由所述一組目標替換盒對第二目標參數(shù)進行所述第三非線性變換得到,所述第二目標參數(shù)包括:第三迭代參數(shù)、第四迭代參數(shù)和所述隨機數(shù)數(shù)據(jù)表,所述第三迭代參數(shù)基于所述加密迭代結(jié)果和第i輪輪密鑰得到,所述第四迭代參數(shù)基于所述第二掩碼和所述第一掩碼得到;
24、所述第二非線性變換包括:基于所述第三迭代參數(shù)中的各元素值確定各所述目標替換盒的目標元素,所述目標替換盒的目標元素基于標準替換盒的第j個元素與所述隨機數(shù)數(shù)據(jù)表中的第x個元素得到,x基于j和所述第四迭代參數(shù)中的元素得到。
25、結(jié)合第一方面,在第一方面的一些實施方式中,當所述第一非線性變換結(jié)果還包括第二結(jié)果時,所述第二結(jié)果由所述隨機數(shù)數(shù)據(jù)表對所述第一迭代參數(shù)進行第二非線性變換得到;
26、所述第二非線性變化結(jié)果還包括:第四結(jié)果,所述第四結(jié)果由所述隨機數(shù)數(shù)據(jù)表對所述第三迭代參數(shù)進行第四非線性變換得到。
27、結(jié)合第一方面,在第一方面的一些實施方式中,還包括:
28、響應(yīng)于攜帶有第三輸入數(shù)據(jù)的解密請求,對待解密數(shù)據(jù)執(zhí)行解密過程;所述第三輸入數(shù)據(jù)包括第二掩碼和所述隨機數(shù)數(shù)據(jù)表;
29、所述解密過程包括:
30、基于第i個解密迭代結(jié)果和第三非線性變換結(jié)果,得到第i+n個解密迭代結(jié)果,第1組解密迭代結(jié)果基于所述待解密數(shù)據(jù)和所述第二掩碼得到,n為所述待解密數(shù)據(jù)的個數(shù);
31、基于最后一輪迭代得到的解密迭代結(jié)果與所述第二掩碼,得到最終解密結(jié)果;
32、所述第三非線性變換結(jié)果包括第五結(jié)果,所述第五結(jié)果由所述一組目標替換盒對第三目標參數(shù)進行所述第五非線性變換得到,所述第三目標參數(shù)包括:第五迭代參數(shù)、第六迭代參數(shù)和所述隨機數(shù)數(shù)據(jù)表,所述第五迭代參數(shù)基于所述解密迭代結(jié)果和第i輪輪密鑰得到,所述第六迭代參數(shù)基于所述第二掩碼和所述第一掩碼得到;
33、所述第三非線性變換包括:基于所述第五迭代參數(shù)中的各元素值確定各所述目標替換盒的目標元素,所述目標替換盒的目標元素基于標準替換盒的第j個元素與所述隨機數(shù)數(shù)據(jù)表中的第x個元素得到,x基于j和所述第六迭代參數(shù)中的元素得到。
34、結(jié)合第一方面,在第一方面的一些實施方式中,當所述第一非線性變換結(jié)果還包括第二結(jié)果時,所述第二結(jié)果由所述隨機數(shù)數(shù)據(jù)表對所述第一迭代參數(shù)進行第二非線性變換得到;
35、所述第三非線性變化結(jié)果還包括:第六結(jié)果,所述第六結(jié)果由所述隨機數(shù)數(shù)據(jù)表對所述第五迭代參數(shù)進行第六非線性變換得到。
36、第二方面,本說明書的一個實施方式提供一種密鑰管理裝置,包括:
37、密鑰擴展模塊,用于響應(yīng)于攜帶有第一輸入數(shù)據(jù)的密鑰生成請求,執(zhí)行多輪迭代過程,以得到多組輪密鑰;所述第一輸入數(shù)據(jù)包括隨機數(shù)組、第一掩碼和隨機數(shù)數(shù)據(jù)表;
38、所述迭代過程包括:
39、基于第一非線性變換結(jié)果,得到第i組輪密鑰,i為大于或等于0的整數(shù);
40、所述第一非線性變換結(jié)果包括第一結(jié)果,所述第一結(jié)果由一組目標替換盒對第一目標參數(shù)進行第一非線性變換得到,所述第一目標參數(shù)包括:第一迭代參數(shù)、第二迭代參數(shù)和所述隨機數(shù)數(shù)據(jù)表;所述第一迭代參數(shù)基于初始迭代密鑰和所述隨機數(shù)組得到,所述第二迭代參數(shù)基于所述隨機數(shù)組和所述第一掩碼得到。
41、結(jié)合第二方面,在第二方面的一些實施方式中,所述第一非線性變換包括:基于所述第一迭代參數(shù)中的各元素值確定各所述目標替換盒的目標元素,所述目標替換盒的目標元素基于標準替換盒的第j個元素與所述隨機數(shù)數(shù)據(jù)表中的第x個元素得到,x基于j和所述第二迭代參數(shù)中的元素得到。
42、結(jié)合第二方面,在第二方面的一些實施方式中,所述目標替換盒的目標元素為所述目標替換盒中的第x個元素;
43、所述目標替換盒的目標元素等于所述標準替換盒的第j個元素與所述隨機數(shù)數(shù)據(jù)表中的第x個元素的異或結(jié)果;
44、x等于j和所述第二迭代參數(shù)中的元素的異或結(jié)果。
45、結(jié)合第二方面,在第二方面的一些實施方式中,所述第一非線性變換結(jié)果還包括第二結(jié)果,所述第二結(jié)果由所述隨機數(shù)數(shù)據(jù)表對所述第一迭代參數(shù)進行第二非線性變換得到。
46、結(jié)合第二方面,在第二方面的一些實施方式中,所述第二非線性變換包括:
47、基于所述第一迭代參數(shù)的元素值,確定所述隨機數(shù)數(shù)據(jù)表中的第n個元素作為所述第二結(jié)果。
48、結(jié)合第二方面,在第二方面的一些實施方式中,所述密鑰擴展模塊基于第一非線性變換結(jié)果,得到第i組輪密鑰具體用于:將上輪迭代得到的輪密鑰與第一目標結(jié)果進行異或處理,以得到第i組輪密鑰;
49、所述第一目標結(jié)果包括所述第一結(jié)果的第一線性變換結(jié)果。
50、結(jié)合第二方面,在第二方面的一些實施方式中,還包括:
51、數(shù)據(jù)加密模塊,用于響應(yīng)于攜帶有第二輸入數(shù)據(jù)的加密請求,對待加密數(shù)據(jù)執(zhí)行加密過程;所述第二輸入數(shù)據(jù)包括第二掩碼和所述隨機數(shù)數(shù)據(jù)表;
52、所述加密過程包括:
53、基于第i個加密迭代結(jié)果和第二非線性變換結(jié)果進行多輪迭代,得到第i+n個加密迭代結(jié)果,第1組加密迭代結(jié)果基于所述待加密數(shù)據(jù)和所述第二掩碼得到,n為所述待加密數(shù)據(jù)的個數(shù);
54、基于最后一輪迭代得到的加密迭代結(jié)果與所述第二掩碼,得到最終加密結(jié)果;
55、所述第二非線性變換結(jié)果包括第三結(jié)果,所述第三結(jié)果由所述一組目標替換盒對第二目標參數(shù)進行所述第三非線性變換得到,所述第二目標參數(shù)包括:第三迭代參數(shù)、第四迭代參數(shù)和所述隨機數(shù)數(shù)據(jù)表,所述第三迭代參數(shù)基于所述加密迭代結(jié)果和第i輪輪密鑰得到,所述第四迭代參數(shù)基于所述第二掩碼和所述第一掩碼得到;
56、所述第二非線性變換包括:基于所述第三迭代參數(shù)中的各元素值確定各所述目標替換盒的目標元素,所述目標替換盒的目標元素基于標準替換盒的第j個元素與所述隨機數(shù)數(shù)據(jù)表中的第x個元素得到,x基于j和所述第四迭代參數(shù)中的元素得到。
57、結(jié)合第二方面,在第二方面的一些實施方式中,當所述第一非線性變換結(jié)果還包括第二結(jié)果時,所述第二結(jié)果由所述隨機數(shù)數(shù)據(jù)表對所述第一迭代參數(shù)進行第二非線性變換得到;
58、所述第二非線性變化結(jié)果還包括:第四結(jié)果,所述第四結(jié)果由所述隨機數(shù)數(shù)據(jù)表對所述第三迭代參數(shù)進行第四非線性變換得到。
59、結(jié)合第二方面,在第二方面的一些實施方式中,還包括:
60、數(shù)據(jù)解密模塊,用于響應(yīng)于攜帶有第三輸入數(shù)據(jù)的解密請求,對待解密數(shù)據(jù)執(zhí)行解密過程;所述第三輸入數(shù)據(jù)包括第二掩碼和所述隨機數(shù)數(shù)據(jù)表;
61、所述解密過程包括:
62、基于第i個解密迭代結(jié)果和第三非線性變換結(jié)果,得到第i+n個解密迭代結(jié)果,第1組解密迭代結(jié)果基于所述待解密數(shù)據(jù)和所述第二掩碼得到,n為所述待解密數(shù)據(jù)的個數(shù);
63、基于最后一輪迭代得到的解密迭代結(jié)果與所述第二掩碼,得到最終解密結(jié)果;
64、所述第三非線性變換結(jié)果包括第五結(jié)果,所述第五結(jié)果由所述一組目標替換盒對第三目標參數(shù)進行所述第五非線性變換得到,所述第三目標參數(shù)包括:第五迭代參數(shù)、第六迭代參數(shù)和所述隨機數(shù)數(shù)據(jù)表,所述第五迭代參數(shù)基于所述解密迭代結(jié)果和第i輪輪密鑰得到,所述第六迭代參數(shù)基于所述第二掩碼和所述第一掩碼得到;
65、所述第三非線性變換包括:基于所述第五迭代參數(shù)中的各元素值確定各所述目標替換盒的目標元素,所述目標替換盒的目標元素基于標準替換盒的第j個元素與所述隨機數(shù)數(shù)據(jù)表中的第x個元素得到,x基于j和所述第六迭代參數(shù)中的元素得到。
66、結(jié)合第二方面,在第二方面的一些實施方式中,當所述第一非線性變換結(jié)果還包括第二結(jié)果時,所述第二結(jié)果由所述隨機數(shù)數(shù)據(jù)表對所述第一迭代參數(shù)進行第二非線性變換得到;
67、所述第三非線性變化結(jié)果還包括:第六結(jié)果,所述第六結(jié)果由所述隨機數(shù)數(shù)據(jù)表對所述第五迭代參數(shù)進行第六非線性變換得到。
68、第三方面,本說明書的一個實施方式還提供了一種片上系統(tǒng),包括:存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的計算機程序,所述處理器執(zhí)行所述計算機程序時實現(xiàn)如上所述的密鑰管理方法。
69、第四方面,本說明書的一個實施方式還提供了一種計算設(shè)備,包括存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的計算機程序,所述處理器執(zhí)行所述計算機程序時實現(xiàn)如上所述的密鑰管理方法。
70、第五方面,本說明書的一個實施方式還提供了一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)上存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)如上所述的密鑰管理方法。
71、第六方面,本說明書實施例提供了一種計算機程序產(chǎn)品或計算機程序,所述計算機程序產(chǎn)品包括計算機程序,所述計算機程序存儲在計算機可讀存儲介質(zhì)中;所述計算機設(shè)備的處理器從所述計算機可讀存儲介質(zhì)讀取所述計算機程序,所述處理器執(zhí)行所述計算機程序時實現(xiàn)上述的密鑰管理方法的步驟。
72、從上述技術(shù)方案可以看出,本說明書實施例提供的密鑰管理方法在對加密密鑰進行密鑰擴展的過程中,基于第一非線性變換結(jié)果,得到第i組輪密鑰,i為大于或等于0的整數(shù);所述第一非線性變換結(jié)果包括第一結(jié)果,所述第一結(jié)果由一組目標替換盒對第一目標參數(shù)進行第一非線性變換得到,所述第一目標參數(shù)包括:第一迭代參數(shù)、第二迭代參數(shù)和所述隨機數(shù)數(shù)據(jù)表;所述第一迭代參數(shù)基于初始迭代密鑰和所述隨機數(shù)組得到,所述第二迭代參數(shù)基于所述隨機數(shù)組和所述第一掩碼得到;所述第一非線性變換包括:基于所述第一迭代參數(shù)中的各元素值確定各所述目標替換盒的目標元素,所述目標替換盒的目標元素基于標準替換盒的第j個元素與所述隨機數(shù)數(shù)據(jù)表中的第x個元素得到,x基于j和所述第二迭代參數(shù)中的元素得到。如此,在輪密鑰擴展過程中的中間值(例如第一迭代參數(shù)和第二迭代參數(shù))都被隨機掩碼,并直接生成了攜帶隨機數(shù)數(shù)據(jù)表作為掩碼的輪密鑰,使得在整個輪密鑰擴展過程中,輪密鑰都沒有明文出現(xiàn)過,不會泄露和輪密鑰相關(guān)的任何側(cè)信道信息,提升了輪密鑰在側(cè)信道攻擊中的安全性。