[發明專利]一種在操作系統中進行密碼運算的方法和系統有效
| 申請號: | 201811525467.2 | 申請日: | 2018-12-13 |
| 公開(公告)號: | CN109522736B | 公開(公告)日: | 2021-12-10 |
| 發明(設計)人: | 林璟鏘;蔡權偉;荊繼武;李文強;李從午;王建民;王瓊霄 | 申請(專利權)人: | 中國科學院信息工程研究所 |
| 主分類號: | G06F21/60 | 分類號: | G06F21/60;G06F21/71;G06F12/02;H04L9/06 |
| 代理公司: | 北京君尚知識產權代理有限公司 11200 | 代理人: | 邱曉鋒 |
| 地址: | 100093 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 操作系統 進行 密碼 運算 方法 系統 | ||
1.一種在操作系統中進行密碼運算的方法,其特征在于,包括以下步驟:
在操作系統初始化可信環境下生成保護密鑰,將保護密鑰存儲在操作系統保留的特權寄存器中;所述特權寄存器不能被用戶態程序訪問,不能被操作系統用作其他用途;
用戶態程序提供密碼運算所需的源數據以及經保護密鑰加密的用戶密鑰;
在操作系統內核設置密碼運算內核模塊,用戶態程序調用所述密碼運算內核模塊完成密碼運算;在密碼運算中使用保護密鑰解密獲取用戶密鑰,然后使用用戶密鑰完成密碼運算,在密碼運算結束后清除用戶密鑰以及中間計算數據,并返回計算結果;
用戶密鑰的加密過程、用戶密鑰的解密過程以及密碼運算過程使用事務內存保護;
所述密碼運算包括以下兩個部分:
1)用戶密鑰解密部分:在使用用戶密鑰進行密碼運算前,使用保護密鑰對用戶密鑰進行解密操作;解密操作開始前關閉中斷,解密過程受事務內存保護,即先啟動事務內存模式,然后從系統保留的特權寄存器讀取保護密鑰,使用保護密鑰對用戶密鑰進行解密并擦除該過程中間敏感數據,然后結束事務內存模式并開啟中斷;用戶密鑰解密過程不含任何內存寫操作,計算更新的數據均存放在寄存器中,并且該過程是順序邏輯實現,不含任何包括判斷、循環在內的可能產生跳轉的指令;
2)用戶密鑰運算部分:利用解密后的用戶密鑰進行密碼運算;首先在使用用戶密鑰進行密碼運算開始前關閉中斷,使用用戶密鑰進行密碼運算同樣受事務內存保護,即先啟動事務內存模式,然后使用用戶密鑰進行密碼運算,用戶密鑰密碼運算結束后擦除密碼運算中間敏感數據以及用戶密鑰,然后開啟中斷并結束事務內存模式;
所述用戶密鑰以如下的兩種方式之一生成:
a)用戶態程序輸入一段數據,密碼運算內核模塊利用該數據生成用戶密鑰,使用保護密鑰加密后輸出;
b)密碼運算內核模塊利用內部隨機數作為種子,生成用戶密鑰,使用保護密鑰加密后輸出;
在上述用戶密鑰生成過程前關閉中斷,密鑰生成和加密過程同樣受事務內存保護,即先啟動事務內存模式,然后生成用戶密鑰,從系統保留的特權寄存器讀取保護密鑰,再使用保護密鑰對用戶密鑰進行加密并擦除該過程中間敏感數據,然后結束事務內存模式并開啟中斷;使用保護密鑰對用戶密鑰進行加密不含任何內存寫操作,計算更新的數據均存放在寄存器中,并且該過程是順序邏輯實現,不含任何包括判斷、循環在內的可能產生跳轉的指令;
其中,使用保護密鑰對用戶密鑰加密或解密過程和對計算結果加密過程是使用對稱密碼算法的SM4算法實現的,包括:
每一輪的迭代運算使用查找表實現,查找表在內存或寄存器存儲,所有更新的計算結果均使用寄存器存儲,所有計算均使用異或和循環左移指令實現;
每一輪的迭代運算的代碼分別編寫,而不是使用包括for/while/do在內的循環語句、不使用包括if在內的判斷語句,避免產生跳轉,確保整個指令序列順序執行。
2.根據權利要求1所述的方法,其特征在于:所述密碼運算是下列中的一種或多種:HMAC、對稱加解密、非對稱解密、非對稱簽名。
3.根據權利要求1所述的方法,其特征在于:在操作系統初始化可信環境下,在沒有啟動任何用戶態程序時,系統提示要求輸入口令,利用該口令生成指定長度的保護密鑰,生成的保護密鑰被置入系統保留的特權寄存器中;使用口令作為輸入生成保護密鑰后,口令及生成算法所使用的中間變量都被擦除,僅保留其結果即保護密鑰。
4.根據權利要求1所述的方法,其特征在于:密碼運算后返回的計算結果選擇是否經保護密鑰加密后輸出;在使用保護密鑰加密計算結果的過程前關閉中斷,該計算過程同樣受事務內存保護,即先啟動事務內存模式,然后從系統保留的特權寄存器讀取保護密鑰,再使用保護密鑰對計算結果進行加密并擦除該過程中間敏感數據,然后結束事務內存模式并開啟中斷。
5.根據權利要求1至4中任一權利要求所述的方法,其特征在于:所述事務內存是使用IntelTSX特性,啟動事務內存模式即調用XBEGIN指令,并且將事務abort的跳轉地址設置為事務abort處理程序;結束事務內存模式即調用XEND指令。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國科學院信息工程研究所,未經中國科學院信息工程研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811525467.2/1.html,轉載請聲明來源鉆瓜專利網。





