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

首頁 > 系列文 > 自然人憑證開發筆記

自然人憑證的數位簽章、加解密的結果都是基於 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 主要用於創建和處理數位簽章、數位信封等資料結構,以實現資料的安全通訊。後續會針對兩個標準做簽章與加密的範例。

▶ 閱讀更多:深入淺出自然人憑證