實驗一 密碼引擎 加密API研究

2022-10-11 18:36:09 字數 1804 閱讀 7398

(1)crypto api

使用cryptoapi編寫乙個檔案保護程式,具有如下功能:

· 給定明文檔案,生成加密檔案,同時產生檔案的數字簽名檔案;

· 給定密文檔案,解密出明文檔案,並驗證簽名的正確性。

在不安全的網路上進行安全的資料傳輸涉及三個方面的要求:資訊隱藏,身份鑑別和完整性檢驗。cryptoapi除了提供上述三個功能外還提供標準的asn.1編碼、解碼,資訊解密,數字證書和證書儲存區的管理,證書信任列表、吊銷列表和證書有效性檢查等功能。

根據機制標記,可以分為幾類:

ckf_encrypt:加密類

ckf_decrypt:解密類

ckf_digest:摘要類

ckf_sign:簽名類

ckf_sign_recover:可恢復簽名類

ckf_verify:驗證類

ckf_verify_recover:可恢復驗證類

ckf_generate:金鑰產生

ckf_generate_key_pair:金鑰對產生

ckf_wrap:金鑰封裝

ckf_unwrap:金鑰解封

ckf_derive:金鑰派生

csp介面標準:csp介面標準為微軟所頒發,在windows作業系統上通行。csp中重要的概念是容器(container)。乙個容器中具有一對公私鑰。而證書卻是這一對金鑰的附加屬性了。

pkcs#11的物件可根據其生命期長短的不同分成兩大類:一類是持久儲存的類物件,這類物件被儲存在usb key的安全儲存區域當中,直到應用程式主動刪除這些物件;另一類是會話物件,這類物件只存在於執行時建立的特定會話(session物件)當中,一旦會話結束,這類物件也跟著被刪除。決定物件生命期的模板屬性是cka_token,這是個布林值,所有的物件都有這一屬性。當該值為true時,該物件將被儲存到key內的儲存空間,否則,該物件儲存在會話空間中,當會話結束後,該物件即銷毀。

pkcs#11的物件除了生命期長短有分別之外,在訪問許可權上也有限制。所有的物件都可根據訪問許可權的不同分成兩大類:一類是公開物件,這類物件是任何使用者都可以訪問的;另一類是私有物件,這一類物件只有身份被驗證的使用者才有權訪問。決定物件的訪問限制型別的模板屬性是cka_private。這是個布林值,所有的物件都有這一屬性。應用程式可根據需要決定物件應為私有物件還是公開物件。

p11標準頒發了70餘條指令。其中部分指令簡介如下表:

實驗一 密碼引擎 加密API研究

任務詳情 密碼引擎api的主要標準和規範包括 1 微軟的crypto api 2 ras公司的pkcs 11標準 3 中國商用密碼標準 gmt 0016 2012 智慧型密碼鑰匙密碼應用介面規範,gmt 0018 2012密碼裝置應用介面規範等 研究以上api介面,總結他們的異同,並以龍脈gm300...

實驗一 密碼引擎 加密API實現與測試

金鑰管理要求 10分 基於本標準設計 開發的密碼裝置在金鑰管理方面,應滿足以下要求 1 裝置金鑰的使用不對應用系統開放 2 金鑰必須用安全的方法產生並儲存 3 在任何時間 任何情況下,除公鑰外的金鑰均不能以明文形式出現在密碼裝置外 4 密碼裝置內部儲存的金鑰應具備有效的金鑰保護機制,防止解剖 探測和...

實驗一 密碼引擎 商用密碼演算法實現2 交叉測試

把自己實現的商用密碼演算法sm2,sm3,sm4與openssl交叉驗證 自己實現的sm3演算法的結果與openssl的結果比對是否一致 自己實現的sm4演算法加密的,openssl的sm4演算法解密,或者相反 自己實現的sm2演算法簽名,openssl的sm2演算法驗籤,或者相反 1.自己實現的s...

實驗一 密碼引擎 4 國 演算法交叉測試(選做)

任務詳情 0 2人一組,建立乙個檔案,檔名為小組成員學號,內容為小組成員學號和姓名 1 在ubuntu中使用openssl用sm4演算法加密上述檔案,然後用龍脈ekey解密,提交 和執行結果截圖 2 在ubuntu中基於openssl產生一對公私鑰對 sm2演算法 3 在ubuntu中使用opens...

Shiro 之一 密碼加密

在專案前期開發階段,密碼採用明碼儲存。但是一旦程式部署在生產環境,明碼儲存密碼是非常不安全的,必須對密碼進行加密運算。加密主要分為兩種 可逆運算和不可逆運算 1 可逆運算是通過乙個秘鑰,對一段字串加密,同樣可以通過這個秘鑰進行解密運算 2 不可逆運算的加密對一段字串進行加密,但是不能還原成原來的字串...