[發明專利]一種在芯片中防差分功率分析攻擊的實現方法及裝置有效
| 申請號: | 201911301787.4 | 申請日: | 2019-12-17 |
| 公開(公告)號: | CN111159784B | 公開(公告)日: | 2022-02-01 |
| 發明(設計)人: | 陸舟;于華章 | 申請(專利權)人: | 飛天誠信科技股份有限公司 |
| 主分類號: | G06F21/75 | 分類號: | G06F21/75 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 100085 北京市*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 芯片 中防差分 功率 分析 攻擊 實現 方法 裝置 | ||
1.一種在芯片中防差分功率分析攻擊的實現方法,其特征在于,包括:
步驟S1:芯片判斷是否存在待處理數據,是則執行步驟S2,否則執行步驟S5;
步驟S2:所述芯片判斷第二存儲區中的數據長度是否小于預設長度,是則執行步驟S3,否則執行步驟S4;
步驟S3:所述芯片將所述待處理數據存儲到第二存儲區,返回步驟S1;
步驟S4:所述芯片對所述第二存儲區中的數據進行壓縮運算,根據壓縮運算結果更新第一存儲區,返回步驟S1;
步驟S5:所述芯片對所述第二存儲區中的數據進行填充,對所述第二存儲區中的數據進行壓縮運算,根據壓縮運算結果更新所述第一存儲區;
所述對所述第二存儲區中的數據進行壓縮運算,根據壓縮運算結果更新第一存儲區包括:
步驟R1:所述芯片將符合預設長度的數據存儲到所述第二存儲區的第一子存儲區的前十六個數據中,生成十六個硬件隨機數存儲到所述第二存儲區的第二子存儲區中,將第一子存儲區中的前十六個數據分別和與其對應的一個硬件隨機數進行異或運算,并將異或運算結果分別更新至所述第一子存儲區的前十六個數據中;
步驟R2:所述芯片根據第一子存儲區和第二子存儲區前十六個數據進行預設操作將結果存儲到第一子存儲區和第二子存儲區的第十七到第六十八個數據中;
步驟R3:所述芯片隨機生成八個掩碼,將所述第一存儲區的第一數據至第八數據更新到第一寄存器至第八寄存器中,將所述第一寄存器至第八寄存器中的數據分別和與其對應的一個掩碼進行異或運算,并將異或運算結果分別更新至所述第一寄存器至第八寄存器中;
步驟R4:所述芯片更新中間變量,對所述中間變量、第一寄存器至第八寄存器中的數據和各個掩碼進行循環移位操作;
步驟R5:所述芯片將所述第一存儲區的第一數據、所述第一寄存器中的數據和第一掩碼進行運算,將結果更新到所述第一存儲區的第一數據,按順序執行上述操作直至將第一存儲區的第八數據、第八寄存器中的數據和第八掩碼進行運算,將結果更新到第一存儲區的第八數據;
所述步驟R2具體包括:
步驟M1:所述芯片將第一計數器的初始值設為17,作為當前計數值j;
步驟M2:所述芯片將第一子存儲區的第j-3數據循環左移15位、與第一子存儲區的第j-16數據和第j-9數據進行異或運算得到第一運算結果;
步驟M3:所述芯片將所述第一運算結果、所述第一運算結果循環左移15位和所述第一運算結果循環左移23位進行異或運算得到第二運算結果;
步驟M4:所述芯片將所述第二運算結果、第一子存儲區的第j-13數據循環左移7位和第一子存儲區的第j-6數據進行異或運算得到第j數據,將第j數據存儲在第一子存儲區的第j位;
步驟M5:所述芯片將第二子存儲區的第j-3數據循環左移15位、與第二子存儲區的第j-16數據和第j-9數據進行異或運算得到第三運算結果;
步驟M6:所述芯片將所述第三運算結果、所述第三運算結果循環左移15位和所述第三運算結果循環左移23位進行異或運算得到第四運算結果;
步驟M7:所述芯片將所述第四運算結果、第二子存儲區的第j-13數據循環左移7位和第二子存儲區的第j-6數據進行異或運算得到第j數據,將第j數據存儲在第二子存儲區的第j位;
步驟M8:所述芯片對當前計數值j進行加1運算,判斷當前計數值j是否小于第二預設值,是則返回步驟M2,否則執行步驟R3;
所述步驟R4具體包括:
步驟R4-1:所述芯片將第二計數器的初始值設為0,作為當前計數值i;
步驟R4-2:所述芯片將第一寄存器中的數據循環左移12位得到第一臨時計算結果,將第一掩碼循環左移12位得到第二臨時計算結果,使用第一函數對所述第一臨時計算結果和所述第二臨時計算結果進行運算得到第一中間變量,將所述第二臨時計算結果作為掩碼形式的第一中間變量;
步驟R4-3:所述芯片使用所述第一函數對第五寄存器中的數據和第五掩碼進行運算得到的結果與所述第一中間變量進行算數加運算,將結果更新到所述第一中間變量,將所述掩碼形式的第一中間變量與所述第五掩碼進行算數加運算,將結果更新到所述掩碼形式的第一中間變量;
步驟R4-4:所述芯片將常量Ti左移i位與所述第一中間變量進行算數加運算,將結果更新到所述第一中間變量;
步驟R4-5:所述芯片使用第二函數對所述第一中間變量和所述掩碼形式的第一中間變量進行運算得到第三臨時計算結果,將所述掩碼形式的第一中間變量作為第四臨時計算結果,將所述第三臨時計算結果循環左移7位更新到所述第一中間變量,將所述第四臨時計算結果循環左移7位更新到所述掩碼形式的第一中間變量,使用所述第一函數對所述第一中間變量和所述掩碼形式的第一中間變量進行運算,將結果更新到所述第一中間變量;
步驟R4-6:所述芯片使用所述第二函數對所述第一中間變量和所述掩碼形式的第一中間變量進行運算得到第二中間變量,將所述掩碼形式的第一中間變量作為掩碼形式的第二中間變量,將所述第二中間變量與所述第一臨時計算結果進行與運算,將結果更新到所述第二中間變量,將所述掩碼形式的第二中間變量與所述第二臨時計算結果進行與運算,將結果更新到所述掩碼形式的第二中間變量;
步驟R4-7:所述芯片將所述第一子存儲區的第i+1數據和第i+5數據進行與運算得到第五臨時計算結果,將所述第二子存儲區的第i+1數據和第i+5數據進行與運算得到第六臨時計算結果,使用所述第一函數對所述第五臨時計算結果和所述第六臨時計算結果進行運算,將結果更新到第三中間變量,將所述第六臨時計算結果作為掩碼形式的第三中間變量;
步驟R4-8:所述芯片使用所述第一函數對所述第二中間變量和所述掩碼形式的第二中間變量進行運算,將結果與所述第三中間變量進行算數加運算,將結果更新到所述第三中間變量,將所述掩碼形式的第二中間變量與所述掩碼形式的第三中間變量進行算數加運算,將結果更新到所述掩碼形式的第三中間變量,使用所述第一函數對第四寄存器中的數據和第四掩碼進行運算,將結果與所述第三中間變量進行算數加運算,將結果更新到所述第三中間變量,將所述第四掩碼與所述掩碼形式的第三中間變量進行算數加運算,將結果更新到所述掩碼形式的第三中間變量;
步驟R4-9:所述芯片使用第一布爾函數對所述第一寄存器、所述第二寄存器和第三寄存器中的數據進行運算得到第七臨時計算結果,使用所述第一布爾函數對所述第一掩碼、第二掩碼和第三掩碼進行運算得到第八臨時計算結果,所述芯片使用所述第一函數對所述第七臨時計算結果和所述第八臨時計算結果進行運算,將結果與所述第三中間變量進行算數加運算,將結果更新到所述第三中間變量,將所述第八臨時計算結果與所述掩碼形式的第三中間變量進行算數加運算,將結果更新到所述掩碼形式的第三中間變量;
步驟R4-10:所述芯片使用第二布爾函數對所述第五寄存器、第六寄存器和第七寄存器中的數據進行運算得到第九臨時計算結果,使用所述第二布爾函數對所述第五掩碼、第六掩碼、第七掩碼進行運算得到第十臨時計算結果,使用所述第一函數對所述第九臨時計算結果和所述第十臨時計算結果進行運算,將運算結果作為第四中間變量,將所述第十臨時計算結果作為掩碼形式的第四中間變量;
步驟R4-11:所述芯片使用所述第一函數對所述第八寄存器中的數據和所述第八掩碼進行計算,將結果與所述第四中間變量進行算數加運算,將結果更新到所述第四中間變量,將所述第八掩碼與所述掩碼形式的第四中間變量進行算數加運算,將結果更新到所述掩碼形式的第四中間變量;
步驟R4-12:所述芯片將所述第一中間變量與所述第四中間變量進行算數加運算,將結果更新到所述第四中間變量,將所述掩碼形式的第一中間變量與所述掩碼形式的第四中間變量進行算數加運算,將結果更新到所述掩碼形式的第四中間變量;
步驟R4-13:所述芯片使用所述第一函數將所述第一子存儲區的第i+1數據與所述第二子存儲區的第i+1數據進行運算,將結果與所述第四中間變量進行算數加運算,將結果更新到所述第四中間變量,將所述第二子存儲區的第i+1數據與所述掩碼形式的第四中間變量進行算數加運算,將結果更新到所述掩碼形式的第四中間變量;
步驟R4-14:所述芯片進行循環移位操作;
步驟R4-15:所述芯片將計數值i進行加1運算,判斷當前計數值是否小于第三預設值,是則返回步驟R4-2,否則執行步驟R5。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于飛天誠信科技股份有限公司,未經飛天誠信科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201911301787.4/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:基于充電樁的投資模式
- 下一篇:一種移動物體的識別方法及裝置





