[發明專利]一種SM3密碼雜湊算法的加速方法及指令集處理器在審
| 申請號: | 202211280343.9 | 申請日: | 2022-10-19 |
| 公開(公告)號: | CN115525342A | 公開(公告)日: | 2022-12-27 |
| 發明(設計)人: | 何軍;陳子鈺;姜軍;尹飛;蔣生健;李媛;范好好 | 申請(專利權)人: | 上海高性能集成電路設計中心 |
| 主分類號: | G06F9/38 | 分類號: | G06F9/38;G06F9/30;G06F21/60 |
| 代理公司: | 上海泰博知識產權代理有限公司 31451 | 代理人: | 錢文斌 |
| 地址: | 201210 上海市浦*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 sm3 密碼 雜湊 算法 加速 方法 指令 處理器 | ||
1.一種SM3密碼雜湊算法的加速方法,其特征在于,基于SM3擴展指令集,采用并行流水線和指令級并行技術加速執行SM3密碼雜湊算法;所述SM3擴展指令集采用RISC架構,指令采用定長的32位格式,源操作數和目標操作數均為256位;所述SM3擴展指令集包括SM3消息字擴展指令和SM3工作變量字迭代更新指令,所述SM3消息字擴展指令采用多消息字并行擴展算法以加速SM3消息擴展函數,所述多消息字并行擴展算法以填充后消息中的16個消息字作為初始輸入,單次執行就能完成8個消息字的生成,依次執行所述SM3消息字擴展指令7次,生成68個消息字;所述SM3工作變量字迭代更新指令采用多輪迭代融合算法以加速SM3迭代壓縮函數,所述多輪迭代融合算法能將經過所述SM3消息字擴展指令處理后得到的消息字的擴展融合到所述SM3迭代壓縮函數執行過程中,并且每次以消息字中的8個消息字和迭代中的工作變量字作為輸入,完成SM3工作變量字的4輪迭代更新,依次執行所述SM3工作變量字迭代更新指令16次,完成SM3算法工作變量字的第0~63輪迭代更新,從而得到所述SM3壓縮函數最終輸出的工作變量字。
2.根據權利要求1所述的SM3密碼雜湊算法的加速方法,其特征在于,所述采用并行流水線和指令級并行技術加速執行SM3密碼雜湊算法具體包括以下步驟:
(1)以填充后消息中的16個消息字W0,W1,……,W15作為輸入,執行第1條所述SM3消息字擴展指令,生成新的消息字W16,W17,……,W23;同時,以消息字W0,W1,……,W7和256比特的工作狀態變量初始值V(0)作為輸入,執行第一條所述SM3工作變量字迭代更新指令;
(2)連續以最新的16個消息字作為輸入,連續執行6條所述SM3消息字擴展指令,每次執行結果輸出的消息字記為W8i+8,W8i+9,……,W8i+15,最終得到SM3密碼雜湊算法的68個消息字W1,W2,……,W67;在第一條所述SM3工作變量字迭代更新指令執行5拍后輸出工作狀態變量V(3),以新的消息字和工作狀態變量作為輸入,然后采用相同的方式連續循環執行15條所述SM3工作變量字迭代更新指令,每次執行結果輸出的工作狀態變量記為V(4j-1);
(3)將最終的執行結果輸出的工作狀態變量V(63)作為最終輸出的256位的SM3雜湊值y={H,G,F,E,D,C,B,A}。
3.根據權利要求1所述的SM3密碼雜湊算法的加速方法,其特征在于,所述SM3消息字擴展指令采用寄存器格式的簡單運算指令格式,具體為VSM3MSW Va,Vb,Vc,用于指示兩個256位的源寄存器Va和源寄存器Vb中的兩個操作數進行運算,結果保存到256位的目標寄存器Vc中,32位指令的[31:26]位表示6位的操作碼,[25:21]位表示選擇由32個256位的寄存器組成的寄存器文件之一作為源寄存器Va,保存指令的源操作數,[20:16]位表示選擇由32個256位的寄存器組成的寄存器文件之一作為源寄存器Vb,保存指令的源操作數,[15:13]位總是全“0”,[12:5]位表示用于確定具體指令功能的8位功能碼,[4:0]位表示選擇由32個256位的寄存器組成的寄存器文件之一作為目標寄存器Vc,保存指令的運算結果。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海高性能集成電路設計中心,未經上海高性能集成電路設計中心許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202211280343.9/1.html,轉載請聲明來源鉆瓜專利網。





