Padding
哪種加密標準可確保加密敏捷性和良好的適應性
推薦哪些加密消息標準以確保未來的加密敏捷性並通過不同的程式語言(如 .NET 和 Go)得到良好的採用?
該標準應該是使用公鑰基礎設施以及經過驗證的對稱加密的混合密碼系統。
我不想自己處理加密原語,而是想處理或多或少地防止小錯誤的外觀。
我發現了這些不同的標準,我的經驗各不相同:
- PKCS #7(舊標準,適合未來?)
- NaCl crypto_box(固定原語和有限的消息大小)
- JSON Web 加密 (JWE)(JWS 非常成熟,但不是 JWE)
- XML 加密語法和處理版本 1.1(使用 XML 的大量成本)
是否缺少一些值得一提的東西?哪個會被推薦用於未來的證明應用程序?
更新
應用程序:本地安裝並通過 HTTPS 使用 TLS 身份驗證發送加密數據。到雲中的服務,但數據將在本地本地加密,而不是在雲中。一條消息大約 5kb-2MB,每天大約 100-2.000 條消息。地穴原語應該很快,大約 50 毫秒。
約束:必須與BSI TR-02102兼容,並且應與BSI 建議(用德語編寫)兼容,以便遷移到後量子密碼學。
除了 NaCl 之外的所有算法都允許您指定算法,但它們都不允許您指定屬於後量子密碼學計劃的一部分的算法(儘管問題中沒有提到,但這將是擁有加密敏捷性的一個很好的理由)。
對於經典密碼學和對量子電腦的相對較高的抵抗力,所有這些都允許 RSA 密鑰封裝(包括 RSA-OAEP)和 256 位 AES 作為原語。因此,使用 RSA 密鑰對,比如 4096 位,將使您能夠很好地抵抗除具有超過 8192 個邏輯量子位的全功能量子電腦之外的任何東西。
否則我會確保我會使用一個對你來說實用的標準,它有一個成熟的、維護良好的庫,並檢查了例如側通道攻擊。這也是 CMS 的一個優點。它可能很舊,但在選擇圖書館時,成熟度並沒有什麼問題。