串流密碼的核心概念是:逐位元 (Bit) 或逐位元組 (Byte) 進行即時加密。
它利用主金鑰 (Key) 與初始向量 (IV / Nonce),透過金鑰流產生器(Keystream Generator)產生與明文等長的「金鑰流 (Keystream,K)」,最後將金鑰流與明文進行 XOR 運算:
[明文 Plaintext P] ─────┐
├─► (⊕ XOR) ──► [密文 Ciphertext C]
[金鑰流 Keystream K] ───┘
因為底層運算只有簡單的 XOR,串流密碼的加密速度極快、延遲極低,特別適合處理串流媒體(Voice/Video Call)、即時通訊或硬體資源有限的嵌入式裝置。
根據「金鑰流產生的機制」,串流密碼可分為以下兩類:
若在相同密鑰 key 下重複使用相同 IV/nonce,將產生相同金鑰流 S。此時對兩段密文 C1 與 C2 互斥或:
C1 ⊕ C2 = (P1 ⊕ S) ⊕ (P2 ⊕ S) = P1 ⊕ P2
攻擊者就能消去金鑰流,進而推導出明文間的關係(兩次一時性密碼 two-time pad 問題)。