[發明專利]一種基于四基二進制底層模運算的快速加密系統有效
| 申請號: | 201910548928.6 | 申請日: | 2019-06-24 |
| 公開(公告)號: | CN110493003B | 公開(公告)日: | 2021-08-17 |
| 發明(設計)人: | 胡恩;熊曉明;黃宏敏;張明森 | 申請(專利權)人: | 廣東工業大學 |
| 主分類號: | H04L9/32 | 分類號: | H04L9/32;H04L29/06 |
| 代理公司: | 廣東廣信君達律師事務所 44329 | 代理人: | 楊曉松 |
| 地址: | 510062 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 二進制 底層 運算 快速 加密 系統 | ||
1.一種基于四基二進制底層模運算的快速加密系統,其特征在于,包括用于實現系統的簽名驗簽和加解密功能的協議層,以及用于實現曲線域算術和素數域模運算的運算層,其中:所述的運算層包括標量乘模塊,標量乘模塊上連接有用于進行雜湊運算的SM3模塊、用于產生隨機數的隨機數發生器,標量乘模塊包括點加模塊和倍點模塊,用于實現模逆、模乘和模加減運算;所述的系統工作方式如下:
(1)對于發送方
發送選擇需要使用的功能,如選擇對數據通信進行簽名,則執行步驟10;如選擇對通信數據進行加密,則執行步驟20:
選擇簽名方式的流程如下:
步驟10,發送方將私鑰和待簽名消息輸入系統;
步驟11,系統調用隨機數發生器產生256位的隨機數K;
步驟12,檢測隨機數K是否符合加密要求,即判斷K是否滿足
1≤K≤n-1;如不滿足則通過隨機數發生器重新產生隨機數K;其中,n表示橢圓曲線基點G的階;
步驟13,將符合加密要求的隨機數K發送給標量乘模塊,計算標量乘
[K]G;其中G表示橢圓曲線的基點;同時,發送方需要簽名的消息傳遞至SM3模塊進行雜湊運算;
標量乘模塊運算完畢后返回的結果是一個點的坐標,記為(x1,y1);SM3模塊運算后返回的是一個比特串u;
步驟14,計算r=x1 mod n,然后判斷r是否為0,如果為0,則說明隨機數K不符合要求,則重新生成隨機數K并執行步驟12至步驟14;如果r不為0,則說明簽名計算正確;
步驟15,通過標量乘模塊計算s=K*(u+r*dA)mod n,其中dA表示發送方的私鑰;
步驟16,判斷s是否為0,如果為0則隨機數K仍然不符合要求,重新生成隨機數K并執行步驟12至步驟16;如果s不為0,則表明簽名計算正確,得到簽名數據(r,s)并將簽名數據發送給接收方用于數據驗證;
選擇加密方式的流程如下:
步驟20,發送方將公鑰和待加密的消息輸入系統;
步驟21、步驟22同步驟11、步驟12;
步驟23,將符合加密要求的隨機數K發送給標量乘模塊計算標量乘[K]G;其中G表示橢圓曲線的基點,標量乘計算完畢后得到結果C1=(x1,y1),然后繼續計算標量乘[K]PB,其中PB表示公鑰;標量乘[K]PB的結果為一個點的坐標,記為s=(x2,y2);
步驟24,計算C2=M異或x2,其中M表示待加密的消息;然后將(C1,C2)作為密文發送給接收方;
(2)對于接收方
接收方選擇需要使用的功能,如選擇對通信數據進行驗證,則執行步驟30,如選擇對通信數據進行解密,則執行步驟40:
選擇驗證模式的流程如下:
步驟30,接收方將公鑰PA、來自于發送方的簽名數據(r,s)、消息M輸入到系統中;
步驟31,系統判斷簽名數據(r,s)是否合法,即是否滿足1≤r≤n-1,1≤s≤n-1;如r或s任意一個不滿足,則判斷簽名不能通過,并發出錯誤警告;如簽名合法,則進行下一步;
步驟32,將M傳遞給SM3模塊計算雜湊值,同時利用標量乘模塊計算s的逆;計算完成后,得到雜湊值e和逆值u,然后分別計算e*u得到結果t1,計算r*u得到結果t2;
步驟33,將t1、t2傳遞給標量乘模塊,計算標量乘[t1]G和標量乘[t2]PA;將兩個標量乘的結果相加得到結果(x1,y1),判斷(x1,y1)是否為0,若是,則驗證不通過,發出錯誤警告;若否,則進行下一步;
步驟34,計算R=x1 mod n,并判斷R與r是否相等,是則驗證通過,系統給出提示“此消息來自目標發送方”;否則驗證失敗,即發出錯誤警告“此消息被破壞,或者來自未知的第三方”;
選擇解密模式的流程如下:
步驟40,接收方將來自于發送方的密文(C1,C2)以及私鑰dB輸入系統;
步驟41,將私鑰dB傳遞給標量乘模塊,計算標量乘[dB]C1,計算結果為一個坐標(x,y);
步驟42,判斷x,y是否同時為0,如果是則發出提示信息:“解密失敗”,如果否,則計算C2異或x,得到的結果即消息M,將消息M輸出;
所述的標量乘模塊在進行四基二進制模運算的模乘運算中,采用4個256位加法器,兩個移位寄存器,以及若干選擇器;
當計算a*b開始時,乘數b存入寄存器s1中,s1向左移動兩位,通過加法器和選擇器的配合求得2*s1 mod p,p為素數;繼續將結果左移兩位,并且再次通過加法器和選擇器的組合求得4*s1 mod p;通過判斷b,即s1的最高兩位是00,01,10,或者11來確定接下來的加數是0,a,a1或者a2,其中a1=2a mod p,a2=3a mod p;得到加法結果后判斷乘數b是否已全部移出寄存器s1,是則返回此時的加法結果,此結果即為a*b的模乘結果,乘法運算完畢;若乘數b仍未完全移出寄存器s1,則繼續下次循環。
2.如權利要求1所述的基于四基二進制底層模運算的快速加密系統,其特征在于,所述的標量乘模塊在進行四基二進制模運算的模逆運算中,采用四個寄存器REG_U,REG_V,REG_G1,REG_G2,兩個加/減法器計算單元DFAS_1、DFAS_2以及控制整個模逆的計算流程控制單元;
模逆運算初始化時,寄存器REG_U,REG_V,REG_G1,REG_G2,分別被賦值操作數A,模數P,0,1,加/減法器DFAS_1主要是用來完成寄存器REG_U和寄存器REG_V內容的減法操作和REG_V內容的取反操作;而DFAS_2主要用來完成寄存器REG_G1,REG_G2內容的減法操作和寄存器REG_G2內容的取模運算;
當控制寄存器響應復位信號時,模數P和操作數A將通過選擇器寄存到寄存器REG_U、REG_V中,寄存器REG_G1和REG_G2將通過選擇器寄存0、1;當控制寄存器響應啟動信號時,首先通過判斷REG_V中的A值是否為偶數,若是則將REG_V向右移動一位,REG_G2向右移動兩位,否則只將REG_G2向右移動一位;繼續判斷REG_V中的值的最低位是否為0,若是則繼續將REG_V向右移動一位,REG_G2向右移動兩位,若不是則利用DAFS_1計算REG_U和REG_V中的差值,將結果寄存在REG_G1中,判斷REG_G1中的數據是否小于0,若是,則通過DAFS_2對REG_G1進行加P操作,若否,則通過DAFS_2計算寄存器REG_G1,REG_G2內容的差值,并將逆值存放于寄存器REG_G1中,返回結束信號,完成模逆運算。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廣東工業大學,未經廣東工業大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910548928.6/1.html,轉載請聲明來源鉆瓜專利網。





