查看非對稱後量子密碼編譯 (PQC) 洞察

本頁面說明如何使用Google Cloud 控制台的 Cloud KMS 金鑰管理總覽中的「後量子密碼編譯 (PQC) 洞察」圖表,評估非對稱金鑰的庫存,並為未來的密碼編譯現代化做好準備。

量子運算的出現,可能會對廣泛使用的公開金鑰密碼編譯演算法造成威脅。PQC 洞察圖表可協助您識別及清查傳統非對稱金鑰,提供規劃未來現代化作業所需的能見度,確保長期復原能力。

對稱式金鑰 (例如用於 ENCRYPT_DECRYPT 的金鑰) 一般認為可抵禦量子電腦攻擊,因此不會納入這個資訊主頁。如要進一步瞭解 Cloud KMS 支援的演算法,請參閱「金鑰用途與演算法」一文。

事前準備

如要取得查看 PQC 洞察資料所需的權限,請要求管理員授予您專案的「Cloud KMS 檢視者」 (roles/cloudkms.viewer) IAM 角色。

查看 PQC 洞察

「非對稱式 PQC 洞察」圖表會根據非對稱式金鑰使用的演算法類別,以視覺化方式顯示金鑰細目。

  1. 前往 Google Cloud 控制台的「Key Management」頁面。

    前往「金鑰管理」

  2. 按一下「總覽」分頁標籤,然後前往「非對稱式 PQC 洞察」圖表。

  3. 選用步驟:按一下圖表中的區段,即可查看該區段代表的金鑰數量。您也可以按一下區隔的「查看」,查看非對稱式 PQC 洞察詳細資料表格。

這張圖表將金鑰分為兩大類:

  • 後量子:金鑰採用專門抵禦未來量子電腦攻擊的密碼學演算法。
  • 傳統:金鑰採用傳統非對稱式演算法 (例如 RSA 或 ECC),目前可以防範傳統攻擊,不過容易受到未來量子電腦攻擊的影響。

圖表會依據加密用途和加密類型,進一步區隔這些金鑰。

瞭解詳細資料表

這個頁面上的表格會列出目前專案中的非對稱金鑰,並提供下列資訊:

  • 金鑰名稱:金鑰名稱。按一下名稱,前往該特定金鑰的「金鑰詳細資料」頁面。
  • 位置:金鑰所在位置。
  • 防護等級:金鑰的防護等級。
  • 用途:金鑰的加密編譯用途,例如 ASYMMETRIC_SIGN
  • 密碼編譯類型:指出金鑰使用的演算法是 PQC 還是傳統演算法。

您可以使用表格上方的篩選列,根據任何屬性縮小金鑰清單範圍。

評估傳統金鑰,為日後的現代化作業做準備

您應檢查現有的非對稱金鑰,找出可轉換為後量子替代方案的傳統非對稱演算法。這些金鑰仍可有效防範傳統攻擊。不過,採用後量子演算法有助於確保長期抵禦未來潛在的量子威脅。下表列出主要用途和演算法,以及各項是否視為後量子安全。

目的 演算法 密碼學類型 後量子替代方案
ASYMMETRIC_SIGN EC_SIGN_* 古典樂 ASYMMETRIC_SIGN 搭配 PQ_SIGN_* 演算法
ASYMMETRIC_SIGN RSA_SIGN_* 古典樂 ASYMMETRIC_SIGN 搭配 PQ_SIGN_* 演算法
ASYMMETRIC_SIGN PQ_SIGN_* PQC 後量子安全
ASYMMETRIC_DECRYPT RSA_DECRYPT_* 古典樂 KEY_ENCAPSULATION 演算法
KEY_ENCAPSULATION 全部 PQC 後量子安全

盡早採用後量子密碼標準可帶來以下優點:

  • KEY_ENCAPSULATION 金鑰取代 ASYMMETRIC_DECRYPT 金鑰,有助於保護加密資料,防範「先竊取,後解密」(HNDL) 攻擊。在這種攻擊中,惡意行為人會攔截密文,但無法解密,因此會儲存密文,希望有朝一日能破解加密。
  • PQ_SIGN_* 演算法取代使用 ASYMMETRIC_SIGN 鍵的 EC_SIGN_*RSA_SIGN_* 演算法,可為簽章提供長期不可否認性。

使用 Cloud Asset Inventory 找出金鑰

您可以使用 Cloud Asset Inventory,以程式輔助方式依演算法類型列出及篩選 Cloud KMS 資產。

