System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及信息安全密碼算法實現分析和物理攻擊的防護,特別涉及一種基于秘密共享的抗側信息與故障攻擊防護方法及相關設備。
技術介紹
1、對稱密碼算法的信息發送方和接收方是使用同一個密鑰進行加/解密。在物聯網設備以及需要安全保障的傳輸時,經常使用對稱密碼算法進行防護,常見的對稱密碼算法有des,aes,以及美國新確定的輕量級密碼算法ascon等。對稱密碼算法中一般通過混淆和擴散和置換的方式進行加密。具體的,對稱密碼算法的組成可以分為線性部分和非線性部分。非線性部分也叫s盒或者置換層,其底層實現上包含了有限域的乘法(與操作);而非線性層則包含異或加操作或者擴散操作等。由于對稱密碼算法實現上只涉及數據位置的交換和異或操作,與操作等,實現相對簡單,所以和非對稱密碼算法相比具有計算速度快,使用資源少的優點。
2、但在現有技術中,對稱密碼算法中存在有側信道攻擊和故障攻擊;其中對于側信道攻擊通常采用掩碼技術進行防護;對于故障攻擊采用兩種對策解決需要錯誤密文分析的故障攻擊方法,一種是基于檢測的防御方法:它實現兩份相同的密碼方案,當故障注入在某一密碼實現時,它輸出的結果和另一密碼實現的結果不相同。在輸出時將這兩個方案的結果進行比較,若兩個實現的結果不一致時則不輸出,這樣攻擊者就無法獲得錯誤的密文。另一種防御方法叫做基于感染的防御方法,它的實現原理是將故障攻擊產生的錯誤密文隨機化,使得攻擊者無法利用。這種方法使用感染函數代替了基于檢測的防護方案中的比較。例如,該感染函數可以將輸入的非零值轉化為一個隨機數,而輸入零值時輸出仍然為零。將兩個
3、然而,雖然上述兩種對策可以有效抵御基于錯誤密文的故障攻擊,但是對于基于正確密文進行分析的故障攻擊卻無能為力。統計無效故障攻擊(statistical?ineffectivefault?attack),以下簡稱sifa,就是使用統計方法對正確的輸出密文進行破譯的故障攻擊方法。sifa的實施者按如下步驟進行攻擊:1)首先在密碼實現的某個位置注入偏置故障,使得密碼算法中間值出現0和1的概率不相同。2)注入故障后加密大量的不重復明文,但是只收集正確的輸出密文。3)攻擊者將這些輸出密文和幾組猜測的密鑰進行解密,計算出故障發生位置所對應的中間值。4)攻擊者統計這些中間值的分布,由于只收集了正確的密文結果,所以當中間值的分布和注入故障最相似或最不均勻的中間值所對應的密鑰則是正確密鑰。目前,對于sifa尚沒有很好的防御手段。
技術實現思路
1、基于此,有必要針對上述技術問題,提供一種基于秘密共享的抗側信息與故障攻擊防護方法及相關設備。
2、一種基于秘密共享的抗側信息與故障攻擊防護方法,包括:在每一輪計算中,一次執行如下步驟:
3、步驟110,確定待防護密碼算法的初始數據,根據所述初始數據按照門限實現方法構造與所述初始數據相對應的三個份額;
4、步驟120,使用第一隨機數將所述三個份額進行拓展構造出六個份額;
5、步驟130,所述六個份額在線性部分分別獨立進行計算,在非線性部分前,根據所述六個份額構造門限實現搭配的四組三份額組;
6、步驟140,在所述四組三份額組中隨機選取三組三份額組分別進行非線性部分計算得出第一份額組、第二份額組和第三份額組;
7、步驟150,將所述第一份額組、第二份額組和第三份額組輸入至預設投票機制,通過所述預設投票機制進行投票輸出非線性部分的選中份額組和非線性部分的未選中份額組對應的非線性部分的任一輸入份額,所述輸入份額包括所述三組三份額組中其他未選中的的份額;
8、步驟160,根據所述輸入份額生成第二隨機數,使用所述第二隨機數和所述選中份額組中的三個份額進行拓展重新構造出新的六個份額;
9、步驟170,檢測是否存在下一輪計算,當存在下一輪計算時,以重新構造出新的六個份額作為下一輪步驟130中的六個份額,返回步驟130進行下一輪計算。
10、在一個實施例中,所述將所述第一份額組、第二份額組和第三份額組輸入至預設投票機制,通過所述預設投票機制進行投票輸出非線性部分的選中份額組和非線性部分的未選中份額組對應的非線性部分前的任一輸入份額之后,所述方法還包括:
11、將所述四組三份額組中的任一組三份額組中的三個份額進行異或處理得到輸出結果,所述輸出結果為明文、密文或標記值中的其中一種。
12、在一個實施例中,所述根據所述輸入份額生成第二隨機數,包括:
13、利用預設構造式將所述輸入份額的數據進行構造得到新的份額數據;
14、將所述份額數據作為第二隨機數。
15、在一個實施例中,所述預設投票機制采用門限方式實現,所述門限方式包括:
16、將第一份額組的第一份額、第二份額、第三份額分別和第二份額組的第一份額、第二份額、第三份額分別進行異或,再將三個異或結果進行異或作為第一評估結果;
17、將第二份額組的第一份額,第二份額,第三份額分別和第三份額組的第一份額,第二份額,第三份額分別進行異或,再將三個異或結果進行異或作為第二評估結果;
18、將第三份額組的第一份額,第二份額,第三份額分別和第一份額組的第一份額,第二份額,第三份額分別進行異或,再將三個異或結果進行異或作為第三評估結果;
19、分別檢測所述第一評估結果、第二評估結果和第三評估結果是否與預設信號相等;
20、當所述第一評估結果與所述預設信號相等時,則在所述第一份額組和所述第二份額組中選取其中一組份額組作為選中份額組;
21、當所述第二評估結果與所述預設信號相等時,則在所述第二份額組和所述第三份額組中選取其中一組份額組作為選中份額組;
22、當所述第三評估結果與所述預設信號相等時,則在所述第一份額組和所述第三份額組中選取其中一組份額組作為選中份額組。
23、在一個實施例中,所述第一隨機數的字節長度與所述初始數據的字節長度相同。
24、在一個實施例中,所述預設投票機制為少數服從多數的投票機制。
25、在一個實施例中,所述分別檢測所述第一評估結果、第二評估結果和第三評估結果是否與預設信號相等之后,所述方法還包括:
26、當所述第一評估結果、所述第二評估結果和所述第三評估結果中不存在與所述預設信號相等的信號時,則不存在非線性部分的選中份額組。
27、在一個實施例中,所述不存在非線性部分的選中份額組之后,所述方法還包括:
28、生成告警信號。
29、一種計算機設備,包括存儲器和處理器,所述存儲器存儲有計算機程序,其特征在于,所述處理器執行所述計算機程序時實本文檔來自技高網...
【技術保護點】
1.一種基于秘密共享的抗側信息與故障攻擊防護方法,其特征在于,包括:在每一輪計算中,依次執行如下步驟:
2.根據權利要求1所述的方法,其特征在于,所述將所述第一份額組、第二份額組和第三份額組輸入至預設投票機制,通過所述預設投票機制進行投票輸出非線性部分的選中份額組和非線性部分的未選中份額組對應的非線性部分前的任一輸入份額之后,所述方法還包括:
3.根據權利要求1所述的方法,其特征在于,所述根據所述輸入份額生成第二隨機數,包括:
4.根據權利要求1所述方法,其特征在于,所述預設投票機制采用門限方式實現,所述門限方式包括:
5.根據權利要求1所述的方法,其特征在于,所述第一隨機數的字節長度與所述初始數據的字節長度相同。
6.根據權利要求1-5中任一項所述的方法,其特征在于,所述預設投票機制為少數服從多數的投票機制。
7.根據權利要求4所述的方法,其特征在于,所述分別檢測所述第一評估結果、第二評估結果和第三評估結果是否與預設信號相等之后,所述方法還包括:
8.根據權利要求7所述的方法,其特征在于,所述不
9.一種計算機設備,包括存儲器和處理器,所述存儲器存儲有計算機程序,其特征在于,所述處理器執行所述計算機程序時實現權利要求1至8中任一項所述方法的步驟。
10.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,所述計算機程序被處理器執行時實現權利要求1至8中任一項所述的方法的步驟。
...【技術特征摘要】
1.一種基于秘密共享的抗側信息與故障攻擊防護方法,其特征在于,包括:在每一輪計算中,依次執行如下步驟:
2.根據權利要求1所述的方法,其特征在于,所述將所述第一份額組、第二份額組和第三份額組輸入至預設投票機制,通過所述預設投票機制進行投票輸出非線性部分的選中份額組和非線性部分的未選中份額組對應的非線性部分前的任一輸入份額之后,所述方法還包括:
3.根據權利要求1所述的方法,其特征在于,所述根據所述輸入份額生成第二隨機數,包括:
4.根據權利要求1所述方法,其特征在于,所述預設投票機制采用門限方式實現,所述門限方式包括:
5.根據權利要求1所述的方法,其特征在于,所述第一隨機數的字節長度與所述初始數據的字節長度相同。
<...
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。