Encryption

HMAC + CBC 的替代品?

  • May 18, 2013

我正在考慮使用 HMAC + CBC。組合如下所示:

ciphertext = AES256(text, k1)
data = HMAC-SHA256(iv | ciphertext, k2) | iv | ciphertext

在哪裡:

k1 = 32 byte key - Randomly generated, once
k2 = 32 byte key - Randomly generated, once
iv = 16 bytes - Randomly generated, for every message

目的是將敏感資訊儲存在數據庫中。

上述方法對敏感資訊是否具有加密安全性?是否有任何理由考慮流密碼模式而不是像 CBC 這樣的塊密碼模式?

像 OCB 或 CCM 這樣的AEAD模式會更合適嗎?

如果我們正在使用的平台(特別是Go)沒有 AEAD 模式,那麼嘗試實現這些模式是否值得?

是的,這很好,在記錄級別。(您所建構的將在文獻中被歸類為“加密然後驗證”方案,並且此類方案有標準可證明的安全結果。)在建構一個可靠的、精心設計的密碼方案方面做得很好。

AEAD 模式可以讓您不必發明這樣的方案,但您所擁有的一切都很好,而且您沒有理由需要更改。

沒有理由切換到流密碼操作模式。

正如其他人在評論中提到的那樣,如果您在 HMAC 的輸入中包含一個標識符來標識出現的表、行和列,這將更加安全,這樣密文就不能從一個位置重播到另一個位置。fgrieu 解釋說,仍然存在回滾攻擊的風險;防禦起來更具挑戰性,因此如果您需要阻止它們,您可能需要詳細說明具體的應用情況。

引用自:https://crypto.stackexchange.com/questions/8401