在機構中搜尋

  1. 如要列出使用後量子演算法 (例如 PQ_SIGN_*ML_KEM_*KEM_XWING) 的金鑰,請執行下列指令:

    gcloud asset list \
      --organization=ORGANIZATION_ID \
      --asset-types="cloudkms.googleapis.com/CryptoKey" \
      --content-type=resource \
      --filter='(resource.data.purpose = "ASYMMETRIC_SIGN" OR resource.data.purpose = "ASYMMETRIC_DECRYPT" OR resource.data.purpose = "KEY_ENCAPSULATION") AND (resource.data.versionTemplate.algorithm:PQ_SIGN* OR resource.data.versionTemplate.algorithm:ML_KEM* OR resource.data.versionTemplate.algorithm = "KEM_XWING")' \
      --format='table(name.segment(1):label=PROJECT, name.segment(-3):label=KEY_RING, name.segment(-1):label=CRYPTO_KEY, resource.data.purpose:label=PURPOSE, resource.data.versionTemplate.algorithm:label=ALGORITHM)'
    
  2. 如要列出未使用後量子演算法的非對稱金鑰 (也就是使用傳統演算法的非對稱金鑰),請執行下列指令:

    gcloud asset list \
      --organization=ORGANIZATION_ID \
      --asset-types="cloudkms.googleapis.com/CryptoKey" \
      --content-type=resource \
      --filter='(resource.data.purpose = "ASYMMETRIC_SIGN" OR resource.data.purpose = "ASYMMETRIC_DECRYPT" OR resource.data.purpose = "KEY_ENCAPSULATION") AND NOT (resource.data.versionTemplate.algorithm:PQ_SIGN* OR resource.data.versionTemplate.algorithm:ML_KEM* OR resource.data.versionTemplate.algorithm = "KEM_XWING")' \
      --format='table(name.segment(1):label=PROJECT, name.segment(-3):label=KEY_RING, name.segment(-1):label=CRYPTO_KEY, resource.data.purpose:label=PURPOSE, resource.data.versionTemplate.algorithm:label=ALGORITHM)'
    

在專案中搜尋

  1. 確認 Google Cloud CLI 指向正確的專案:

    gcloud config set project PROJECT_ID
    
  2. 如要列出使用後量子演算法 (例如 PQ_SIGN_*ML_KEM_*KEM_XWING) 的金鑰,請執行下列指令:

    gcloud asset list \
      --project="$(gcloud config get-value project)" \
      --asset-types="cloudkms.googleapis.com/CryptoKey" \
      --content-type=resource \
      --filter='(resource.data.purpose = "ASYMMETRIC_SIGN" OR resource.data.purpose = "ASYMMETRIC_DECRYPT" OR resource.data.purpose = "KEY_ENCAPSULATION") AND (resource.data.versionTemplate.algorithm:PQ_SIGN* OR resource.data.versionTemplate.algorithm:ML_KEM* OR resource.data.versionTemplate.algorithm = "KEM_XWING")' \
      --format='table(name.segment(-3):label=KEY_RING, name.segment(-1):label=CRYPTO_KEY, resource.data.purpose:label=PURPOSE, resource.data.versionTemplate.algorithm:label=ALGORITHM)'
    
  3. 如要列出未使用後量子演算法的非對稱金鑰 (也就是使用傳統演算法的非對稱金鑰),請執行下列指令:

    gcloud asset list \
      --project="$(gcloud config get-value project)" \
      --asset-types="cloudkms.googleapis.com/CryptoKey" \
      --content-type=resource \
      --filter='(resource.data.purpose = "ASYMMETRIC_SIGN" OR resource.data.purpose = "ASYMMETRIC_DECRYPT" OR resource.data.purpose = "KEY_ENCAPSULATION") AND NOT (resource.data.versionTemplate.algorithm:PQ_SIGN* OR resource.data.versionTemplate.algorithm:ML_KEM* OR resource.data.versionTemplate.algorithm = "KEM_XWING")' \
      --format='table(name.segment(-3):label=KEY_RING, name.segment(-1):label=CRYPTO_KEY, resource.data.purpose:label=PURPOSE, resource.data.versionTemplate.algorithm:label=ALGORITHM)'
    

如要降低量子攻擊的風險,請改用非對稱金鑰,避免使用傳統演算法。

  • 非對稱式解密金鑰:對於用於非對稱式解密的金鑰,您可以將非對稱式加密替換為混合式公開金鑰加密 (HPKE),藉此更新資產。在 HPKE 中,您會使用目的為 KEY_ENCAPSULATION 的金鑰,採用 ML_KEM_768 等後量子演算法來分享密鑰。詳情請參閱「金鑰封裝機制」。
  • 非對稱簽署金鑰:如要使用數位簽章,您可以建立用途為 ASYMMETRIC_SIGN 的新金鑰,並使用 PQ_SIGN_ML_DSA_65 等後量子演算法,藉此更新現有金鑰。

對稱金鑰的後量子抗性

非對稱 PQC 洞察圖表著重的非對稱金鑰不同,一般認為對稱金鑰可抵禦量子電腦攻擊。但使用 HMAC-SHA1 演算法的 MAC 金鑰是例外情況。 如要進一步瞭解不同演算法,請參閱「金鑰用途與演算法」。

後續步驟