รหัสสตรีมเข้ารหัสสตริงเลขฐานสองอย่างต่อเนื่องโดยใช้การแปลงตามเวลาในข้อมูลข้อความธรรมดา ดังนั้น การเข้ารหัสประเภทนี้จะทำงานทีละบิต โดยใช้คีย์สตรีมเพื่อสร้างข้อความเข้ารหัสสำหรับข้อความธรรมดาที่มีความยาวตามต้องการ
รหัสจะรวมคีย์ (128/256 บิต) และเลขฐานสอง (64-128 บิต) เพื่อสร้างคีย์สตรีมและหมายเลขสุ่มเทียม XORed กับข้อความธรรมดาเพื่อสร้างข้อความเข้ารหัส
แม้ว่าคีย์และ nonce จะสามารถนำมาใช้ใหม่ได้ แต่คีย์สตรีมจะต้องไม่ซ้ำกันสำหรับความซ้ำซ้อนของการเข้ารหัสแต่ละรายการเพื่อรักษาความปลอดภัย การเข้ารหัสการเข้ารหัสสตรีมใช้สิ่งนี้โดยใช้รีจิสเตอร์ shift ป้อนกลับเพื่อสร้าง nonce ที่ไม่ซ้ำกัน (หมายเลขที่ใช้เพียงครั้งเดียว) เพื่อสร้างคีย์สตรีม
รูปแบบการเข้ารหัสที่ต้องการการเข้ารหัสสตรีมมีโอกาสน้อยที่จะเผยแพร่ข้อผิดพลาดทั่วทั้งระบบ เนื่องจากข้อผิดพลาดในการแปลหนึ่งบิตโดยทั่วไปจะไม่ส่งผลต่อบล็อกข้อความธรรมดาทั้งหมด
การเข้ารหัสสตรีมยังปรากฏในลักษณะเชิงเส้นต่อเนื่อง ทำให้ใช้งานได้ง่ายและรวดเร็วยิ่งขึ้น ในอีกแง่หนึ่ง การเข้ารหัสของสตรีมขาดการกระจายเนื่องจากแต่ละหลักข้อความธรรมดาถูกแมปกับเอาต์พุตข้อความเข้ารหัสหนึ่งตัว
นอกจากนี้ พวกเขาไม่ได้ตรวจสอบความถูกต้อง และทำให้เสี่ยงต่อการแทรก หากแฮ็กเกอร์แบ่งอัลกอริธึมการเข้ารหัส แฮกเกอร์จะเพิ่มหรือเปลี่ยนข้อความที่เข้ารหัสได้โดยไม่ต้องตรวจจับ
การเข้ารหัสแบบสตรีมมักใช้ในการเข้ารหัสข้อมูลในแอปพลิเคชันซึ่งไม่สามารถตัดสินใจได้ว่าจำนวนข้อความธรรมดามีจำนวนเท่าใดและใช้วิธีการใช้งานที่มีเวลาแฝงต่ำ การเข้ารหัสสตรีมสร้างการใช้สิ่งที่เรียกว่าคีย์สตรีม
คีย์สตรีมคือเอาต์พุต 8 บิตแบบสุ่มที่สร้างขึ้นโดยการจัดหาคีย์ให้กับตัวสร้างบิตสุ่มเทียม เอาต์พุต 8 บิตที่สร้างขึ้นเรียกว่าคีย์สตรีมและใช้ในการเข้ารหัสและถอดรหัสข้อมูลในอัลกอริธึมการเข้ารหัสสตรีมที่กำหนด
ตัวสร้างกระแสข้อมูลบิตควรดำเนินการเป็นกระบวนการอัลกอริทึม เพื่อให้ผู้ใช้ทั้งสองสามารถสร้างสตรีมบิตที่เข้ารหัสได้
ในวิธีนี้ ตัวสร้างกระแสข้อมูลบิตเป็นอัลกอริธึมที่ควบคุมด้วยคีย์ และควรสร้างสตรีมบิตที่มีประสิทธิภาพในการเข้ารหัส ตอนนี้ ผู้ใช้ทั้งสองต้องการเพียงแชร์คีย์การสร้าง และแต่ละคนก็สามารถสร้างสตรีมคีย์ได้
ข้อได้เปรียบของรหัสสตรีม
-
ด้วยตัวสร้างตัวเลขสุ่มเทียมที่ออกแบบมาอย่างเหมาะสม รหัสลับของสตรีมจึงปลอดภัยเท่ากับรหัสบล็อกที่มีความยาวคีย์เท่ากัน
-
ข้อได้เปรียบหลักของ stream cipher คือ stream ciphers ที่ไม่ใช้ block ciphers เนื่องจาก constructing block มักจะเร็วกว่าและใช้ codethan do block ciphers น้อยกว่ามาก
-
สำหรับแอปพลิเคชันที่ต้องการการเข้ารหัส/ถอดรหัสสตรีมข้อมูล รวมถึงผ่านช่องทางการสื่อสารข้อมูลหรือเบราว์เซอร์/เว็บลิงก์ รหัส astream อาจเป็นทางเลือกที่ดีกว่า
-
สำหรับแอปพลิเคชันที่จัดการด้วยบล็อกข้อมูล รวมถึงการถ่ายโอนไฟล์ อีเมล และฐานข้อมูล การเข้ารหัสแบบบล็อกอาจเหมาะสมกว่า
-
อย่างไรก็ตาม รหัสประเภทนี้ใช้ได้กับทุกแอปพลิเคชัน