Encryption

資訊安全評估

  • February 9, 2020

我看到了這個用於評估某些方案的安全性(機密性、完整性、真實性和不可否認性)的練習:

  1. ENC(M) || SignA(ENC(M))
  2. ENC(M || SignA(M))
  3. SignA(ENC(M))
  4. ENC(M) || SignA(M)

在哪裡 || 是連接和 ENC(是對安全共享密鑰的加密),而 SIgnA 是 Alice 的 RSA 簽名。

我的回答是:

  1. 具有機密性(來自 ENC)和簽名的真實性,但沒有完整性,因為我有 ENC 的簽名(所以有人可以在我的簽名上使用偽造)和我不認為的非聲譽(但我不確定)。
  2. 這具有所有屬性,因為 ENC 提供機密性、簽名真實性、不可否認性和完整性,因為我有消息和他的簽名進行驗證。
  3. 在這個模式中,我有機密性和真實性,但沒有完整性。我不確定不可否認性。
  4. 有了這個模式,我就有了機密性、完整性和真實性。我再次懷疑不可否認性。

我不太清楚真實性是否意味著不可否認(使用簽名)。

任何人都可以幫助我解決這個問題嗎?

  1. ENC(M) || SignA(ENC(M))

具有機密性(來自 ENC)和簽名的真實性,但沒有完整性,因為我有 ENC 的簽名(所以有人可以在我的簽名上使用偽造)和我不認為的非聲譽(但我不確定)。

由於ENC,機密性是肯定的,正確的。

其他的都是相互聯繫的。如果接收者只接受簽名消息並且使用 Alice 的可信公鑰執行驗證,它們就會出現。如果接受對手的公鑰,則可以創建和簽名任何隨機密文。

不可否認性沒有完成,因為密鑰沒有與消息一起簽名。如果接收者使用不同的密鑰,您將在解密後得到不同的消息,即使密文上的簽名得到驗證。因此,不可否認性是“否”,機密性和消息完整性/真實性是“是”。

  1. ENC(M || SignA(M))

這具有所有屬性,因為 ENC 提供機密性、簽名真實性、不可否認性和完整性,因為我有消息和他的簽名進行驗證。

但是,是的,基本上是對的。請注意,如果加密方案容易受到例如明文/填充 oracle 攻擊的影響,那麼機密性就會失效。這個方案是我們通常做的。

  1. SignA(ENC(M))

在這個模式中,我有機密性和真實性,但沒有完整性。我不確定不可否認性。

該消息未發送(!),因此非常保密。您甚至無法猜測,因為簽名是在加密數據之上。完整性/真實性當然是胡說八道。不可否認也是不可能的。

除非有人能夠獲得原始消息並再次對其進行加密。但通常只允許給定消息(或者你會遇到 DoS 和重放攻擊等問題)。

  1. ENC(M) || SignA(M)

有了這個模式,我就有了機密性、完整性和真實性。我再次懷疑不可否認性。

錯誤的!您可以猜測數據並驗證簽名。如果它驗證,你已經找到了數據。我們通常假設公鑰是眾所周知的。

一旦你解密了你M, SignA(M)就有了你的不可否認性 - 因此是完整性和真實性。

再說一遍:如果加密方案容易受到例如明文/填充預言機攻擊的影響,那麼機密性就會失效(對於復雜的消息甚至更重要)。


請注意,通常這類問題會針對“完美”方案進行辯論,其中 E 是完美密碼,而 SignA 不能被破解。此外,除指定的通信或操作外,不允許進行其他通信或操作。

我已經提到了預言機攻擊以及如果消息在之後發送會發生什麼。在回答問題時,這些情況可以而且應該被忽略,即使在實踐中實施這樣的方案時絕對值得考慮。

原因是您首先需要了解完美方案的安全性,然後才能根據安全性聲明設計或分析系統。然後接下來要做的是考慮實際系統。然而,我已經非常紮根於實際應用,所以我的大腦在查看方案時開始自動插入警告。

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