[發明專利]SM4加解密方法及電路有效
| 申請號: | 201810229969.4 | 申請日: | 2018-03-20 |
| 公開(公告)號: | CN110311771B | 公開(公告)日: | 2022-07-22 |
| 發明(設計)人: | 高獻龍 | 申請(專利權)人: | 北京小米松果電子有限公司 |
| 主分類號: | H04L9/06 | 分類號: | H04L9/06 |
| 代理公司: | 北京英創嘉友知識產權代理事務所(普通合伙) 11447 | 代理人: | 曾堯;魏嘉熹 |
| 地址: | 100085 北京市*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | sm4 解密 方法 電路 | ||
1.一種SM4加解密方法,其特征在于,包括:
基于SM4密鑰擴展算法,對輸入的加密密鑰進行多輪密鑰擴展,在每一輪密鑰擴展得到加密輪密鑰后,基于SM4加密算法利用該加密輪密鑰對輸入的明文數據進行加密變換,以得到密文數據;
保存針對所述加密密鑰進行的最后四輪密鑰擴展得到的加密輪密鑰;
在對所述密文數據進行解密時,對保存的最后四輪加密輪密鑰進行多輪密鑰逆向擴展,并在每一輪密鑰逆向擴展得到解密輪密鑰后,基于SM4解密算法利用該解密輪密鑰對所述密文數據進行解密變換,以得到所述明文數據。
2.根據權利要求1所述的方法,其特征在于,所述對保存的最后四輪加密輪密鑰進行多輪密鑰逆向擴展,包括:
根據如下公式對保存的最后四輪加密輪密鑰進行多輪密鑰逆向擴展:
其中,RKi表示第i輪加密輪密鑰;CKi表示固定參數且CKi為字;表示異或運算;T'表示合成置換運算,由非線性變換τ和線性變換L'復合而成,即T'(·)=L'(τ(·))。
3.根據權利要求2所述的方法,其特征在于,所述非線性變換τ的輸入表示為A=(a0,a1,a2,a3),則τ(A)=(Sbox(a0),Sbox(a1),Sbox(a2),Sbox(a3)),其中,a0,a1,a2,a3均為8比特;Sbox(·)表示固定的8比特輸入8比特輸出的置換。
4.根據權利要求3所述的方法,其特征在于,所述線性變換L'的輸入表示為B=τ(A),則其中,表示循環左移操作。
5.根據權利要求1所述的方法,其特征在于,在進行所述多輪密鑰擴展的過程中,除最后四輪對所述加密密鑰的密鑰擴展以外,在其他每一輪密鑰擴展得到加密輪密鑰后,在利用該加密輪密鑰對所述明文數據進行加密變換時并行執行下一輪密鑰擴展;和/或
在進行所述多輪密鑰逆向擴展的過程中,除最后四輪所述密鑰逆向擴展以外,在其他每一輪密鑰逆向擴展得到解密輪密鑰后,在利用該解密輪密鑰對所述密文數據進行解密變換時并行執行下一輪密鑰逆向擴展。
6.一種SM4加解密電路,其特征在于,包括:
密鑰擴展模塊,用于基于SM4密鑰擴展算法,對輸入的加密密鑰進行多輪密鑰擴展,以及在對輸入的明文數據對應的密文數據進行解密時,對保存的最后四輪加密輪密鑰進行多輪密鑰逆向擴展;
存儲模塊,與所述密鑰擴展模塊連接,用于保存針對所述加密密鑰進行的最后四輪密鑰擴展得到的加密輪密鑰;
加解密模塊,分別與所述密鑰擴展模塊和所述存儲模塊連接,用于在每一輪密鑰擴展得到加密輪密鑰后,基于SM4加密算法利用該加密輪密鑰對所述明文數據進行加密變換,以得到密文數據,以及在對所述密文數據進行解密時,對保存的最后四輪加密輪密鑰進行多輪密鑰逆向擴展,并在每一輪密鑰逆向擴展得到解密輪密鑰后,基于SM4解密算法利用該解密輪密鑰對所述密文數據進行解密變換,以得到所述明文數據。
7.根據權利要求6所述的電路,其特征在于,所述密鑰擴展模塊用于:
根據如下公式對保存的最后四輪加密輪密鑰進行多輪密鑰逆向擴展:
其中,RKi表示第i輪加密輪密鑰;CKi表示固定參數且CKi為字;表示異或運算;T'表示合成置換運算,由非線性變換τ和線性變換L'復合而成,即T'(·)=L'(τ(·))。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京小米松果電子有限公司,未經北京小米松果電子有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810229969.4/1.html,轉載請聲明來源鉆瓜專利網。





