978 字
5 分鐘
[背景知識] 公鑰密碼學標準 PKCS | 自然人憑證開發筆記

自然人憑證的數位簽章、加解密的結果都是基於 PKCS 標準,本篇來介紹一下什麼是 PKCS。
公鑰密碼學標準 PKCS
PKCS 是指Public Key Cryptography Standards,是一系列的公開金鑰密碼學標準。這些標準由 RSA 實驗室(RSA Laboratories)制定,用於推動公開金鑰密碼學的發展和應用。以下是一些常見的 PKCS 標準:
- PKCS #1: RSA Cryptography Standard:
定義了 RSA 加密和數位簽章的標準。這包括 RSA 公開金鑰加密和簽名的格式,以及相應的數學運算。 - PKCS #7: Cryptographic Message Syntax (CMS):
定義了一種通用的語法,用於表示加密和簽章的資料,包括數位簽章、數位信封(encrypted message),以及簽章的格式。 - PKCS #8: Private-Key Information Syntax Standard:
定義了私鑰的語法,用於表示和交換私鑰資訊。通常用於將私鑰存儲在檔案中或通過網路進行私鑰的交換。 - PKCS #10: Certification Request Syntax Standard:
定義了一種語法,用於向證書授權機構(Certificate Authority,CA)提交證書請求。這是用戶向 CA 請求數字憑證的標準格式。 - PKCS #11: Cryptographic Token Interface (Cryptoki):
定義了通用的 API 介面,用於訪問硬體安全模塊(Hardware Security Module,HSM)和其他加密標記設備。這使應用程式能夠與硬體安全設備進行互動,並利用其安全功能。 - PKCS #12: Personal Information Exchange Syntax Standard:
定義了一種語法,用於將密鑰、證書和相關資訊封裝成一個單一的檔案,通常使用 PFX 或 P12 擴展名。這種格式通常用於在應用之間安全地交換私鑰和憑證。
這些標準為公開金鑰密碼學的不同方面提供了統一的規範,有助於確保不同系統和應用程式之間的互操作性。它們為實現安全通訊和數位簽章等應用提供了基礎。
而自然人憑證在做數位簽章、加解密支援了 PKCS #1、PCKS #7,接著來比較兩者。
PKCS #1
- 主要用途:
數位簽章和加密: PKCS #1 主要用於 RSA 密碼學,包括數位簽章和加密。它定義了 RSA 的數位簽章生成和驗證、以及資料的加密和解密方法。 - 填充方案:
PKCS #1 v1.5 和 OAEP: PKCS #1 定義了填充方案,如 PKCS #1 v1.5 和 OAEP,用於確保 RSA 加密和數位簽章的安全性。這些填充方案影響資料的安全性和保密性。 - 密鑰長度:
彈性的密鑰長度: PKCS #1 允許使用不同的 RSA 密鑰長度,以應對安全性和性能的需求。
PKCS #7
- 主要用途:
數位簽章和訊息語法: PKCS #7 主要用於訊息語法,定義了一個通用的語法,用於表示和簽名/加密訊息。它通常用於創建加密和簽名的資料結構,如數位信封。 - 數位簽章和數位信封:
PKCS #7 中的簽章和信封: PKCS #7 可以包含數位簽章和數位信封。簽章用於確保資料的完整性和真實性,而信封則用於將資料加密以保護其保密性。 - 廣泛應用:
加密通訊和數位信封: PKCS #7 常用於加密通訊和數位信封,特別是在公開金鑰基礎結構(PKI)環境中,以確保通訊的機密性和完整性。
結語
PKCS #1 和 PKCS #7 有不同的焦點和應用範疇。PKCS #1 主要用於 RSA 加密和數位簽章,而 PKCS #7 主要用於創建和處理數位簽章、數位信封等資料結構,以實現資料的安全通訊。後續會針對兩個標準做簽章與加密的範例。
▶ 閱讀更多:深入淺出自然人憑證