
現代流密碼有同步流密碼與自同步流密碼兩種。
同步流密碼是(P,C,K,L,E,D)6元組和函數g,其中P指全部可能的明文構成的有限集,C指全部可能密文構成的有限集,K指全部可能密鑰構成的有限集,L是密鑰流字母表的有限集。如二進制{0,1},g是密鑰流生成器。它用種子密鑰k輸入,產生無限的密鑰流k1k2…,ki∈L,i≥1。對隨意的k∈L,都有加密規則e∈E和對應的解密規則d∈D。並且對每一明文x∈P,eki:P→C和dki:C→P滿足dki(eki(x))=x。
同步流密碼中,密鑰流的生成與明文、密文沒有關係。加密過程可用方程這樣描述:
qi+1=f(qi,k)(i=0,1,2…)
ki=g(qi,k)(i=1,2,3…)
ci=Eki(mi)(i=1,2,3,…)
其中種子密鑰k的初始態決定q0;f是下一個態函數;g是生成密鑰流的函數。
同步流密碼有同步要求與無錯誤傳播兩個特點。同步要求指發送方與接收方在同步流密碼中須同步,用一樣的密鑰和操作在一樣的地方,才可正確解密。若傳輸中密文字符有插入/刪除使同步丟了,則解密失敗,且只可重新同步才能恢復。無錯誤傳播指在傳輸期間,變了密文字符只影響它的恢復,不影響後面字符。
自同步流密碼密鑰流的生成與密鑰和已有定量的密文字符有關,即是有記憶變換的流密碼。自同步流密碼的加密函數可以用以下方程描述:
qi=(ci-t,ci-t+1…,ci-1)(i=0,1,2…)
ki=g(qi,k)(i=1,2,3…)
ci=eki(mi)(i=1,2,3,…)
其中qi=(ci-t,ci-t+1…,ci-1…,c0)是非秘密的初始態;k是種子密鑰;g是密鑰流輸出函數。
自同步流密碼的特點有自同步與有限的錯誤傳播兩個。實現自同步依賴移位寄存器qi中密文字符的移入與移出,因為解密只由先前定量的密文字符決定。同步丟後,自同步流密碼可自動再次解密,只有定量的明文字符不能恢復。後者是因為t個已有的密文字符決定自同步流密碼的態,若傳輸中密文字符(或位)出現差錯,解密最多影響到當前位及後面r個字符的解密恢復,只有有限的錯誤傳播。
