術語集 — 安全

AES-GCM加密是指

本頁面由日文原文機器翻譯而成。 閱讀日文原文

AES-GCM是結合加密和篡改驗證的方式。 解說nonce、認證標籤的作用、與其他方式的差異、應用程式的保護範圍,可以在瀏覽器中嘗試驗證失敗。

AES-GCM是加密文章的同時,使用金鑰驗證篡改的方式。前提是正確處理鑰匙、nonce、認證標籤。 僅憑密碼方式的名字,並不能決定包括郵件的傳送地址和備份在內的保護範圍。

更新:2026年9月9日。 確認了NIST・IETF・Apple的一次資料和SimpleMemo公開版5.8.26的實施。 筆者是SimpleMemo的開發者。

密碼文・nonce・標籤做什麼?

AES是通用金鑰密碼,GCM是那個動作模式。 AES-GCM是處理加密正文和不加密認證的附加資料(AAD)的AEAD。 例如,在隱藏正文的同時,可以將格式的版本號與正文聯絡起來進行驗證。 AAD本身不是秘密。

nonce(IV)是每個加密的值,同一金鑰需要不重複使用的設計。 和秘金鑰匙的作用不同,可以和密碼文一起儲存。 認證標籤用於解密時的驗證。 驗證失敗的資料不採用,作為錯誤處理。

方式的定義:NIST SP 800-38D。 輸入和nonce的條件:RFC 5116。

如果改變密碼文,會怎麼樣?

只用瀏覽器的Web Crypto API處理本頁內準備好的例文。 首先確認可以加密並恢復原狀,然後將密碼文的副本更改為1位進行驗證。 不是稽核應用程式的加密處理的演示。

例句: Review the draft at 10:00.

在這個環境下不能執行演示。 需要HTTPS對應的瀏覽器和JavaScript。

每次執行都會製作新的256位金鑰和nonce。 演示不儲存、傳送金鑰和結果。 重新載入標籤後,結果會重置。 結構:Web Cryptography API的AES-GCM。

與AES-CBC・ChaCha20-Poly1305的區別

方式的差異如下。 速度因終端和安裝而異,這個表不是實測排名。 僅憑使用CBC的資訊,無法判斷結合認證的產品整體的安全性。

專案AES-GCMAES-CBCChaCha20-聚1305
加密和認證一體型(AEAD)CBC單體僅加密一體型(AEAD)
AES的使用使用使用不使用
透過設計確認鑰匙・nonce・標籤・使用量的上限與認證的組合・IV・填充處理鑰匙・nonce・標籤・使用量的上限

TLS 1.3不是隻有AES-GCM的規格。 RFC 8446 §9.1必須安裝AES-128-GCM,也推薦AES-256-GCM和ChaCha20-Poly1305。 ChaCha20-Poly1305的規格請參考RFC 8439。

SimpleMemo會保護哪些資料?

確認的公開版的本地儲存處理,使用Apple的CryptoKit的AES-GCM和Keychain管理的金鑰。 新生成的金鑰是256位。 Outbox是等待傳送資料的保管場所,不能以這種加密為依據說“郵件也會被E2E加密到傳送地址”。

這個實現從Keychain讀取對稱金鑰後使用。 Keychain中儲存的金鑰和Secure Enclave內生成、利用的秘密金鑰不是相同的說明。 Apple的CryptoKit金鑰的儲存和Secure Enclave的金鑰說明了區分使用。

郵件傳送時,透過應用程式的轉播處理和配送企業,接收方也會留下副本。 結合加密方式,請確認隱私政策、收件人設定和到達確認、終端、郵件賬戶的管理。 從Outbox開始專案消失和完全刪除所有副本是不同的。

常見問題

AES-256-GCM的“256”是什麼?

AES鑰匙的長度是256位元的意思。 不是表示nonce和認證標籤的長度、終端整體安全性的數字。

nonce有必要保密嗎?

nonce與秘密金鑰不同,可以附加密碼文儲存。 重要的是,用同一個金鑰加密時不要重複使用nonce。

標籤驗證失敗的話,可以顯示正文嗎?

驗證失敗的結果不能作為正確的平文使用。 分離損壞、錯誤的鑰匙、變更的資料等,處理認證錯誤。

使用AES-GCM的話可以進行E2E加密嗎?

僅靠方式名是無法決定的。 需要設計整個系統,包括誰擁有鑰匙,在哪裡解密。 終端內的Outbox加密和郵件的配送、接收地址的儲存是不同的範圍。

Keychain儲存的話,鑰匙不會從Secure Enclave出來嗎?

不一定如此。 這個應用程式確認的實現,從Keychain讀取對稱金鑰的資料後使用。 與在Secure Enclave中進行秘密金鑰運算的API不一樣。

決定寄件地址,留下文字備忘錄
SimpleMemo是將用iPhone寫的文字,留在設定的郵件收件人或Obsidian的應用程式。 可以確認連線和儲存目的地的設定後開始。
從App Store下載

相關頁面