實驗一密碼引擎 加密API實現與測試
實驗一:
任務詳情
1 下載並查詢GMT 0018-2012密碼裝置應用介面規範原始文件進行學習
2 實現GMT 0018-2012密碼裝置應用介面規範的介面函式,至少實現:
1)裝置管理中的開啟裝置,關閉裝置,獲取裝置資訊,產生隨機數
2)金鑰管理匯出 ECC 簽名公鑰;SDF_ExportSignPublicKey_ECC I.匯出 ECC加密公鑰∶SDF_ExportEncPublicKey_ECC J.產生ECC非對稱金鑰對並輸出∶SDF_GenerateKeyPair_ECC K.
未實現
3)非對稱演算法(至少支援SM2):外部金鑰 ECC驗證∶SDF_ExternalVerify_ECC ,內部金鑰
ECC簽名;SDF_InternalSign_ECC ,內部金鑰 ECC驗證∶SDF_InternalVerify_ECC 外部金鑰 ECC加密∶SDF_ExternalEncrypt_ECC (8分)
4)對稱演算法(至少支援SM4)∶SDF_Encrypt 對稱解密∶SDF_Dccrypt 計算 MAC∶SDF_CalculateMAC(6分)
5)雜湊演算法(至少支援SM3):· 雜湊運算初始化∶SDF_HashInit· 多包雜湊運算∶SDF_HashUpdate· 雜湊運算結束∶SDF_HashFinal(6分)
金鑰管理要求(10分)
基於本標準設計、開發的密碼裝置在金鑰管理方面,應滿足以下要求; 1)裝置金鑰的使用不對應用系統開放; 2) 金鑰必須用安全的方法產生並存儲;
3) 在任何時間、任何情況下,除公鑰外的金鑰均不能以明文形式出現在密碼裝置外; 4) 密碼裝置內部儲存的金鑰應具備有效的金鑰保護機制,防止解剖、探測和非法讀取; 5) 密碼
裝置內部儲存的金鑰應具備許可權控制機制,防止非法使用和匯出。
裝置狀態要求(5分)
基於本標準設計、開發的密碼裝置在裝置狀態方面,應滿足以下要求; 1) 密碼裝置應具有初始和就緒兩個狀態;
2) 未安裝裝置金鑰的密碼裝置應處幹初始狀態,已安裝裝置金鑰的密碼裝置應處於就緒狀態; 3) 在初始狀態下,除可讀取裝置資訊、裝置金鑰的生成或恢復操作外,不能執行任何操作,生成或恢復裝置金鑰後,密碼裝置處於就緒狀態;
4) 在就緒狀態下,除裝置金鑰的生成或恢復操作外,應能執行任何操作; 5) 在就緒狀態下進行的金鑰操作,裝置操作員應經過密碼裝置的認證。