[發明專利]基于國密算法的終端認證信息提取和驗證方法及系統有效
| 申請號: | 202010565442.6 | 申請日: | 2020-06-19 |
| 公開(公告)號: | CN111709010B | 公開(公告)日: | 2021-05-07 |
| 發明(設計)人: | 王英龍;付勇;楊美紅;陳麗娟 | 申請(專利權)人: | 山東省計算中心(國家超級計算濟南中心) |
| 主分類號: | G06F21/44 | 分類號: | G06F21/44;G06F21/60 |
| 代理公司: | 濟南圣達知識產權代理有限公司 37221 | 代理人: | 黃海麗 |
| 地址: | 250014 山*** | 國省代碼: | 山東;37 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 算法 終端 認證 信息 提取 驗證 方法 系統 | ||
1.基于國密算法的終端認證信息提取和驗證方法,其特征是,包括:
獲取終端認證信息文件;從終端認證信息文件中獲取終端認證信息;
依次判斷終端認證信息中的序列號是否讀取成功,判斷校驗信息是否讀取成功,判斷數據段校驗值是否驗證成功;
如果上述判斷結果均為成功,則解密數據,重新加密數據,輸出重新加密后的數據,并對重新加密后的數據進行恢復;
S101:獲取硬件信息;獲取終端認證信息文件;打開終端認證信息文件,判斷是否打開成功,如果是就獲取終端認證信息,讀取并處理序列號,進入下一步;如果否,就關閉終端認證信息文件,結束;
S102:判斷序列號是否讀取成功,如果是,就讀取并處理校驗信息,進入下一步;如果否,就關閉終端認證信息文件,結束;
S103:判斷校驗信息是否讀取成功,如果是,就讀取并處理數據段數據,計算數據段校驗值并進行驗證,如果驗證通過,則進入下一步,如果否,就關閉終端認證信息文件,結束;
所述獲取終端認證信息,讀取并處理序列號,具體步驟包括:
S101a1:獲取終端認證信息至臨時數組bsinfo;從臨時數組bsinfo中查找序列號標識信息,如沒有找到, 返回錯誤信息,退出;
S101a2:取出64字節的字符,將其轉換為64位無符號整形數組u64DA[4],如果整形數量不等于32,返回錯誤信息,退出;如果整形數量等于32,則進入下一步;
S101a3:對u64DA 數組進行8字節置換;
所述讀取并處理校驗信息,具體步驟包括:
S101b1:從臨時數組bsinfo中查找哈希值標識信息,如果沒有找到,返回錯誤信息,退出;
S101b2:取出64字節的字符,將其轉換為64位無符號整形數組u64D[4],如果整形數量不等于32,返回錯誤信息,退出;如果整形數量等于32,則進入下一步;
所述讀取并處理數據段數據,計算數據段校驗值并進行驗證,具體步驟包括:
S101c1:從臨時數組bsinfo中查找數據段開始標識信息和數據段結束標志信息;如果沒有找到標志信息,返回錯誤信息,退出;
S101c2:提取數據段數據,復制到64位無符號整形數組u8DA,按照8字節置換令無符號字節指針bsinfo1指向u8DA數組首個元素;
S101c3:計算數據段u8DA數據哈希值;平均分為4個64比特的元素,依次異或64位無符號整形數組u64DA的4個元素,將結果與S101b2中的4個數值依次比對,如果不一致,則判斷為數據段數據錯誤,返回錯誤信息,退出;如果一致,則進入下一步;
S104:判斷數據段校驗值驗證是否成功,如果是,就關閉終端認證信息文件,解密數據段,提取序列號、硬件指紋信息、有效期和加密數據,基于提取的數據解密數據,重新加密數據,輸出重新加密后的數據和數據長度,結束;如果否,就關閉終端認證信息文件,結束;
S105:對重新加密的數據進行恢復;具體步驟包括:
S1051:取二次加密數據odata最后16字節開始的第13字節;
S1052:獲取核心文件的哈希值和硬件指紋信息;所述核心文件為用戶從應用程序中隨機指定的一個文件;如果該文件被篡改,應用程序將無法正常運行;
S1053:將核心文件的哈希值循環左移S1051得到的位數后作為主密鑰對二次加密數據odata 前16字節執行SM4加密運算,將結果作為主密鑰mkey;
S1054:以mkey為主密鑰,對核心文件的哈希值執行SM4加密運算,結果保存至buf, buf異或odata最后16字節后與硬件指紋信息比對,如不一致,將buf里的16字節設置為0,清空odata;如果一致,則進入S1055;
S1055:設置臨時序號j=0;
S1056:以mkey為主密鑰對buf執行SM4加密運算,將結果保存至buf,異或odata第j*16+16字節開始的16字節后,保存至恢復數據revdata第j*16字節開始的16字節;
S1057: j++,如果jlen/16;轉S1056,否則轉S1058;
S1058:返回len除以16,結束,輸出二次加密后的數據,返回數據塊數;
其中,返回數據塊數等于len值除以16所得到的商。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于山東省計算中心(國家超級計算濟南中心),未經山東省計算中心(國家超級計算濟南中心)許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010565442.6/1.html,轉載請聲明來源鉆瓜專利網。





