Aes
ChaCha20 在側通道攻擊方面是否比 AES 更安全?
我已經看到了一些關於這個問題的 話題,但我覺得我的問題還沒有真正得到回答。
鑑於以下情況:
- AES 必須在硬體中實現(即使用AES-NI指令集),以確保針對針對算法實現的側通道攻擊提供最佳保護(因為 MixColumns 操作)
- Salsa20 系列和NORX等其他加密算法不太容易出現此類問題(如果實施得當,至少在軟體中)
…我們可以說它更安全嗎 $ ^1 $ 如果無法確保在所使用的硬體中正確實施 AES-NI,是否可以使用此類算法而不是 AES?
例如,如果使用具有此指令集但其設計保密的 x86-64 CPU,可以認為 AES 是安全的嗎?分別地,在這樣的平台上其他算法是否安全(r)?
$ ^1 $ 請注意,NORX 仍處於早期階段,尚未贏得 CEASAR 比賽以及經受住時間的考驗,因此目前僅“紙上談兵”是安全的
這基本上取決於您對旁道攻擊的看法。
如果您考慮時間/記憶體側通道攻擊,那麼 chacha20 在設計時就考慮到了對此類攻擊的抵抗力,而 AES 則沒有。事實上,AES 很容易受到這類攻擊(因為它們是在設計 AES 之後發明的)。但是,AES-NI 等硬體實現受到保護,因為它們不使用記憶體並且在恆定時間內執行。
如果您還考慮功率/電磁側通道,那麼這兩種算法都是脆弱的,從這個意義上說,社區已經研究了很多關於 AES 的保護,然後是 Chacha20,由於其 ARX 特性需要昂貴的掩蔽轉換,因此更難保護. 因此,即使在開源中,也更容易找到受保護的、純 sw、AES 實現。但是你需要一個受保護的實現,否則你將很容易受到攻擊。
總而言之,您必須檢查要防範的側通道攻擊以及實施的安全聲明。不能將其簡化為“AES 需要使用 AES-NI”,因為我們可以在純軟體中使用受側通道保護的 AES(參見上面的連結)。