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

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

(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 密碼裝置內部儲存的金鑰應具備有效的金鑰保護機制,防止解剖 探測和...

API安全 六 密碼加密

存在資料庫中的密碼如果是明文,一旦資料庫資料洩漏了,別人就可以拿著你的賬號密碼為所欲為。更何況有很多人在各個平台的使用者名稱密碼都是一致的。所以使用者的密碼,一定要加密儲存。2.1 對稱加密,指的是需要對加密和解密使用相同金鑰的加密演算法。常見的對稱加密演算法有 des 3des aes等。2.2 ...