Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

การใช้งาน Stream Ciphers ในความปลอดภัยข้อมูลคืออะไร?

Stream cipher (สตรีมซิเฟอร์) เป็นแนวทางการเข้ารหัสที่ stream หลักคีย์ (keystream) ที่เป็น pseudorandom cipher digit stream ถูกผสมกับเลขหลัก plain text (plaintext digits) สตรีมหลักคีย์ pseudorandom นี้ถูกนำไปใช้กับแต่ละหลักไบนารี หนึ่งบิตในแต่ละครั้ง แนวทางการเข้ารหัสนี้ใช้จำนวน pseudorandom cipher digits ที่ไม่มี限度 ต่อคีย์

Stream Cipher สามารถใช้สำหรับการเข้ารหัสคีย์สมมาตร (symmetric key cryptography) หรือเมื่อคีย์เดียวกันถูกใช้เพื่อเข้ารหัสและถอดรหัสข้อมูล Stream cipher เข้ารหัส plaintext ความยาวที่เป็นสุ่ม หนึ่งบิตในแต่ละครั้ง ด้วยอัลกอริทึมที่ต้องการคีย์

สำหรับประเภทการเข้ารหัสนี้จะคงอยู่ปลอดภัพ สตรีมหลักคีย์ pseudorandom ต้องเป็นไปไม่ได้ที่จะคาดการณ์ (unpredictable) และคีย์ไม่ควรใช้มากกว่าหนึ่งครั้ง สตรีมหลักคีย์ pseudorandom ถูกสร้างขึ้นผ่านจำนวนค่า seed (seed values) แบบสุ่มที่ต้องการ shift registers แบบดิจิทัล

การเข้ารหัสของแต่ละหลักขึ้นอยู่กับสถานะล่าสุดของซิเฟอร์ (cipher) ซึ่งเป็นการรับประกันชื่อ state cipher สำหรับสิ่งนี้ RC4 เป็น stream cipher ที่ nổi tiếngซึ่งใช้กันอย่างแพร่หลายในซอฟต์แวร์

Stream ciphers ปรากฏในหลายรสชาติ เช่น self-synchronizing stream ciphers คำนวณแต่ละบิตใน keystream เป็นฟังก์ชันของ n บิตก่อนหน้าใน keystream ถูกนิยามว่า "self-synchronizing" เพราะกระบวนการถอดรหัสสามารถคงการซิงโครไนซ์กับกระบวนการเข้ารหัสได้เพียงแค่การเข้าใจว่าอยู่ระยะไกลใน n-bit keystream แค่ไหน

ปัญหาหนึ่งคือการแพร่กระจายข้อผิดพลาด (error propagation); บิตที่สับสนในการส่งจะทำให้เกิด n บิตที่สับสนที่ด้านรับ Synchronous stream ciphers สร้าง keystream ในลักษณะที่เป็นอิสระจาก message stream แต่โดยใช้ฟังก์ชันการสร้าง keystream เหมือนกันที่ผู้ส่งและผู้รับ แม้ stream ciphers จะไม่แพร่กระจายบั๊กการส่ง แต่โดยธรรมชาติของมันเป็น periodic ดังนั้น keystream จะทำซ้ำในที่สุด

ประเภทพื้นฐานของ stream ciphers ยังจะถูกนิยามว่าเป็นโหมดการดำเนินงาน (modes of operation) ของ stream ciphers เพราะจะแสดงให้เห็นว่าพวกเขาสามารถถูกโอนไปกันและกันโดยการสร้างที่ง่ายและทั่วไป เช่นเดียวกัน โครงสร้างพื้นฐานเข้ารหัสหลายอย่างที่สร้างจาก stream ciphers จะถูกนิยามว่าเป็นโหมดบริการ (modes of service) ของ stream ciphers

Stream cipher บางตัวในโหมด KG สามารถแปลงเป็นโหมด SCM ได้โดยการให้ฟังก์ชัน next-state ขึ้นอยู่กับบิต plaintext ปัจจุบันด้วย องค์ประกอบหลักที่ต้องเคารพในความคิดเห็นนี้คือ การเปลี่ยนแปลงของบิต plaintext เดียว ควรทำให้เกิดการเปลี่ยนแปลงที่ดูสุ่มในลำดับ keystream (ciphertext) ที่จะมาต่อไป (forward propagation effect)

โหมด KG ควรทำให้พอใจคุณสมบัติเดียวกัน แต่เกี่ยวกับการเปลี่ยนแปลงของบิตสถานะต้นฉบับ ดังนั้น การปรับเปลี่ยนจึงทำได้ง่ายโดยการแทรกบิต plaintext เข้าไปในบิตสถานะภายในหนึ่งหรือมากกว่า โดยเฉพาะอย่างยิ่งที่มี forward propagation effect ที่สำคัญ