Aes

預計算 AES-CTR 密鑰流是否安全?

  • July 9, 2020

Q0:預計算的密鑰流是否容易受到側通道攻擊,例如查找表?

我不認為這是因為查找表經常被訪問,這就是使它成為非恆定時間的原因。

Q1:如果預計算的密鑰流非常大,比如幾MB,可能會被分頁到磁碟,其他程序能否像文件一樣訪問磁碟中的密鑰流(這將允許它解密相應的明文容易地 ) ?

或者這些頁面是否受作業系統保護?

預計算密鑰流是否存在任何其他安全問題(實際問題或錯誤假設)?

Q0:預計算的密鑰流是否容易受到側通道攻擊,例如查找表?

當然不是; 一旦它被預先計算,它就位於記憶體中。即使它被訪問,也不會執行任何依賴於隨機流的操作——當然,除了與明文進行 XOR 之外。原則上這可能是脆弱的,但由於沒有什麼是真正依賴於位置的,我想風險相對較低。

如果可以監控 XOR 輸入的能量使用,那麼您仍然可以洩漏有關位的資訊。例如,如果通常需要一個大的全零明文,那麼您可能會看到一個全為一的明文。同樣,在某些系統上,即使複製數據也可能很危險,與內容無關。所以,是的,這取決於系統是否存在側通道以及它們是否適用。

當然,如果您儲存密鑰流,那麼任何訪問它的東西都會破壞該方案。儲存的時間越長,風險就越高(例如,針對 RAM(行錘)或 CPU(Spectre / Meltdown)的直接攻擊。您當然可以爭辯說,即使沒有密鑰流,如果適用的話,您也會被搞砸。 .

如果預計算的密鑰流非常大,比如幾 MB,它可能會被分頁到磁碟,另一個程序可以在它像文件一樣訪問磁碟時訪問密鑰流(這將允許它輕鬆解密相應的明文

通常不會,因為作業系統不允許一個程序訪問另一個程序記憶體。當然,如果您有一個應用伺服器或虛擬化系統,則需要採取其他保護措施。請注意,如果可以載入另一個系統,這並沒有說明頁面文件的安全性。為此,頁面文件應該被加密,並且許多作業系統至少包含這種功能(如果預設啟用它是另一回事)。

預計算密鑰流是否存在任何其他安全問題(實際問題或錯誤假設)?

失去同步將是我的主要問題之一。此外,直接用於 CTR 模式的密鑰流可能表明實現未經過身份驗證。

最後,AES 在大多數處理器上都非常快。如果實施者知道他們在做什麼,我會擔心。例如,他們很可能使用託管實現而不是本機/ CPU 提供的實現。我主要使用密鑰流來避免延遲問題而不是吞吐量問題。

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