
除了根據密鑰是否對稱將密碼算法分類,也能藉助明文的處理方式分類算法。若把明文空間的元素逐個加密,叫做流密碼或序列密碼;若把明文空間的元素分組,逐組加密,叫做分組密碼。
對於流密碼,解密時顺利获得同步得到的密鑰流進行解密變換。流密碼強度由密鑰流生成器生成的序列的隨機性和不可預測性確定。若密鑰流是真的隨機數流,則理論上此體制不能破譯,也就是一次一密,但此方式需要的密鑰量大得出乎意外。如今通常用偽隨機序列替換隨機序列作密鑰序列。偽隨機數序列有一定的循環周期,若周期夠長,則會有較好的保密性。
偽隨機數密鑰流生成器有多種結構,多數是用線性或非線性反饋移位寄存器作驅動器得到一系列狀態序列,這些狀態序列顺利获得非線性組合後產生密鑰序列。流密碼加解密的工作原理特別直觀。用密鑰序列k加密明文序列m就是把k與m對應的分量執行模2相加,得到加密後的密文序列c。在接收端,合法接收者的解密則是把c與k的對應分量執行模2相加,也就是得到原來的明文序列m。
流密碼體制的一個優點是每比特的密文數據與其他密文比特無關。這樣儘管一個密文位出現了錯誤,對整個數據段也無太明顯影響。流密碼加解密速度很快,應用較普遍,如GSM網絡中的數據加密算法。但流密碼需使收發端密鑰流的同步是完全準確的。和流密碼比較,分組密碼可輕易達到同步。分組密碼的主要不足體現在這兩個方面:一是分組加密無法隱藏數據模式,也就是相同的密文組含有相同的明文組;二是分組加密不可抵抗重放、嵌入與刪除等攻擊。但分組密碼的以上不足可在加密處理中融入少許的記憶解決。流密碼和分組密碼各有優點與不足,如何選用應根據具體應用場景決定。
