System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術屬于信息安全,特別涉及一種數據加密認證方法。
技術介紹
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模式不適
技術實現思路
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生成
9.根據權利要求1或8所述數據加密認證方法,其特征在于,當接收的數據未被篡改、重放,對消息執行并行的解密運算。
...【技術特征摘要】
1.一種數據加密認證方法,其特征在于,包括如下步驟:
2.根據權利要求1所述數據加密認證方法,其特征在于,所述隨機數iv、密鑰key和分組后的數據均為相同的固定長度,所述步驟1還對密鑰key進行如下處理:
3.根據權利要求2所述數據加密認證方法,其特征在于,所述固定長度為128bit。
4.根據權利要求1所述數據加密認證方法,其特征在于,所述步驟2,使用分組密碼算法sm4進行加密。
5.根據權利要求1所述數據加密認證方法,其特征在于,所述步驟2,對多個明文數據組并行加密的過程如下:
6.根據權利要求5所述數據加密認證方法,其...
【專利技術屬性】
技術研發人員:何艷杰,陳昱成,李衛,
申請(專利權)人:西交網絡空間安全研究院,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。