Stream Cipher คืออะไร?

กระแสรหัสเป็นประเภทของอัลกอริทึมที่ใช้ในการเข้ารหัสข้อมูลที่แหล่งที่จะต้องมีการเข้ารหัสจะถูกประมวลผลกับลำดับของคีย์ที่ปรากฏแบบสุ่ม การเข้ารหัสประเภทนี้ค่อนข้างยืดหยุ่นในแง่ที่ว่ามันอาจเปลี่ยนแปลงการเข้ารหัสในขณะที่ข้อความกำลังถูกประมวลผล พวกเขายังบางครั้งเรียกว่ารหัสรัฐเพราะการเข้ารหัสขึ้นอยู่กับสถานะปัจจุบันของการดำเนินการ ตรงกันข้ามกับการบล็อก ciphers ซึ่งทำงานกับกลุ่มข้อมูล 64 บิตในแต่ละครั้ง stream cipher สามารถทำงานได้ในบิตเดียว ด้วยเหตุนี้สตรีมสามารถประมวลผลด้วยความเร็วสูงด้วยพลังการประมวลผลเพียงเล็กน้อย

กระแสข้อมูลรหัสแรกถูกคิดค้นโดย Gilbert Vernam ในปี 1917 หลังจากนั้น Vernam ยังช่วยสร้างรหัสตัวเลขที่รู้จักกันในชื่อ pad แบบใช้ครั้งเดียวซึ่งเป็นรูปแบบของการเข้ารหัสแบบกระแสข้อมูลที่ใช้คีย์แบบครั้งเดียวเพื่อเข้ารหัสข้อมูล ในแผ่นเพียงครั้งเดียวคีย์ที่สร้างขึ้นมีความยาวเท่ากับข้อมูลที่ต้องเข้ารหัสเป็นแบบสุ่มสมบูรณ์และไม่เคยใช้อีกเลยดังนั้นชื่อ

เมื่อประมวลผลกับข้อมูลที่จะเข้ารหัสซึ่งโดยทั่วไปจะเรียกว่าเท็กซ์เท็กซ์ไซเฟอร์เท็กซ์จะไม่สามารถถอดรหัสได้หากไม่มีคีย์ แผ่นรองครั้งเดียวยากที่จะจัดการกับสถานการณ์ส่วนใหญ่และดังนั้นจึงใช้เฉพาะกับสถานการณ์ที่พิเศษมากเท่านั้น ถึงกระนั้นกระแสตัวเลขก็ถือว่ามีประโยชน์ดังนั้นกุญแจจึงสั้นลงและสร้างแบบจำลองเทียมซึ่งหมายความว่าพวกมันสุ่มแบบสุ่ม แต่ในความเป็นจริงแล้วมันไม่ได้เป็น

กระแสเลขศูนย์มีความสามารถในการเข้ารหัสได้ทันที ด้วยวิธีนี้มันเป็นเรื่องง่ายยิ่งขึ้นที่คนทั่วไปจะใช้ปากกาและกระดาษยันต์ในขณะที่บล็อคตัวเลขมักจะต้องใช้คอมพิวเตอร์ในการประมวลผล ข้อความธรรมดาจะถูกส่งผ่านกระบวนการเข้ารหัสพร้อมกับ keystream ซึ่งเป็นลำดับหลอกเทียมที่ประกอบขึ้นเป็นกุญแจซึ่งจะถูกแปลงและออกมาอีกด้านหนึ่งว่าเป็นไซเฟอร์เท็กซ์

โดยปกติการเข้ารหัสนี้เกิดขึ้นผ่านการดำเนินการเอกสิทธิ์หรือ (XOR) ในแต่ละบิตขณะที่พวกเขาผ่านการเข้ารหัส ตัวเลขแฮคเกอร์ XOR แบบง่าย ๆ ใช้การแบ่งแยกแบบโลจิคัลเป็นพื้นฐานซึ่งบอกว่าผลลัพธ์สามารถเป็นจริงได้ถ้าตัวถูกดำเนินการเป็นจริง แต่ไม่ใช่ทั้งสองอย่าง ตัวอย่างเช่นหากบิตเคลื่อนที่ผ่านกระบวนการเข้ารหัสเป็นศูนย์หรือหนึ่งและบิต keystream ที่จับคู่ไม่ตรงกันผลลัพธ์ผลลัพธ์จะเป็นหนึ่ง หากบิตและ keystream บิตจับคู่โดยที่ทั้งคู่เป็นหนึ่งหรือทั้งสองเป็นศูนย์ผลลัพธ์จะเป็นศูนย์ สตรีมที่เข้ารหัสของรายการและเลขศูนย์จะถูกถอดรหัสที่ปลายอีกด้านของการส่งโดยใช้ keystream เดียวกันเพื่อแปลงบิตกลับเป็นข้อความธรรมดา

การเข้ารหัสสตรีมมีสองประเภท เมื่อใช้วิธีการซิงโครนัส keystream จะถูกสร้างขึ้นแยกต่างหากจากข้อความธรรมดาหรือข้อความจากนั้นรวมเข้าด้วยกันเพื่อให้การเข้ารหัสหรือถอดรหัส ด้วยวิธีนี้ทั้งปลายการส่งและการรับของการส่งข้อมูลจะต้องยังคงซิงโครไนซ์โดยที่พวกเขากำลังทำงานบนคีย์เดียวกันและตำแหน่งเดียวกันในคีย์ หากมีปัญหาเกิดขึ้นการถอดรหัสจะต้องเริ่มใหม่หรืออาจมีการกำหนดสถานะไว้เป็นระยะ ๆ ตลอด ciphertext ที่ระบุจุดเริ่มต้นใหม่ ในทางกลับกันการเข้ารหัสแบบเข้ารหัสด้วยตนเองจะอัปเดต keystream ตามจำนวนตัวเลขก่อนหน้าบางส่วนใน ciphertext

หนึ่งในสตรีมที่ใช้บ่อยที่สุดที่เรียกว่า RC4 ถูกสร้างขึ้นโดย RSA Data Security® มันได้รับอนุญาตและใช้ในผลิตภัณฑ์ซอฟต์แวร์จำนวนหนึ่งรวมถึงโปรโตคอล secure socket layer (SSL) ที่ใช้ในการสื่อสารทางอินเทอร์เน็ตที่ปลอดภัยและการเข้ารหัสลับ Wired Equity (WEP) ที่ใช้กับอุปกรณ์ไร้สาย รหัสที่ใช้บ่อยอีกอย่างหนึ่งเรียกว่า ORYX ซึ่งพบการใช้งานในการส่งข้อมูลโทรศัพท์มือถือที่จำเป็นต้องเข้ารหัส IBM®ยังได้พัฒนาวิธีการเข้ารหัสสตรีมที่รู้จักกันในชื่อ SEAL ซึ่งพบว่าใช้ในการเข้ารหัสฮาร์ดดิสก์