Block-Cipher

流密碼——需要澄清它們在實踐中的好處

  • October 6, 2016

與一次加密 16 個字節的分組密碼相比,流密碼一次可以加密一個字節。我很好奇哪些應用程序會從一次加密一個字節的能力中受益匪淺。

諸如聊天或 voip 之類的實時應用程序總是一次發送幾個字節——這意味著如果使用分組密碼,則不時需要一點填充。讓我很好奇,一次加密一個字節的能力在哪裡成為流密碼的一大優勢。

流密碼不一定一次加密一個字節;他們通過生成密鑰流並用明文/密文對其進行異或來加密/解密。像 RC4 這樣的舊流密碼逐字節生成密鑰流,像 Salsa20 這樣的現代流密碼按塊生成密鑰流(Salsa20 按 64 字節塊)。可以使用 CTR 操作模式將塊密碼轉換為流密碼,然後它們也可以按塊生成密鑰流。

一次生成一個字節的密鑰流的能力對於某些應用程序肯定很有用,但通常需要自己實現。現代密碼(至少大多數密碼)並沒有“開箱即用”地提供它。

我不太確定您是否遺漏了一個值得注意的點:流密碼通常一次加密一位*,而不是一次加密一個字節*(儘管如@kludg 所述,這可能會有所不同)。

一個相當容易理解的範例案例是加密單個網路連結上的數據。硬體模組接收流量以逐位通過鏈路,將其與密鑰流中的一個位進行異或,然後將其發送到由類似模組解密的線路,並傳遞給接收它的系統。

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