流密碼是在數據加密中使用的一種算法,在這種算法中,需要加密的源根據隨機出現的密鑰序列進行處理。這種類型的密碼在某種程度上是靈活的,因為它可能會隨著文本的處理而改變加密方式。它們有時也被稱為狀態密碼,因為加密還...
流密碼是在數據加密中使用的一種算法,在這種算法中,需要加密的源根據隨機出現的密鑰序列進行處理。這種類型的密碼在某種程度上是靈活的,因為它可能會隨著文本的處理而改變加密方式。它們有時也被稱為狀態密碼,因為加密還取決于操作的當前狀態。與塊密碼(一次處理64位的數據塊)不同,流密碼可以對單個位進行操作。因此,流可以以極低的處理能力高速處理

密鑰序列是流密碼的一部分。第一個流密碼是吉爾伯特·韋納姆在1917年發明的。后來,弗南也幫助創建了一種稱為一次性密碼,是一種流密碼形式,使用一次性密鑰對數據進行加密。在一次性密碼中,生成的密鑰與需要加密的數據長度相同,是完全隨機的,不會在其他任何地方再次使用,因此得名當對要加密的數據(通常稱為明文)進行處理時,沒有密鑰就無法解密得到的密文。一次性密碼在大多數情況下很難處理,因此,但是,流密碼通常被認為是有用的,所以密鑰被縮短并變成偽隨機的,這意味著它們在統計上是隨機的,但實際上不是流密碼具有動態加密的能力。這樣,簡單的流密碼甚至很容易由人用筆和紙來執行,而分組密碼通常需要使用計算機來處理。明文與密鑰流一起通過加密過程,構成密鑰的偽隨機序列,在這里它被轉換成密文的另一端。通常,這種加密是通過對單個比特進行異或(XOR)運算來實現的,這些位在通過密碼時進行運算。一個簡單的異或密碼使用一種邏輯析取作為它的基礎,這意味著如果其中一個操作數為真,則結果可以為真,但不能同時為真。例如,如果在加密過程中移動的位是0或1,并且成對的鍵流位不匹配,則結果輸出為1。如果該位和成對的鍵流位匹配,則兩者都是1,或兩者都是0,結果是零。加密后的1和0流在傳輸的另一端被解密,使用相同的密鑰流將比特轉換回其原始明文一種同步方法,將密鑰流與明文或密文分開創建,然后合并以提供加密或解密。使用這種方法,傳輸的發送端和接收端必須保持同步,它們在同一密鑰和密鑰中的同一位置操作如果出現問題,解密要么需要重新開始,要么在整個密文中斷斷續續地放置標志,指示新的起點。另一方面,自同步密碼將根據密文中的某些先前數字更新密鑰流RSA Data Security?創建了一種最常用的流密碼,稱為RC4,以及安全互聯網通信中使用的安全套接字層(SSL)協議和無線設備使用的有線等效隱私(WEP)加密。另一個常用的密碼是ORYX,IBM?還開發了一種稱為SEAL的流加密方法,在硬盤加密中得到了應用。